HttpRunner 从 1.4.5
版本开始实现了全新的 hook 机制,可以在请求前和请求后调用函数。函数统一存放在dabugtalk.py 文件中。在 YAML/JSON 中调用 hook 函数仍然是采用 ${func($a, $b)}
的形式。hook函数只在用例中声明有效
hook 机制分为两个层级:测试用例层面(testcase)测试步骤层面(teststep)
1.测试用例层面(testcase)
在 YAML/JSON 测试用例的 config
中新增关键字 setup_hooks
和 teardown_hooks
。
setup_hooks: 在整个用例开始执行前触发 hook 函数,主要用于准备工作。
teardown_hooks: 在整个用例结束执行后触发 hook 函数,主要用于测试后的清理工作。
首先编写两个简单的函数做示范:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 D:Python_ScriptInterface_Test>hrun testcases/reg.yaml 2 INFO HttpRunner version: 2.4.2 3 INFO Loading environment variables from D:Python_ScriptInterface_Test.env 4 -----> 这是测试用例层面的hook函数 <----- 5 -----> 我是执行用例之前执行的<----- 6 INFO Start to run testcase: None 7 金融项目注册接口 8 INFO GET http://192.168.200.144:8080/futureloan/mvc/api/member/register 9 INFO status_code: 200, response_time(ms): 27.93 ms, response_length: 60 bytes 10 11 . 12 13 ---------------------------------------------------------------------- 14 Ran 1 test in 0.033s 15 16 OK 17 INFO Start to render Html report ... 18 -----> 这是测试用例层面的hook函数 <----- 19 -----> 我是执行用例之后执行的<----- 20 INFO Generated Html report: D:Python_ScriptInterface_Test eports1576733100.html
2.测试用例层面(teststeps)
在 YAML/JSON 测试步骤的 teststeps
中新增关键字 setup_hooks
和 teardown_hooks
。
setup_hooks: 在 HTTP 请求发送前执行 hook 函数,主要用于准备工作;也可以实现对请求的 request 内容进行预处理。
teardown_hooks: 在 HTTP 请求发送后执行 hook 函数,主要用于测试后的清理工作;也可以实现对响应的 response 进行修改,例如进行加解密等处理。
编写函数举例:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
这是登录测试用例 -----> 这是测试步骤层面的hook函数 <----- -----> 我是执行用例步骤之前执行的<----- INFO GET http://192.168.200.144:8080/futureloan/mvc/api/member/login INFO status_code: 200, response_time(ms): 10.97 ms, response_length: 60 bytes -----> 这是测试步骤层面的hook函数 <----- -----> 我是执行用例步骤之后执行的<----- . ---------------------------------------------------------------------- Ran 2 tests in 0.035s