测试开发进阶(三十三)
局部变量
1 | name: 登录接口 |
可以修改variables
定义变量,导入环境变量作为值
request
中可以使用$变量名
来获取variables
区域下的变量
调用函数
可以调用debugtalk.py
中的函数
例如在该文件中添加
1 | def get_user_agent(): |
1 | name: 登录接口 |
使用${get_user_agent()}
这样就可以动态的使用User-Agent
校验
可以用的响应属性:
- available
- response
- status_code
- cookies
- elapsed
- headers
- content
- text
- json
- encoding
- ok
- reason
- url
1 | - eq: ["headers.Content-Type", "application/json"] |
1 | - {check: "headers.Content-Type",comparator: "eq",expect: "application/json"} |
上面两种写法效果一致
- check:指定断言哪一个字段(实际值)
python3.7/site-packages/httprunner/built_in.py
- comparator:指定断言的规则
- eq 等于
- lt小于
- lte
- gt大于
- gte
- str_eq
- len_eq长度等于
- len_gt
- contains 包含
1 | """ |
- expect预期结果
数据驱动
testcases/login.yml
1 | config: |
继承api/login.yml
会与本区域定义的validate
合并覆盖
一般api路径下的断言只进行基础类型的断言例如status_code
testcases会进行其他的断言
方式一:使用yaml
testsuites/api_testsuite.yml
1 | config: |
运行
1 | hrun testsuites/api_testsuite.yml |
查看报告
方式二:读取文件
新建一个csv文件
1 | title,username,password,status_code,contain_msg |
1 | - title-username-password-status_code-contain_msg: ${P(datas/accounts.csv)} |
方式三:使用函数
在debugtalk.py
添加
1 | def get_accounts(): |
1 | - title-username-password-status_code-contain_msg: ${get_accounts()} |
使用py文件调用httprunner
1 | from httprunner.api import HttpRunner |