网站首页 > 技术文章 正文
A13_HttpRunner_hook_01_钩子机制及用例层面的调用
HttpRunner 实现了 hook 机制,hook 就是“钩子”的意思,可以在测试用例的一头和一尾各设置一个钩子,每个钩子可以对应一个提前定义好的函数(在 debugtalk.py 文件中定义),当运行测试用例的时候,这两个钩子会把对应的函数“勾”过来一起执行。放前面的钩子叫 setup,放后面的钩子叫 teardown(这个名称和单元测试工具的道理是一致的)。
用例中使用 “钩子 hook” 的示意图如下:
在 HttpRunner 中 hook 机制分为两个层级:
- 测试用例层面(testcase)
- 关键字:setup_hooks,测试用例执行前,先调用该关键字内的函数。
- 关键字:teardown_hooks,测试用例执行后,先调用该关键字内的函数。
- 测试步骤层面(teststep)
- 关键字:setup_hooks,测试步骤执行前,先调用该关键字内的函数。此时通过传入 $request 参数,可以对请求进行预处理或者修改。
- 关键字:teardown_hooks,测试步骤执行后,先调用该关键字内的函数。此时通过传入 $response 参数,可以对响应进行处理或者修改。
案例一: 用例层面 hook 的使用
在用例执行前和后都自动调用 print_msg() 函数
在 debugtalk.py 文件中定义的 hook 函数:
def print_msg(msg):
print("执行测试用例:%s" % msg)
引入钩子 hook 的测试用例文件:
- 调用 print_msg()函数,分别传入字符串参数“Begin”和“End”
- 在执行用例前后位置分别打印“执行测试用例:Begin”和“执行测试用例:End”两句话
- config:
name: 员工管理
# 执行用例前:
setup_hooks:
# 调用函数
- ${print_msg(Begin)}
# 执行用例后:
teardown_hooks:
# 调用函数
- ${print_msg(End)}
- test:
name: 测试步骤 - 打开登录页面
request:
url: http://localhost/myweb/jxc/index.asp
method: GET
validata:
- eq: [status_code, 200]
执行以上测试用例:
- 钩子函数被调用执行。
- 在执行用例前后位置分别打印“执行测试用例:Begin”和“执行测试用例:End”两句话。
猜你喜欢
- 2024-09-30 SpringCloud 远程调用为啥要采用HTTP,而不是RPC?
- 2024-09-30 PRA10.3平台API接口调用 api接口调用教程
- 2024-09-30 程序员2022年你不懂RPC远程过程调用,RPC框架的话真的要被淘汰了
- 2024-09-30 Spring Cloud Gateway一次请求调用源码解析
- 2024-09-30 Go教程34:Go微服务间Http+Json调用
- 2024-09-30 Spring 框架里的 HTTP 调用,RestTemplate 还是 WebClient
- 2024-09-30 HarmonyOS如何调用http/https接口?
- 2024-09-30 Feign : 优雅的调用 API 调用feign接口
- 2024-09-30 Spring Boot调用http接口的简单方法
- 2024-09-30 远程调用中,rpc到底比http好在哪里
你 发表评论:
欢迎- 最近发表
-
- springboot整合easyexcel实现Excel导出
- JAVA 按Excel模板导出Excel文件之 Jxls
- Java导出excel java导出Excel的三种方法
- java大牛告诉你这样导出excel更加简单高效
- Java:java五行代码实现Excel的快速导出
- Spring Boot整合EasyExcel实现对于Excel文件导出?
- 一文搞定!EasyExcel实现文件导入导出,简单实用又高效
- 程序员:超级简单导出Excel 工具,Hutool Java工具类库
- 「SpringCloud」(三十)整合EasyExcel实现数据表格导入导出功能
- Hutool Java工具类库导出Excel,超级简单
- 标签列表
-
- mybatis返回int (51)
- jsonproperty注解无效 (52)
- jtextfield (48)
- flaskrequest.data (53)
- preflight请求 (48)
- request.getheader (57)
- pomexclusion (55)
- javassh连接远程服务器 (80)
- java-jar输出日志 (71)
- mybatis.type-aliases-package (63)
- arraystoreexception (56)
- 线程池submit (67)
- sshshell (49)
- vue2props (57)
- 微信小程序form表单提交 (55)
- javabase64转图片 (55)
- javaobject转map (74)
- java接口文档生成工具 (49)
- tcpflags (59)
- 虚拟机共享文件夹在哪 (60)
- shiro设置session过期时间 (61)
- python-msimpleserver (48)
- bufferedreader.readline() (48)
- map转list对象 (50)
- resttemplate文件上传 (57)
本文暂时没有评论,来添加一个吧(●'◡'●)