添加用例使用说明举例

This commit is contained in:
jerrylizilong 2018-11-30 12:04:48 +08:00
parent d2bda763d7
commit 2038774138
1 changed files with 157 additions and 91 deletions

248
README.md
View File

@ -1,20 +1,171 @@
参考链接:
https://testerhome.com/topics/15534
https://testerhome.com/topics/15534 Python + flask+ selenium 自动化测试用例管理、执行平台
https://testerhome.com/topics/15897
https://testerhome.com/topics/15897 UI 自动化测试用例整理举例-百度首页
https://testerhome.com/topics/16106
https://testerhome.com/topics/16106 使用 python 多进程模块 multiprocessing 并发执行测试用例
# autotest_platform
基于python+selenium的自动化测试管理、执行平台。
## 版本要求:
python 3.4 以上
selenium 建议使用 3.0 以上版本
mysql : 建议 5.5 以上
- python 3.4 以上
- selenium 建议使用 3.0 以上版本
- mysql : 建议 5.5 以上
## 使用说明:
### 1. 新建用例:
用例步骤说明:
- 每个用例步骤中通过逗号进行分隔。
- 单个步骤的格式: 步骤名称+分隔符(|+参数列表(参数间按@@进行分隔)。如:填写|id@@kw@@selenium 表示步骤为“填写”参数列表为“id、kw、selenium”。
- 默认的参数含义1通过什么属性定位目标元素可使用id、name、class、text、xpath、css等多种定位方式进行定位 2目标元素对应的属性值如id = kw 3其他。
- 例如:填写|id@@kw@@selenium 代表通过 id = kw 查找到输入框,并输入 selenium 。
#### 1.1 用例初始化:
初始化可以有以下方式:
- 指定浏览器类型,如 Chrome、 Firefox。 需要对应的selenium server支持。
- 指定模拟手机型号, 如 Chrome|iPhone 6。目前只有 chrome 浏览器支持模拟手机。
- 调用其他已封装的公共方法,如 公共方法|登录。 具体的公共方法格式与正常用例一致,但需要指定用例类型为 公共用例。
- 公共方法支持嵌套,即一个公共方法里调用另一个公共方法。
#### 用例说明:
#### 一. 使用chrome 浏览器进行测试:
例子在百度中输入selenium并验证查询结果是否正确。
```
Chrome,前往|http://www.baidu.com,填写|id@@kw@@selenium,点击|id@@su,验证|Web Browser Automation,截图
```
步骤解析:
```
- Chrome 调用 Chrome driver 进行测试。
- 前往|http://www.baidu.com 前往目标页。
- 填写|id@@kw@@selenium 在 id 为 kw 的元素中输入 selenium。
- 点击|id@@su 点击 id 为 su 的元素。
- 验证|Web Browser Automation 验证页面中是否出现 Web Browser Automation 的文字。
- 截图: 对当前页面进行截图并保存。
```
#### 二. 使用chrome 浏览器模拟移动设备进行测试:
例子模拟iPhone 6 打开网页在百度中输入selenium并验证查询结果是否正确。
```
Chrome|iPhone 6,前往|http://www.baidu.com,填写|id@@kw@@selenium,点击|id@@su,验证|Web Browser Automation,截图
```
步骤解析:
```
- Chrome|iPhone 6 调用 Chrome driver 进行测试,并设置页面大小为模拟 iPhone 6。
```
### 2.公共用例
某些公共的步骤,可以封装为公共方法进行调用:
- 公共方法添加:新建用例,选择用例类型为 公共用例, 所属模块为public。
- 公共方法调用:步骤: 公共方法|公共方法名, 如 公共方法|登录;公共方法|查询订单。
#### 三. 使用公共方法进行测试:
例子:
1. 添加公共方法: 打开 chrome 浏览器,并打开百度首页
```
// 添加公共方法: 注意需将用例类型设置为 公共用例, 所属模块设置为: public 用例名称: 打开百度首页
Chrome,前往|http://www.baidu.com
```
2. 分别添加测试用例:在百度首页分别点击新闻、地图、视频,并验证跳转页面是否正确。
```
公共方法|打开百度首页,点击|name@@tj_trnews,验证标题|百度新闻
公共方法|打开百度首页,点击|name@@tj_trmap,验证标题|百度地图
公共方法|打开百度首页,点击|name@@tj_trtieba,验证标题|百度贴吧
```
步骤解析:
```
- 公共方法|打开百度首页: 根据所指定的用例名称,将公共用例的步骤拼接在当前用例之前执行。
```
效果等同于:
```
Chrome,前往|http://www.baidu.com,点击|name@@tj_trnews,验证标题|百度新闻
```
3. 公共方法支持嵌套,如:
```
// 公共方法1 打开百度首页
Chrome,前往|http://www.baidu.com
//公共方法2 进入百度新闻
公共方法|打开百度首页,点击|name@@tj_trnews,验证标题|百度新闻
// 用例: 进入百度新闻页后,点击贴吧
公共方法|进入百度新闻,点击|name@@tj_trtieba,验证标题|百度贴吧
```
效果等同于:
```
Chrome,前往|http://www.baidu.com,点击|name@@tj_trnews,验证标题|百度新闻,点击|name@@tj_trtieba,验证标题|百度贴吧
```
### 3.用例管理:
还可对用例进行如下管理:
- 用例查询
- 用例复制:新建用例时可考虑复制一条步骤类似的用例,再修改对应步骤。
- 用例删除:逻辑删除,可在数据库对应表中恢复。
- 用例执行:执行单条用例。可查看对应执行记录、截图、或重跑用例。
### 4.用例集管理:
- 用例集test suite对应一个测试范围可关联多个不同的用例。
- 执行用例集时会根据设置的并发数进行并发执行,提高测试效率。
- 用例集中的用例是从测试用例中复制而来,因此每个用例可以在多个不同的测试用例集中关联。
- 用例集可重跑全部用例、重跑失败用例、重跑单条用例。 注意:重跑用例时,会自动从对应测试用例中加载最新的步骤。
### 5.节点管理:
- 节点可加载多个selenium grid节点系统根据当前可用节点的数量分配用例进行执行。
### 6.步骤管理:
- 步骤:现已对大部分常见步骤进行了封装。
- 扩展封装:可根据需要进行扩展封装。
- 可直接封装selenium的方法请参考 刷新、前往、悬浮点击 等方法。
- 可对selenium提供的方法进行二次封装请参考 点击、填写、选择等方法。对应扩展代码可在 app/core/extend.py 文件中进行管理。
——————————————————————————————————————————————————————————————————————————————————————
# atx 部分说明
## android 用例组织:
样例:
Android|com.your.packagename,点击|id@@com.your.packagename:id/btn_login,等待|2,点击|name@@GuestLogin,等待|5,截图,
## 已封装步骤:
相关的步骤已封装在 app/core/atx_step.py 中,具体包括:
Android 打开指定已安装的app (通过包名)
填写: type_text
点击: click by id/name/description/class
截图: take_screenshot
由于我测试的 app 功能较为简单,目前只封装了这几个方法,如果需要可增加封装对应的方法。
## 1. 管理平台:
基于flask进行开发进行用例、用例集、步骤等的增删改查等功能。
@ -157,91 +308,6 @@ docker run -e NODE_MAX_INSTANCES=10 -e NODE_MAX_SESSION=10 -d --net grid -e HUB_
docker run -e NODE_MAX_INSTANCES=10 -e NODE_MAX_SESSION=10 -d --net grid -e HUB_HOST=selenium-hub selenium/node-chrome
```
## 使用说明:
### 1. 新建用例:
用例步骤说明:
- 每个用例步骤中通过逗号进行分隔。
- 单个步骤的格式: 步骤名称+分隔符(|+参数列表(参数间按@@进行分隔)。如:填写|id@@kw@@selenium 表示步骤为“填写”参数列表为“id、kw、selenium”。
- 默认的参数含义1通过什么属性定位目标元素可使用id、name、class、text、xpath、css等多种定位方式进行定位 2目标元素对应的属性值如id = kw 3其他。
- 例如:填写|id@@kw@@selenium 代表通过 id = kw 查找到输入框,并输入 selenium 。
#### 1.1 用例初始化:
初始化可以有以下方式:
- 指定浏览器类型,如 Chrome、 Firefox。 需要对应的selenium server支持。
- 指定模拟手机型号, 如 Chrome|iPhone 6。目前只有 chrome 浏览器支持模拟手机。
- 调用其他已封装的公共方法,如 公共方法|登录。 具体的公共方法格式与正常用例一致,但需要指定用例类型为 公共用例。
- 公共方法支持嵌套,即一个公共方法里调用另一个公共方法。
##### 具体步骤说明请查看菜单:自动化测试-步骤说明。
#### 用例说明:
例子在百度中输入selenium并验证查询结果是否正确。
```
Chrome,前往|http://www.baidu.com,填写|id@@kw@@selenium,点击|id@@su,验证|Web Browser Automation,截图
```
步骤解析:
```
- Chrome 调用 Chrome driver 进行测试。
- 前往|http://www.baidu.com 前往目标页。
- 填写|id@@kw@@selenium 在 id 为 kw 的元素中输入 selenium。
- 点击|id@@su 点击 id 为 su 的元素。
- 验证|Web Browser Automation 验证页面中是否出现 Web Browser Automation 的文字。
- 截图: 对当前页面进行截图并保存。
```
### 2.公共用例
某些公共的步骤,可以封装为公共方法进行调用:
- 公共方法添加:新建用例,选择用例类型为 公共用例, 所属模块为public。
- 公共方法调用:步骤: 公共方法|公共方法名, 如 公共方法|登录;公共方法|查询订单。
### 3.用例管理:
还可对用例进行如下管理:
- 用例查询
- 用例复制:新建用例时可考虑复制一条步骤类似的用例,再修改对应步骤。
- 用例删除:逻辑删除,可在数据库对应表中恢复。
- 用例执行:执行单条用例。可查看对应执行记录、截图、或重跑用例。
### 4.用例集管理:
- 用例集test suite对应一个测试范围可关联多个不同的用例。
- 执行用例集时会根据设置的并发数进行并发执行,提高测试效率。
- 用例集中的用例是从测试用例中复制而来,因此每个用例可以在多个不同的测试用例集中关联。
- 用例集可重跑全部用例、重跑失败用例、重跑单条用例。 注意:重跑用例时,会自动从对应测试用例中加载最新的步骤。
### 5.节点管理:
- 节点可加载多个selenium grid节点系统根据当前可用节点的数量分配用例进行执行。
### 6.步骤管理:
- 步骤:现已对大部分常见步骤进行了封装。
- 扩展封装:可根据需要进行扩展封装。
- 可直接封装selenium的方法请参考 刷新、前往、悬浮点击 等方法。
- 可对selenium提供的方法进行二次封装请参考 点击、填写、选择等方法。对应扩展代码可在 app/core/extend.py 文件中进行管理。
——————————————————————————————————————————————————————————————————————————————————————
# atx 部分说明
## android 用例组织:
样例:
Android|com.your.packagename,点击|id@@com.your.packagename:id/btn_login,等待|2,点击|name@@GuestLogin,等待|5,截图,
## 已封装步骤:
相关的步骤已封装在 app/core/atx_step.py 中,具体包括:
Android 打开指定已安装的app (通过包名)
填写: type_text
点击: click by id/name/description/class
截图: take_screenshot
由于我测试的 app 功能较为简单,目前只封装了这几个方法,如果需要可增加封装对应的方法。
# 常见问题:
### 1没有可用的节点