这里类似django里面可以快速创建一个项目目录
可以通过命令:
hrun --startproject [项目名称]
快速创建的项目目录如上图所示:
yml/json文件:测试用例文件
debugtalk.py:存储项目中逻辑运算辅助函数
.env:存储项目环境变量,通常用于存储项目敏感信息
.csv:项目数据文件,用于进行数据驱动
reports:默认生成测试报告的存储文件夹
测试用例集(testsuite):对应一个文件夹,包含单个或者多个测试用例
测试用例(testcase):对应一个或者多个json\yml文件,包含一个或多个测试步骤
测试步骤(testsetp):对应一个json\yml文件的一个test,描述单次接口测试的全部内容,包括:
发起请求、解析响应结果、验证结果等
用例分层逻辑图:
1.接口定义及引用
为了更好的对接口描述进行管理,使用独立的文件对接口描述进行存储,即每个文件对应一个接口描述,
其中,定义描述的内容包括:name、variables、request、base_url、validate等。例如
name:测试用例的名称,在测试报告中作为标题
request:request的公共参数,作用域为整个用例,常用参数包含base_url、headers
json:post请求传参形式,如果为get请求则把json替换为 params
method:http请求方法
verify:忽略证书验证
validate:测试用例中定义的结果校验项,仅对当前用例做校验,更多涉及validate请点击validate校验详解
# api/Channel/taskList.yml接口定义文件
base_url: ${ENV(HOME_BASE_URL)}
name: taskList
request:
headers:
x-rp-token: ${ENV(LOGIN_TOKEN)}
json: $query
method: POST
url: /api/workbench/channel/task/taskList
verify: false
validate:
- eq:
- status_code
- 200
- ne:
- content.errormsg
- 系统错误
2.测试用例
config:作为整个测试用例的全局配置项,作用域为整个测试用例
variables:定义的全局变量,作用域为整个用例
teststeps:测试步骤,引用了上文tasklist.yml 文件的接口定义
#taskList测试用例文件
config:
name: 获取任务列表
variables:
query:
pageNo: 1
pageSize: 10
relRabbitUserIds: ENV{WORKWECHAT_USERID}
teststeps:
- api: api/Channel/taskList.yml
name: 获取任务列表
3.测试用例集
testcases:测试用例集,存放一个或多个测试用例
create user:测试用例集名称
testcase:测试用例
parameters:全局参数,用于实现数据化驱动,作用域为整个用例
# testsuites文件
config:
name: testcase description
testcases:
create user:
testcase: demo-quickstart-0.yml
parameters:
user_id: [1132,1131,1130]
HttpRunner,从零到熟练运用,个人实战总结请见:https://www.yuque.com/zaygee/httprunner