httprunner 4.x学习 - 11 hook 机制
前言
hook机制,就是在发送请求前做一些预处理或在请求完成后后置处理
1.setup_hooks :主要用于处理接口前置准备,比如对请求 request 参数签名加密等操作
2.teardown_hooks:主要用于后置清理,比如对返回 respone 解密、删除数据库数据等
测试步骤添加hook
debugtalk.py编写两个以下两个函数
def hook_up(): print("前置操作:hook_up") def hook_down(): print("后置操作:hook_down")
在步骤中引用
config: name: hook teststeps: - name: post request: method: POST setup_hooks: - ${hook_up()} teardown_hooks: - ${hook_down()} url: ${ENV(base_url)}/login json: username: "admin1" password: "123456" validate: - eq: [status_code, 200] - eq: [headers."Content-Type", "application/json"]
setup_hooks使用
传一个内置 request 参数,使用setup_hooks预处理,debugtalk.py代码如下
def request_add_sign(request): # 新增 sign 参数 request["req_json"]["sign"] = "sign *************" return request
config: name: hook teststeps: - name: post request: method: POST url: ${ENV(base_url)}/login json: username: "admin1" password: "123456" setup_hooks: - ${request_add_sign($request)} validate: - eq: [status_code, 200] - eq: [headers."Content-Type", "application/json"]
teardown_hooks 使用
在接口返回response后进行处理,比如response加上参数msg="操作成功"
def response_add_msg(response): # 新增 msg 参数 response["msg"] = "操作成功" return response
config: name: hook teststeps: - name: post request: method: POST url: ${ENV(base_url)}/login json: username: "admin1" password: "123456" teardown_hooks: - ${response_add_msg($response)} validate: - eq: [status_code, 200] - eq: [headers."Content-Type", "application/json"]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律