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)