HttpRunner接口自动化测试框架--5.hook机制

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_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 进行修改,例如进行加解密等处理。

编写函数举例:

 

这是登录测试用例
-----> 这是测试步骤层面的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
运行详细日志
原文地址:https://www.cnblogs.com/XhyTechnologyShare/p/12067240.html