增加自定义方法调试用例,用例中使用自定义方法说明,上传实例运行日志

This commit is contained in:
zy7y 2021-02-27 15:28:35 +08:00
parent b34b46b242
commit fa7b5d6142
3 changed files with 239 additions and 4 deletions

View File

@ -67,9 +67,10 @@
>> >data_clearing.py: 数据清洗方法封装ssh2服务器连接数据库备份/恢复 2021/01/19日更新
>> >
>> >
>> >hooks.py: 自定义方法,可用与测试 目前版本拥有 获取当前时间戳,两数相加的方法 2021/02/27 更新
>> >
>> >send_email.py 发送邮件
>> >
>> >zip_file.py 压缩测试报告
>>
>> venv python 虚拟环境
>>
@ -119,7 +120,7 @@ https://www.bilibili.com/video/BV1EE411B7SU?p=10
![本地运行测试后生成报告](./image/localhost_report.png)
![测试报告用例失败重跑](./image/用例失败重跑截图.png)
#### 更新
#### 更新记录
2020/08/08 增加实际响应存储数据的方法并在字典可以处理依赖见tools/svae_response.py
2020/08/09 实现多文件上传接口中Path参数依赖处理
@ -141,9 +142,28 @@ https://www.bilibili.com/video/BV1EE411B7SU?p=10
> 如不需要使用该功能请做如下处理,如也不使用数据库对象,只需参考 https://gitee.com/zy7y/apiAutoTest/issues/I2BAQL 修改即可
![](https://gitee.com/zy7y/blog_images/raw/master/img/20210119184856.png)
2021/01/27 添加eval语法糖请求数据需要上个接口返回的id+1实现基本的数学预算使用形式具体查看excel用例文件及用例描述页与报告对着看
~~2021/01/27 添加eval语法糖请求数据需要上个接口返回的id+1实现基本的数学预算使用形式具体查看excel用例文件及用例描述页与报告对着看~~
2021/02/27 添加hooks.py文件(可在此处自定义方法,并用于用例当中注意请务必在定义的方法中使用return),移除上次更新的eval语法糖增加用例处理前的日志
```log
2021-02-27 15:09:42.668 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/@sum_data(&$.case_005.data.id&, 2)@/
请求参数: {"username": "tery","password": @sum_data(&$.case_002.data.id&, 66)@}
后置sql:
预期结果: {"$.meta":{"msg": "设置状态成功", "status": 200}}
2021-02-27 15:09:42.714 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/514/
请求方法:put
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MDk3ODEsImV4cCI6MTYxNDQ5NjE4MX0.EUoNREKUFCYitf4WBLBh3Bj5TWYPCU9hGPV6ng4-o-4'}
请求参数:{'username': 'tery', 'password': 566}
上传文件:None
响应数据:{'data': None, 'meta': {'msg': '更新失败', 'status': 400}}
2021-02-27 15:09:42.716 | INFO | tools.data_process:save_response:27 - 添加key: case_019, 对应value: {'data': None, 'meta': {'msg': '更新失败', 'status': 400}}
2021-02-27 15:09:42.717 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '更新失败', 'status': 400} | 预期结果:{'msg': '设置状态成功', 'status': 200}
断言结果 False
2021-02-27 15:09:45.050 | SUCCESS | __main__:run:43 - 报告已生成
```
![](https://gitee.com/zy7y/blog_images/raw/master/img/20210127141257.png)
#### 博客园首发
https://www.cnblogs.com/zy7y/p/13426816.html

Binary file not shown.

View File

@ -0,0 +1,215 @@
2021-02-27 15:22:26.190 | INFO | __main__:run:28 -
_ _ _ _____ _
__ _ _ __ (_) / \ _ _| |_ __|_ _|__ ___| |_
/ _` | '_ \| | / _ \| | | | __/ _ \| |/ _ \/ __| __|
| (_| | |_) | |/ ___ \ |_| | || (_) | | __/\__ \ |_
\__,_| .__/|_/_/ \_\__,_|\__\___/|_|\___||___/\__|
|_|
Starting ... ... ...
2021-02-27 15:22:26.412 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: login
请求参数: {"username": "admin", "password": ""}
后置sql:
预期结果: {"$.meta.code":400}
2021-02-27 15:22:26.506 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/login?username=admin&password=
请求方法:get
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
请求参数:{'username': 'admin', 'password': ''}
上传文件:None
响应数据:{'data': None, 'meta': {'msg': '参数错误', 'status': 400}}
2021-02-27 15:22:26.511 | INFO | tools.data_process:save_response:27 - 添加key: case_001, 对应value: {'data': None, 'meta': {'msg': '参数错误', 'status': 400}}
2021-02-27 15:22:26.514 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:26.515 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:None | 预期结果:400
断言结果 False
2021-02-27 15:22:26.636 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: login
请求参数: {"username": "admin", "password": "123456"}
后置sql: select * from user where id=&$.case_002.data.id&;
预期结果: {"$.meta":{ "msg": "登录成功", "status": 200 }}
2021-02-27 15:22:26.808 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/login
请求方法:post
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
请求参数:{'username': 'admin', 'password': '123456'}
上传文件:None
响应数据:{'data': {'id': 500, 'rid': 0, 'username': 'admin', 'mobile': '12345678', 'email': 'adsfad@qq.com', 'token': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}, 'meta': {'msg': '登录成功', 'status': 200}}
2021-02-27 15:22:26.813 | INFO | tools.data_process:save_response:27 - 添加key: case_002, 对应value: {'data': {'id': 500, 'rid': 0, 'username': 'admin', 'mobile': '12345678', 'email': 'adsfad@qq.com', 'token': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}, 'meta': {'msg': '登录成功', 'status': 200}}
2021-02-27 15:22:26.816 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '登录成功', 'status': 200} | 预期结果:{'msg': '登录成功', 'status': 200}
断言结果 True
2021-02-27 15:22:26.827 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users
请求参数: {"pagenum": 1, "pagesize": "12", "meta": &$.case_002.data.meta&, "userId": &$.case_002.data.id&}
后置sql:
预期结果: {"$.meta":{"msg": "获取管理员列表成功", "status": 200}}
2021-02-27 15:22:26.829 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:26.830 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:26.830 | DEBUG | tools:rep_expr:45 - &$.case_002.data.meta& 替换的值为 None
2021-02-27 15:22:26.831 | DEBUG | tools:rep_expr:45 - &$.case_002.data.id& 替换的值为 500
2021-02-27 15:22:26.972 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users?pagenum=1&pagesize=12&userId=500
请求方法:get
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:{'pagenum': 1, 'pagesize': '12', 'meta': None, 'userId': 500}
上传文件:None
响应数据:{'data': {'total': 4, 'pagenum': 1, 'users': [{'id': 500, 'role_name': '超级管理员', 'username': 'admin', 'create_time': 1486720211, 'mobile': '12345678', 'email': 'adsfad@qq.com', 'mg_state': True}, {'id': 502, 'role_name': '测试角色2', 'username': 'linken', 'create_time': 1486720211, 'mobile': '1213213123', 'email': 'asdf@qq.com', 'mg_state': False}, {'id': 508, 'role_name': '主管', 'username': 'asdf1', 'create_time': 1511853015, 'mobile': '123123', 'email': 'adfsa@qq.com', 'mg_state': True}, {'id': 509, 'role_name': 'test', 'username': 'asdf123', 'create_time': 1511853353, 'mobile': '1111', 'email': 'asdf@qq.com', 'mg_state': False}]}, 'meta': {'msg': '获取管理员列表成功', 'status': 200}}
2021-02-27 15:22:26.977 | INFO | tools.data_process:save_response:27 - 添加key: case_003, 对应value: {'data': {'total': 4, 'pagenum': 1, 'users': [{'id': 500, 'role_name': '超级管理员', 'username': 'admin', 'create_time': 1486720211, 'mobile': '12345678', 'email': 'adsfad@qq.com', 'mg_state': True}, {'id': 502, 'role_name': '测试角色2', 'username': 'linken', 'create_time': 1486720211, 'mobile': '1213213123', 'email': 'asdf@qq.com', 'mg_state': False}, {'id': 508, 'role_name': '主管', 'username': 'asdf1', 'create_time': 1511853015, 'mobile': '123123', 'email': 'adfsa@qq.com', 'mg_state': True}, {'id': 509, 'role_name': 'test', 'username': 'asdf123', 'create_time': 1511853353, 'mobile': '1111', 'email': 'asdf@qq.com', 'mg_state': False}]}, 'meta': {'msg': '获取管理员列表成功', 'status': 200}}
2021-02-27 15:22:26.981 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '获取管理员列表成功', 'status': 200} | 预期结果:{'msg': '获取管理员列表成功', 'status': 200}
断言结果 True
2021-02-27 15:22:26.994 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users
请求参数: {"pagenum": 1, "pagesize": "12", "msg": &$.msg&}
后置sql:
预期结果: {"$.meta":{"msg": "获取管理员列表成功", "status": 200}}
2021-02-27 15:22:26.998 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:26.998 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:26.999 | DEBUG | tools:rep_expr:45 - &$.msg& 替换的值为 None
2021-02-27 15:22:27.046 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users
请求方法:get
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
请求参数:{'pagenum': 1, 'pagesize': '12', 'msg': None}
上传文件:None
响应数据:{'data': None, 'meta': {'msg': '无效token', 'status': 400}}
2021-02-27 15:22:27.047 | INFO | tools.data_process:save_response:27 - 添加key: case_004, 对应value: {'data': None, 'meta': {'msg': '无效token', 'status': 400}}
2021-02-27 15:22:27.049 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '无效token', 'status': 400} | 预期结果:{'msg': '获取管理员列表成功', 'status': 200}
断言结果 False
2021-02-27 15:22:27.061 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users
请求参数: {"username": "tery132131","password": "123456"}
后置sql:
预期结果: {"$.meta":{"msg":"创建成功","status":201}}
2021-02-27 15:22:27.237 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users
请求方法:post
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:{'username': 'tery132131', 'password': '123456'}
上传文件:None
响应数据:{'data': {'id': 510, 'username': 'tery132131', 'role_id': -1, 'create_time': 1614410547}, 'meta': {'msg': '创建成功', 'status': 201}}
2021-02-27 15:22:27.238 | INFO | tools.data_process:save_response:27 - 添加key: case_005, 对应value: {'data': {'id': 510, 'username': 'tery132131', 'role_id': -1, 'create_time': 1614410547}, 'meta': {'msg': '创建成功', 'status': 201}}
2021-02-27 15:22:27.239 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '创建成功', 'status': 201} | 预期结果:{'msg': '创建成功', 'status': 201}
断言结果 True
2021-02-27 15:22:27.243 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/&$.case_005.data.id&/state/&$.case_005.data.careate_time&
请求参数:
后置sql:
预期结果: {"$.meta":{"msg": "设置状态成功", "status": 200}}
2021-02-27 15:22:27.243 | DEBUG | tools:rep_expr:45 - &$.case_005.data.id& 替换的值为 510
2021-02-27 15:22:27.244 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:27.244 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:27.244 | DEBUG | tools:rep_expr:45 - &$.case_005.data.careate_time& 替换的值为 None
2021-02-27 15:22:27.300 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/510/state/None
请求方法:put
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:None
上传文件:None
响应数据:{'data': {'id': 510, 'rid': -1, 'username': 'tery132131', 'mobile': None, 'email': None, 'mg_state': 0}, 'meta': {'msg': '设置状态成功', 'status': 200}}
2021-02-27 15:22:27.301 | INFO | tools.data_process:save_response:27 - 添加key: case_006, 对应value: {'data': {'id': 510, 'rid': -1, 'username': 'tery132131', 'mobile': None, 'email': None, 'mg_state': 0}, 'meta': {'msg': '设置状态成功', 'status': 200}}
2021-02-27 15:22:27.302 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '设置状态成功', 'status': 200} | 预期结果:{'msg': '设置状态成功', 'status': 200}
断言结果 True
2021-02-27 15:22:27.306 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/&$.case_005.data.id&/state/2
请求参数:
后置sql:
预期结果: {"$.meta":{"msg": "设置状态成功", "status": 200}}
2021-02-27 15:22:27.306 | DEBUG | tools:rep_expr:45 - &$.case_005.data.id& 替换的值为 510
2021-02-27 15:22:27.353 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/510/state/2
请求方法:put
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:None
上传文件:None
响应数据:{'data': {'id': 510, 'rid': -1, 'username': 'tery132131', 'mobile': None, 'email': None, 'mg_state': 0}, 'meta': {'msg': '设置状态成功', 'status': 200}}
2021-02-27 15:22:27.354 | INFO | tools.data_process:save_response:27 - 添加key: case_007, 对应value: {'data': {'id': 510, 'rid': -1, 'username': 'tery132131', 'mobile': None, 'email': None, 'mg_state': 0}, 'meta': {'msg': '设置状态成功', 'status': 200}}
2021-02-27 15:22:27.355 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '设置状态成功', 'status': 200} | 预期结果:{'msg': '设置状态成功', 'status': 200}
断言结果 True
2021-02-27 15:22:27.359 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/&$.case_005.data.id&
请求参数:
后置sql:
预期结果: {"$.meta":{"msg": "删除成功", "status": 200}}
2021-02-27 15:22:27.360 | DEBUG | tools:rep_expr:45 - &$.case_005.data.id& 替换的值为 510
2021-02-27 15:22:27.413 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/510
请求方法:delete
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:None
上传文件:None
响应数据:{'data': None, 'meta': {'msg': '删除成功', 'status': 200}}
2021-02-27 15:22:27.417 | INFO | tools.data_process:save_response:27 - 添加key: case_008, 对应value: {'data': None, 'meta': {'msg': '删除成功', 'status': 200}}
2021-02-27 15:22:27.419 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '删除成功', 'status': 200} | 预期结果:{'msg': '删除成功', 'status': 200}
断言结果 True
2021-02-27 15:22:27.431 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/
请求参数:
后置sql:
预期结果: {"$.msg": "成功"}
2021-02-27 15:22:27.480 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/
请求方法:post
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
请求参数:None
上传文件:None
响应数据:{'data': None, 'meta': {'msg': '无效token', 'status': 400}}
2021-02-27 15:22:27.484 | INFO | tools.data_process:save_response:27 - 添加key: case_013, 对应value: {'data': None, 'meta': {'msg': '无效token', 'status': 400}}
2021-02-27 15:22:27.486 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:27.487 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:None | 预期结果:成功
断言结果 False
2021-02-27 15:22:27.516 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/
请求参数: {"username": "tery","password": "@sum_data(1,3)@"}
后置sql:
预期结果: {"$.msg": "成功"}
2021-02-27 15:22:27.517 | DEBUG | tools:rep_expr:50 - 执行hooks函数sum_data(1,3) 替换的值为 4
2021-02-27 15:22:27.691 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/
请求方法:post
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:{'username': 'tery', 'password': '4'}
上传文件:None
响应数据:{'data': {'id': 511, 'username': 'tery', 'role_id': -1, 'create_time': 1614410547}, 'meta': {'msg': '创建成功', 'status': 201}}
2021-02-27 15:22:27.695 | INFO | tools.data_process:save_response:27 - 添加key: case_017, 对应value: {'data': {'id': 511, 'username': 'tery', 'role_id': -1, 'create_time': 1614410547}, 'meta': {'msg': '创建成功', 'status': 201}}
2021-02-27 15:22:27.698 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:27.699 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:None | 预期结果:成功
断言结果 False
2021-02-27 15:22:27.727 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/
请求参数: {"username": "tery","password": @get_current_highest()@}
后置sql:
预期结果: {"$.msg": "成功"}
2021-02-27 15:22:27.729 | DEBUG | tools:rep_expr:50 - 执行hooks函数get_current_highest() 替换的值为 1614410547
2021-02-27 15:22:27.774 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/
请求方法:post
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:{'username': 'tery', 'password': 1614410547}
上传文件:None
响应数据:{'data': None, 'meta': {'msg': '用户名已存在', 'status': 400}}
2021-02-27 15:22:27.778 | INFO | tools.data_process:save_response:27 - 添加key: case_018, 对应value: {'data': None, 'meta': {'msg': '用户名已存在', 'status': 400}}
2021-02-27 15:22:27.780 | ERROR | tools:extractor:31 - 提取不到内容,丢给你一个错误!'bool' object is not subscriptable
2021-02-27 15:22:27.781 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:None | 预期结果:成功
断言结果 False
2021-02-27 15:22:27.809 | DEBUG | api.base_requests:send_request:34 - 用例进行处理前数据:
接口路径: users/@sum_data(&$.case_005.data.id&, 2)@/
请求参数: {"username": "tery","password": @sum_data(&$.case_002.data.id&, 66)@, "timer": @get_current_highest()@, "timer_str": " @get_current_highest()@"}
后置sql:
预期结果: {"$.meta":{"msg": "设置状态成功", "status": 200}}
2021-02-27 15:22:27.811 | DEBUG | tools:rep_expr:45 - &$.case_005.data.id& 替换的值为 510
2021-02-27 15:22:27.812 | DEBUG | tools:rep_expr:50 - 执行hooks函数sum_data(510, 2) 替换的值为 512
2021-02-27 15:22:27.815 | DEBUG | tools:rep_expr:45 - &$.case_002.data.id& 替换的值为 500
2021-02-27 15:22:27.816 | DEBUG | tools:rep_expr:50 - 执行hooks函数sum_data(500, 66) 替换的值为 566
2021-02-27 15:22:27.816 | DEBUG | tools:rep_expr:50 - 执行hooks函数get_current_highest() 替换的值为 1614410547
2021-02-27 15:22:27.817 | DEBUG | tools:rep_expr:50 - 执行hooks函数get_current_highest() 替换的值为 1614410547
2021-02-27 15:22:27.863 | INFO | api.base_requests:send_api:81 -
最终请求地址:http://www.ysqorz.top:8888/api/private/v1/users/512/
请求方法:put
请求头:{'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE2MTQ0MTA1NDYsImV4cCI6MTYxNDQ5Njk0Nn0.YZ1NSJ-lIGTDO5UFfbwmVJIfWtte_MCRbcANZoipIZA'}
请求参数:{'username': 'tery', 'password': 566, 'timer': 1614410547, 'timer_str': ' 1614410547'}
上传文件:None
响应数据:{'data': None, 'meta': {'msg': '更新失败', 'status': 400}}
2021-02-27 15:22:27.867 | INFO | tools.data_process:save_response:27 - 添加key: case_019, 对应value: {'data': None, 'meta': {'msg': '更新失败', 'status': 400}}
2021-02-27 15:22:27.871 | INFO | tools.data_process:assert_result:115 - 第1个断言,实际结果:{'msg': '更新失败', 'status': 400} | 预期结果:{'msg': '设置状态成功', 'status': 200}
断言结果 False
2021-02-27 15:22:30.280 | SUCCESS | __main__:run:43 - 报告已生成