debugtalk.py辅助函数 - hook机制(setup和teardown)

hook机制(setup和teardown)

  HttpRunner3是基于Pytest框架,里面有前置和后置的概念
  setup_hooks:开始执行前触发hook函数,主要用于请求预处理(签名,加密)
  teardown_hooks:结束执行后触发hook函数,主要用于返回预处理(解密)
  testcase/login_hook.yml
config:
    name: 登录用例
    base_url: http://127.0.0.1:端口号
    variables:
        user: test1
        psw: "123456"
    # 需要把用到的参数导出来,成为全局标量后被使用
    export:
    - token
teststeps:
-
    name: step-登录
    setup_hooks:
        - ${setup_hook()}
        - ${request_sign($request)}
    request:
        method: POST
        url: /api/test/login
        json:
            username: $user
            password: $psw
    teardown_hooks:
        - ${teardown_hook()}
        - ${response_status(response)}
    extract:
        token: body.token
    validate:
    - eq: [status_code, 200]
    - eq: [body.code, 0]
    - eq: [body.msg, login success!]
    - eq: [body.username, $user]
    - len_eq: [body.token, 40]

  debugtalk.py

def setup_hook():
    print("--------setup----------")

def teardown_hook():
    print("--------teaddown----------")

def request_sign(request):
    body = request.get("req_json")
    print("body内容:", body)
    sign = "sign xxxxxxxxxxxx"
    body["sign"] = sign
    request["req_json"] = body
    print("request内容:", request)

def response_status(response):
    print("status_code", response.status_code)
    response.status_code = 203
    print("修改后status_code", response.status_code)
posted @ 2022-05-20 18:35  乌醍  阅读(117)  评论(0)    收藏  举报