UIAutoDemo/README.md

154 lines
6.8 KiB
Python
Raw Permalink Normal View History

# UiAutoDemo
2020-08-27 17:41:44 +08:00
>基于seldom poium库的 UI自动化测试框架模板
2020-07-27 11:49:28 +08:00
#### 简介
<u>UiAutoDemo</u>是一个下载即可用的<u>UI自动化测试框</u>专为公司自动化项目免去搭建自动化脚手架也极其适合刚入门的自动化测试小白很多入门小白不知道如何去搭建脚本的基本结构自动化的框架架构不用担心这款框架绝对让您满意
2020-08-20 00:10:55 +08:00
```框架支持邮件发送HTML测试报告框架默认含Chrome浏览器驱动```
2020-08-27 17:41:44 +08:00
#### 特点
+ 已经搭建好的```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浏览器驱动
2020-08-27 17:41:44 +08:00
#### 必看!
2020-08-27 17:41:44 +08:00
+ ```UiAutoDemo```框架使用的是 ```PageObject```设计模式简称```PO```不懂什么是PO设计模式下面有介绍
+ 使用的编译语言 ```Python>=3.5```
+ 框架使用的是 ```seldom``` ```poium``` 第三方库往下看有介绍
+ 本框架自带```Chromedriver```浏览器驱动自动检测本地操作环境调用该环境相应的Chrome驱动程序但需要本地浏览器更新到最近版本
+ 测试类与测试用例的命名请遵从 ```ASCII码的顺序加载测试用例数字与字母的顺序为0-9A-Za-z```
+ ```UiAutoDemo```仅兼容```Unittest```框架请勿使用其他测试框架运行
+ 框架内的```Chromedriver```驱动作者会持续更新也可自行引入路径
2020-07-27 11:49:28 +08:00
#### 项目架构
```
- UiAutoDemo/
2020-07-27 11:52:19 +08:00
- | test_case/
2020-07-27 11:49:28 +08:00
- | test_login.py
- |models/
- | url.py
2020-08-27 17:41:44 +08:00
- | mail.py
- | osDriver.py
- |PageObject/
- | loginPage.py
2020-07-27 11:52:19 +08:00
- | Browser_Driver/
- | chromedriver84(Mac64)
- | chromedriver84(win32).exe
2020-07-27 11:49:28 +08:00
- | reports/
- | 年_月_日_时_分_秒_result.html
2020-08-27 17:41:44 +08:00
- | 年_月_日_时_分_秒.xml
2020-07-27 11:49:28 +08:00
- run.py
```
+ ```testcase``` 文件夹用于存放页面元素测试用例公共元素
2020-08-20 17:35:01 +08:00
+ ```- test_login.py``` 编写局部模块的测试用例并执行
+ ```models``` 文件夹存放公共元素如url
2020-08-20 17:35:01 +08:00
+ ```- url.py``` 存放测试url路径
2020-08-27 17:41:44 +08:00
+ ```- mail.py``` 用于发送邮件
+ ```- osDriver.py``` 检查本地操作系统环境根据本地环境自动选择相应的driver驱动运行项目
+ ```PageObject``` 文件夹存放测试过程中需要使用的页面元素
2020-08-20 17:35:01 +08:00
+ ```- loginPage.py``` 存放页面元素定位封装元素实例化
+ ```Browser_Driver``` 文件夹存放浏览器驱动
2020-08-20 17:35:01 +08:00
+ ```- chromedriver84(Mac64)``` Mac操作系统Chrome驱动
+ ```- chromedriver84(win32).exe``` Windows操作系统Chrome驱动
+ ```reports``` 文件夹存放项目测试后生成的测试报告
2020-08-27 17:41:44 +08:00
+ ```- 年_月_日_时_分_秒_result.html``` HTML测试报告
+ ```- 年_月_日_时_分_秒.xml``` XML测试报告
2020-08-20 17:35:01 +08:00
+ ```run.py``` 执行所有的测试用例并执行
2020-07-27 11:49:28 +08:00
#### 依赖库
2020-08-27 17:41:44 +08:00
+ Python3.7.4 >=
+ poium0.6.3 >= (pip install poium)
2020-09-22 15:21:04 +08:00
+ seldom1.7.0 >= (pip install seldom)
2020-08-27 17:41:44 +08:00
#### PageObject设计模式
>PageObject模式是Selenium中的一种测试设计模式主要是将每一个页面设计为一个Class将页面定位和业务操作分开分离测试对象元素对象和测试脚本用例脚本提高用例的可维护性其中包含页面中需要测试的元素按钮输入框标题 这样在测试页面中可以通过调用页面类来获取页面元素这样巧妙的避免了当页面元素id或者其他位置变化时需要改测试页面代码的情况 当页面元素id变化时只需要更改测试页Class中页面的属性即可
#### UiAutoDemo框架模块
```框架内的每个py文件都有注解请使用者仔细阅读```
1此框架仅根据PageObject设计模式搭建的基础框架
2020-09-23 15:48:16 +08:00
2020-08-27 17:41:44 +08:00
2封装一些便于运行项目的模块
2020-09-23 15:48:16 +08:00
2020-08-27 17:41:44 +08:00
3Chromedriver驱动调用```from models import osSystem```
4运行项目
2020-08-27 19:52:48 +08:00
2020-08-27 19:52:20 +08:00
![d4I3TK.png](https://s1.ax1x.com/2020/08/27/d4I3TK.png)
2020-08-27 17:41:44 +08:00
5查看报告
可以到```reports```查看测试报告
![查看报告](https://s1.ax1x.com/2020/08/27/d4dbSe.png)
#### seldom文档
请阅读下面的文档帮助你快速学习了解Seldom
2020-09-02 11:32:48 +08:00
* [seldom安装](https://github.com/SeldomQA/seldom/blob/master/docs/install.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [seldom创建项目](https://github.com/SeldomQA/seldom/blob/master/docs/create_project.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [浏览器&驱动](https://github.com/SeldomQA/seldom/blob/master/docs/driver.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [运行测试](https://github.com/SeldomQA/seldom/blob/master/docs/run_test.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [main()方法](https://github.com/SeldomQA/seldom/blob/master/docs/main.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [生成测试报告](https://github.com/SeldomQA/seldom/blob/master/docs/reports.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [seldom 元素定位](https://github.com/SeldomQA/seldom/blob/master/docs/find_element.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [seldom API](https://github.com/SeldomQA/seldom/blob/master/docs/seldom_api.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [keys键盘操作](https://github.com/SeldomQA/seldom/blob/master/docs/keys.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [seldom 断言](https://github.com/SeldomQA/seldom/blob/master/docs/assert.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [用例失败重跑&自动截图](https://github.com/SeldomQA/seldom/blob/master/docs/rerun_screenshot.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [数据驱动最佳实践](https://github.com/SeldomQA/seldom/blob/master/docs/parameterized.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [实现Page Objects设计模式](https://github.com/SeldomQA/seldom/blob/master/docs/poium.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [生成测试数据](https://github.com/SeldomQA/seldom/blob/master/docs/testdata.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [跳过测试用例](https://github.com/SeldomQA/seldom/blob/master/docs/skip.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [发邮件功能](https://github.com/SeldomQA/seldom/blob/master/docs/send_mail.md)
2020-08-27 17:41:44 +08:00
2020-09-02 11:32:48 +08:00
* [test fixture](https://github.com/SeldomQA/seldom/blob/master/docs/setupclass.md)
2020-08-27 17:41:44 +08:00
#### 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)
#### 写到最后
2020-08-28 14:19:34 +08:00
1.此项目仅是一个自动化测试项目的脚手架并不是Python第三方库
2020-08-28 14:20:25 +08:00
2020-08-28 14:21:24 +08:00
2.对selenium有一定的基础底子能够很快用起来纯小白也没关系仔细阅读[seldom](https://github.com/SeldomQA/seldom/blob/master/docs/seldom_api.md) [poium](https://github.com/SeldomQA/poium/wiki)文档即可
2020-08-28 14:20:25 +08:00
2020-08-28 14:19:34 +08:00
3.后期会不断添加一些新奇功能便于测试项目的工作
2020-10-15 22:20:34 +08:00
#### 交流
QQ群948994709