1.快速创建项目

这里类似django里面可以快速创建一个项目目录
可以通过命令:

  1. hrun --startproject [项目名称]

image.png

2.项目组织

快速创建的项目目录如上图所示:
yml/json文件:测试用例文件
debugtalk.py:存储项目中逻辑运算辅助函数
.env:存储项目环境变量,通常用于存储项目敏感信息
.csv:项目数据文件,用于进行数据驱动
reports:默认生成测试报告的存储文件夹

3.用例组织

测试用例集(testsuite):对应一个文件夹,包含单个或者多个测试用例
测试用例(testcase):对应一个或者多个json\yml文件,包含一个或多个测试步骤
测试步骤(testsetp):对应一个json\yml文件的一个test,描述单次接口测试的全部内容,包括:
发起请求、解析响应结果、验证结果等
image.png

4.用例分层

用例分层逻辑图:
image.png

1.接口定义及引用

为了更好的对接口描述进行管理,使用独立的文件对接口描述进行存储,即每个文件对应一个接口描述,
其中,定义描述的内容包括:name、variables、request、base_url、validate等。例如

name:测试用例的名称,在测试报告中作为标题
request:request的公共参数,作用域为整个用例,常用参数包含base_url、headers
json:post请求传参形式,如果为get请求则把json替换为 params
method:http请求方法
verify:忽略证书验证
validate:测试用例中定义的结果校验项,仅对当前用例做校验,更多涉及validate请点击validate校验详解

  1. # api/Channel/taskList.yml接口定义文件
  2. base_url: ${ENV(HOME_BASE_URL)}
  3. name: taskList
  4. request:
  5. headers:
  6. x-rp-token: ${ENV(LOGIN_TOKEN)}
  7. json: $query
  8. method: POST
  9. url: /api/workbench/channel/task/taskList
  10. verify: false
  11. validate:
  12. - eq:
  13. - status_code
  14. - 200
  15. - ne:
  16. - content.errormsg
  17. - 系统错误

2.测试用例

config:作为整个测试用例的全局配置项,作用域为整个测试用例
variables:定义的全局变量,作用域为整个用例
teststeps:测试步骤,引用了上文tasklist.yml 文件的接口定义

  1. #taskList测试用例文件
  2. config:
  3. name: 获取任务列表
  4. variables:
  5. query:
  6. pageNo: 1
  7. pageSize: 10
  8. relRabbitUserIds: ENV{WORKWECHAT_USERID}
  9. teststeps:
  10. - api: api/Channel/taskList.yml
  11. name: 获取任务列表

3.测试用例集

testcases:测试用例集,存放一个或多个测试用例
create user:测试用例集名称
testcase:测试用例
parameters:全局参数,用于实现数据化驱动,作用域为整个用例

  1. # testsuites文件
  2. config:
  3. name: testcase description
  4. testcases:
  5. create user:
  6. testcase: demo-quickstart-0.yml
  7. parameters:
  8. user_id: [1132,1131,1130]