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 函數,主要用於測試后的清理工作。
首先編寫兩個簡單的函數做示范:


1 D:\Python_Script\Interface_Test>hrun testcases/reg.yaml 2 INFO HttpRunner version: 2.4.2 3 INFO Loading environment variables from D:\Python_Script\Interface_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_Script\Interface_Test\reports\1576733100.html
2.測試用例層面(teststeps)
在 YAML/JSON 測試步驟的 teststeps 中新增關鍵字 setup_hooks 和 teardown_hooks。
setup_hooks: 在 HTTP 請求發送前執行 hook 函數,主要用於准備工作;也可以實現對請求的 request 內容進行預處理。
teardown_hooks: 在 HTTP 請求發送后執行 hook 函數,主要用於測試后的清理工作;也可以實現對響應的 response 進行修改,例如進行加解密等處理。
編寫函數舉例:


這是登錄測試用例 -----> 這是測試步驟層面的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
