## 基于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](https://github.com/songzhenhua/selenium_ui_auto/blob/master/readme_report.png)
Yuki-^_^
- 粉丝: 3116
- 资源: 4586
最新资源
- php54-build-1.1-5.el6.centos.alt.x86_64.rpm
- php54-apc-panel-3.1.15-0.4.20130912.el6.centos.alt.noarch.rpm
- php54-php-bcmath-5.4.16-16.el6.centos.alt.x86_64.rpm
- php54-php-5.4.16-22.el6.centos.alt.x86_64.rpm
- php54-php-5.4.16-16.el6.centos.alt.x86_64.rpm
- php54-php-bcmath-5.4.16-22.el6.centos.alt.x86_64.rpm
- php54-php-cli-5.4.16-22.el6.centos.alt.x86_64.rpm
- php54-php-cli-5.4.16-16.el6.centos.alt.x86_64.rpm
- php54-php-dba-5.4.16-16.el6.centos.alt.x86_64.rpm
- php54-php-common-5.4.16-16.el6.centos.alt.x86_64.rpm
- php54-php-common-5.4.16-22.el6.centos.alt.x86_64.rpm
- php54-php-dba-5.4.16-22.el6.centos.alt.x86_64.rpm
- php54-php-devel-5.4.16-16.el6.centos.alt.x86_64.rpm
- php54-php-devel-5.4.16-22.el6.centos.alt.x86_64.rpm
- php54-php-enchant-5.4.16-16.el6.centos.alt.x86_64.rpm
- php54-php-enchant-5.4.16-22.el6.centos.alt.x86_64.rpm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈