Fork me on GitHub

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"]
复制代码

 

 

 

posted @   测栈云  阅读(128)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示