前言:
运行测试用例的时候,遇到一个问题。异步资源创建API调用后,往往需要等待一段时间资源才能创建出来,继续后续的操作。
这个时候,就希望用例执行可以延时等待。等异步资源创建出来后在进行下一步的调用。
一般自动化测试框架如unittest,在用例执行前后可以通过setup和teardown来处理初始化数据和清理测试数据或者延时,httprunner也有对应的hook机制,来实现相同的效果。
httprunner的hook 机制分为两个层级:
测试用例层面(testcase)
测试步骤层面(teststep)
测试用例层面(testcase):
在 YAML/JSON 测试用例的 config 中新增关键字 setup_hooks 和 teardown_hooks。
setup_hooks: 在整个用例开始执行前触发 hook 函数,主要用于准备工作。
teardown_hooks: 在整个用例结束执行后触发 hook 函数,主要用于测试后的清理工作。
- config:
name: basic test with httpbin
request:
base_url: http://127.0.0.1:3458/
setup_hooks:
- ${
hook_print(setup)}
teardown_hooks:
- ${
hook_print(teardown)}
测试步骤层面(teststep):
在 YAML/JSON 测试步骤的 test 中新增关键字 setup_hooks 和 teardown_hooks。
setup_hooks: 在 HTTP 请求发送前执行 hook 函数,主要用于准备工作;也可以实现对请求的 request 内容进行预处理。
teardown_hooks: 在 HTTP 请求发送后执行 hook 函数,主要用于测试后的清理工作;也可以实现对响应的 response 进行修改,例如进行加解密等处理。
"test": {
"name": "get token with $user_agent, $os_platform, $app_version",
"request": {
"url": "/api/get-token",
"method": "POST",
"headers": {
"app_version": "$app_version",
"os_platform": "$os_platform",
"user_agent"