parent
097722162c
commit
37d35b0260
108
README.md
108
README.md
|
@ -1,5 +1,5 @@
|
|||
# UiAutoDemo
|
||||
UI自动化测试框架模板
|
||||
>基于seldom 和 poium库的 UI自动化测试框架模板
|
||||
|
||||
#### 简介
|
||||
|
||||
|
@ -7,12 +7,25 @@ UI自动化测试框架模板
|
|||
|
||||
```框架支持邮件发送、HTML测试报告、框架默认含Chrome浏览器驱动```
|
||||
|
||||
#### 特点
|
||||
+ 已经搭建好的```PageObject```设计模式的脚手架。
|
||||
+ 提供[seldom](https://github.com/SeldomQA/seldom/blob/master/docs/seldom_api.md) 与 [poium](https://github.com/SeldomQA/poium/wiki) API编写自动化测试。
|
||||
+ 全局启动浏览器和关闭浏览器,减少浏览器的启动次数。
|
||||
+ 支持测试用例参数化 [parameterized](https://github.com/SeldomQA/seldom/blob/master/docs/parameterized.md)
|
||||
+ 支持用例 失败/错误 重新尝试case
|
||||
+ 支持生成```HTML```测试报告 与 ```XML```测试报告,用例失败/错误自动截图
|
||||
+ 支持```HTML```测试报告邮件发送
|
||||
+ 自动根据当前环境,调用Chrome浏览器驱动
|
||||
|
||||
#### 必看!
|
||||
|
||||
+ ```UiAutoDemo```框架使用的是 ```PageObject```设计模式,简称```PO```;不懂什么是PO设计模式的请至(度娘,谷哥🧐)
|
||||
+ 使用的编译语言 ```Python```
|
||||
+ 框架使用的是 ```seldom``` 与 ```poium``` 第三方库,往下看有介绍
|
||||
|
||||
+ ```UiAutoDemo```框架使用的是 ```PageObject```设计模式,简称```PO```;不懂什么是PO设计模式,下面有介绍 ↓;
|
||||
+ 使用的编译语言 ```Python>=3.5```;
|
||||
+ 框架使用的是 ```seldom``` 与 ```poium``` 第三方库,往下看有介绍 ↓;
|
||||
+ 本框架自带```Chromedriver```浏览器驱动,自动检测本地操作环境调用该环境相应的Chrome驱动程序,但需要本地浏览器更新到最近版本
|
||||
+ 测试类与测试用例的命名请遵从 ```ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z```
|
||||
+ ```UiAutoDemo```仅兼容```Unittest```框架;请勿使用其他测试框架运行
|
||||
+ 框架内的```Chromedriver```驱动作者会持续更新,也可自行引入路径
|
||||
|
||||
#### 项目架构
|
||||
|
||||
|
@ -22,6 +35,8 @@ UI自动化测试框架模板
|
|||
- |── test_login.py
|
||||
- |──models/
|
||||
- |── url.py
|
||||
- |── mail.py
|
||||
- |── osDriver.py
|
||||
- |──PageObject/
|
||||
- |── loginPage.py
|
||||
- |── Browser_Driver/
|
||||
|
@ -29,6 +44,7 @@ UI自动化测试框架模板
|
|||
- |── chromedriver84(win32).exe
|
||||
- |── reports/
|
||||
- |—— 年_月_日_时_分_秒_result.html
|
||||
- |—— 年_月_日_时_分_秒.xml
|
||||
- └── run.py
|
||||
```
|
||||
|
||||
|
@ -36,17 +52,93 @@ UI自动化测试框架模板
|
|||
+ ```- test_login.py``` 编写局部模块的测试用例并执行
|
||||
+ ```models``` 文件夹存放公共元素,如url
|
||||
+ ```- url.py``` 存放测试url路径
|
||||
+ ```- mail.py``` 用于发送邮件
|
||||
+ ```- osDriver.py``` 检查本地操作系统环境,根据本地环境自动选择相应的driver驱动运行项目
|
||||
+ ```PageObject``` 文件夹存放测试过程中需要使用的页面元素
|
||||
+ ```- loginPage.py``` 存放页面元素定位,封装元素实例化
|
||||
+ ```Browser_Driver``` 文件夹存放浏览器驱动
|
||||
+ ```- chromedriver84(Mac64)``` Mac操作系统Chrome驱动
|
||||
+ ```- chromedriver84(win32).exe``` Windows操作系统Chrome驱动
|
||||
+ ```reports``` 文件夹存放项目测试后生成的测试报告
|
||||
+ ```- 年_月_日_时_分_秒_result.html``` HTML测试报告
|
||||
+ ```- 年_月_日_时_分_秒.xml``` XML测试报告
|
||||
+ ```run.py``` 执行所有的测试用例并执行
|
||||
|
||||
#### 依赖库
|
||||
|
||||
+ Python3.7.4+
|
||||
+ poium0.6.3+(pip install poium)
|
||||
+ seldom1.5.6+(pip install seldom)
|
||||
+ Python3.7.4 >=
|
||||
+ poium0.6.3 >= (pip install poium)
|
||||
+ seldom1.6.0 >= (pip install seldom)
|
||||
|
||||
#### PageObject设计模式
|
||||
|
||||
>PageObject模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),提高用例的可维护性。其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者其他位置变化时,需要改测试页面代码的情况。 当页面元素id变化时,只需要更改测试页Class中页面的属性即可。
|
||||
|
||||
|
||||
|
||||
#### UiAutoDemo框架模块
|
||||
```框架内的每个py文件都有注解;请使用者仔细阅读```
|
||||
|
||||
1、此框架仅根据PageObject设计模式搭建的基础框架
|
||||
2、封装一些便于运行项目的模块
|
||||
3、Chromedriver驱动调用```from models import osSystem```
|
||||
|
||||
4、运行项目
|
||||
|
||||

|
||||
|
||||
5、查看报告
|
||||
可以到```reports```查看测试报告
|
||||
|
||||

|
||||
|
||||
|
||||
#### seldom文档
|
||||
请阅读下面的文档,帮助你快速学习了解Seldom。
|
||||
|
||||
* [seldom安装](./docs/install.md)
|
||||
|
||||
* [seldom创建项目](./docs/create_project.md)
|
||||
|
||||
* [浏览器&驱动](./docs/driver.md)
|
||||
|
||||
* [运行测试](./docs/run_test.md)
|
||||
|
||||
* [main()方法](./docs/main.md)
|
||||
|
||||
* [生成测试报告](./docs/reports.md)
|
||||
|
||||
* [seldom 元素定位](./docs/find_element.md)
|
||||
|
||||
* [seldom API](./docs/seldom_api.md)
|
||||
|
||||
* [keys键盘操作](./docs/keys.md)
|
||||
|
||||
* [seldom 断言](./docs/assert.md)
|
||||
|
||||
* [用例失败重跑&自动截图](./docs/rerun_screenshot.md)
|
||||
|
||||
* [数据驱动最佳实践](./docs/parameterized.md)
|
||||
|
||||
* [实现Page Objects设计模式](./docs/poium.md)
|
||||
|
||||
* [生成测试数据](./docs/testdata.md)
|
||||
|
||||
* [跳过测试用例](./docs/skip.md)
|
||||
|
||||
* [发邮件功能](./docs/send_mail.md)
|
||||
|
||||
* [test fixture](./docs/setupclass.md)
|
||||
|
||||
#### poium文档
|
||||
|
||||
* [介绍](https://github.com/SeldomQA/poium/blob/master/README.md)
|
||||
* [HOME](https://github.com/SeldomQA/poium/wiki)
|
||||
* [PageSelect](https://github.com/SeldomQA/poium/wiki/PageSelect)
|
||||
* [PageWait](https://github.com/SeldomQA/poium/wiki/PageWait)
|
||||
|
||||
#### 写到最后
|
||||
|
||||
1、此项目仅是一个自动化测试项目的脚手架,并不是Python第三方库
|
||||
2、对selenium有一定的基础底子,能够很快用起来;纯小白也没关系,仔细阅读seldom与poium文档即可
|
||||
3、后期会不断添加一些新奇功能便于测试项目的工作
|
|
@ -1,7 +1,7 @@
|
|||
"""
|
||||
更新时间:2020-07-27
|
||||
更新时间:2020-08-27
|
||||
版本说明:
|
||||
1、seldom:1.5.6
|
||||
1、seldom:1.6.0
|
||||
2、poium:0.6.3
|
||||
3、Python:3.7.4
|
||||
"""
|
10
run.py
10
run.py
|
@ -10,17 +10,17 @@ main方法说明:
|
|||
save_last_run : 设置只保存最后一次的结果,默认为False,
|
||||
driver_path : 设置浏览器驱动的绝对路径。要和 browser 设置保持一致;默认,
|
||||
grid_url : 设置远程节点,selenium Grid doc,
|
||||
timeout : 设置超时时间,默认10秒
|
||||
timeout : 设置超时时间,默认10秒,
|
||||
xmlrunner : 默认False,True生成xml格式的测试报告,html与xml报告二者选一
|
||||
|
||||
|
||||
邮件发送功能:
|
||||
引入'from seldom.mail import SMTP'
|
||||
引入'from models.mail import sendMail'
|
||||
user = 'you@126.com' # 发送邮件账号
|
||||
password = 'ABC123' # 发送邮件密码
|
||||
host = 'smtp.126.com' # host路径
|
||||
to = 'receive@mail.com' # 邮件接受者,如有多个','英文逗号分割
|
||||
smtp = SMTP(user=user, password=password, host=host)
|
||||
time.sleep(3)
|
||||
smtp.sender(to=to)
|
||||
sendMail(user, password, host, to)
|
||||
"""
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue