README.md 3.2 KB
Newer Older
Z
zhenhua.song 已提交
1
## 基于python2+selenium3+pytest4的UI自动化框架
S
songzhenhua 已提交
2

Z
zhenhua.song 已提交
3
>环境:Python2.7.10, selenium3.141.0, pytest4.6.6, pytest-html1.22.0, Windows-7-6.1.7601-SP1
S
songzhenhua 已提交
4

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

Z
zhenhua.song 已提交
13
### 目录结构:  
Z
zhenhua.song 已提交
14 15
- config  
  - config.py:存放全局变量,各种配置、driver等  
Z
zhenhua.song 已提交
16
- drive:各浏览器驱动文件,如chromedriver.exe  
Z
zhenhua.song 已提交
17 18
- file
  - download:下载文件夹
Z
zhenhua.song 已提交
19 20
  - screenshot:截图文件夹  
  - upload:上传文件夹     
Z
zhenhua.song 已提交
21 22 23 24 25 26 27 28 29
- 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
Z
zhenhua.song 已提交
30
  - conftest.py:pytest特有文件,在里面增加了报告失败截图、用例描述列
Z
zhenhua.song 已提交
31 32 33
  - test_home.py:百度首页测试用例
  - test_news.py:新闻首页测试用例
  - test_search.py:搜索结果页测试用例
Z
zhenhua.song 已提交
34 35
  - demo1.py:通过加cookies免登陆的Demo
  - demo2.py:在已打开的Chrome浏览器进行调试的Demo
Z
zhenhua.song 已提交
36 37
- util:工具包  
  - log.py:封装了日志模块
Z
zhenhua.song 已提交
38 39
  - mail.py:封装了邮件模块,使用发送报告邮件功能需要先设置好相关配置,如用户名密码
- run.py:做为运行入口,封装了pytest运行命令;实现所有测试用例共用一个driver;实现了运行参数化(结合Jenkins使用);log配置初始化;可配置发送报告邮件。  
S
songzhenhua 已提交
40

Z
zhenhua.song 已提交
41
### 元素定义特别用法说明:
Z
zhenhua.song 已提交
42 43 44 45
本框架支持selenium所有的定位方法,为了提高编写速度,改进了使用方法,定义元素时方法名和方法值为一个用逗号隔开的字符串,如:
- xpath定位:i_keyword = 'xpath,//input[@id="kw"]'  # 关键字输入框
- id定位:b_search = 'id,su'  # 搜索按钮
- 其他定位方法同上,不再一一举例
S
songzhenhua 已提交
46

47
在代码中使用上面定义的元素:
Z
zhenhua.song 已提交
48 49
> self.type(self.i_keyword, "学好selenium") # 使用封装过的sendkeys方法输入搜索关键字,详见base_page.py  
> self.click(self.b_search) # 使用封装过的click方法点击搜索按钮
S
songzhenhua 已提交
50

51 52 53 54 55 56
 ### 命令行参数:  
 Demo只添加了一个环境参数-e, 可设置测试环境preview,线上环境product,如要在线上运行测试,启动脚本输入:
 > python run.py -e product  
 
 可自行根据实际需要添加更多参数,并在run.py中的get_args()中进行修改。
 
S
songzhenhua 已提交
57
----------------------------------------------------------------------------
58 59 60
实际报告如图,分别展现了一个执行失败Case的报错信息+截图,一个执行通过Case的运行日志。

![readme_report.png](https://github.com/songzhenhua/selenium_ui_auto/blob/master/readme_report.png)