Skip to content

1298924779/selenium_ui_auto

 
 

Repository files navigation

基于python2+selenium3+pytest4的UI自动化框架

环境:Python2.7.10, selenium3.141.0, pytest4.6.6, pytest-html1.22.0, Windows-7-6.1.7601-SP1

特点:

  • 二次封装了selenium,编写Case更加方便。
  • 采用PO设计思想,一个页面一个Page.py,并在其中定义元素和操作方法;在TestCase中直接调用页面中封装好的操作方法操作页面。
  • 一次测试只启动一次浏览器,节约时间提高效率(适合公司业务的才是最好的)。
  • 增强pytest-html报告内容,加入失败截图、用例描述列、运行日志。
  • 支持命令行参数。
  • 支持邮件发送报告。

目录结构:

  • config
    • config.py:存放全局变量,各种配置、driver等
  • drive:各浏览器驱动文件,如chromedriver.exe
  • file
    • download:下载文件夹
    • screenshot:截图文件夹
    • upload:上传文件夹
  • page_object:一个页面一个.py,存放页面对象、操作方法
    • base_page.py:基础页面,封装了selenium的各种操作
    • hao123_page.py:hao123页面
    • home_page.py:百度首页
    • news_page.py:新闻首页
    • search_page.py:搜索结果页
  • report:
    • report.html:pytest-html生成的报告
  • test_case
    • conftest.py:pytest特有文件,在里面增加了报告失败截图、用例描述列
    • test_home.py:百度首页测试用例
    • test_news.py:新闻首页测试用例
    • test_search.py:搜索结果页测试用例
    • demo1.py:通过加cookies免登陆的Demo
    • demo2.py:在已打开的Chrome浏览器进行调试的Demo
  • util:工具包
    • log.py:封装了日志模块
    • mail.py:封装了邮件模块,使用发送报告邮件功能需要先设置好相关配置,如用户名密码
  • run.py:做为运行入口,封装了pytest运行命令;实现所有测试用例共用一个driver;实现了运行参数化(结合Jenkins使用);log配置初始化;可配置发送报告邮件。

元素定义特别用法说明:

本框架支持selenium所有的定位方法,为了提高编写速度,改进了使用方法,定义元素时方法名和方法值为一个用逗号隔开的字符串,如:

  • xpath定位:i_keyword = 'xpath,//input[@id="kw"]' # 关键字输入框
  • id定位:b_search = 'id,su' # 搜索按钮
  • 其他定位方法同上,不再一一举例

在代码中使用上面定义的元素:

self.type(self.i_keyword, "学好selenium") # 使用封装过的sendkeys方法输入搜索关键字,详见base_page.py
self.click(self.b_search) # 使用封装过的click方法点击搜索按钮

命令行参数:

Demo只添加了一个环境参数-e, 可设置测试环境preview,线上环境product,如要在线上运行测试,启动脚本输入:

python run.py -e product

可自行根据实际需要添加更多参数,并在run.py中的get_args()中进行修改。


实际报告如图,分别展现了一个执行失败Case的报错信息+截图,一个执行通过Case的运行日志。

readme_report.png

About

基于selenium+pytest的UI自动化框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.4%
  • CSS 0.6%