HttpRunner2.X学习--sign签名
前言:
为了安全,很多接口都会有签名机制,如果没有签名将无法访问接口
案例:
在debugtalk.py中写入签名的方法
#setup_hook 对请求的body进行预处理sign加密 import hashlib import json import time def time_up(): currentTimeStamp = time.time() time_mp = int(round(currentTimeStamp * 1000)) return str(time_mp) def sign_body(body,apikey="12345678abc"): '''请求body sign加密''' # 提前知道接口签名的规则 strA = json.dumps(body) #在strA后面拼接apikey得到strSignTemp字符串 strSignTemp = apikey + json.dumps(body) + time_up() print(strSignTemp) sign = hashlib.md5(strSignTemp.encode(encoding='UTF-8')).hexdigest() # #将strSignTemp字符串转为小写字符串后进行MD5运算 # # #MD5加密 # def jiamimd5(src): # m = hashlib.md5() # m.update(src.encode('UTF-8')) # return m.hexdigest() # sign = jiamimd5(strSignTemp.lower()) return sign def setup_request(request): '''setup_hooks函数,发送请求前预处理''' body = request.get('data') print(body) sign = sign_body(body,apikey="12345678abc") print("sign值:%s" % sign) request["headers"]["sign"] = sign #添加到请求头 #request["json"]["sign"] = sign if __name__ == "__main__": body = { "验证参数,检查方法是否ok" } print(sign_body(body))
用例中调用sign方法,使用setup_hooks函数
- config:
name: sign签名
variables: {}
- test:
name: 登录接口
request:
headers:
Content-Type: application/json
method: POST
url: http://localhost:80/login/
json:
username: test
password: a123456
extract: #extract 提取返回参数中的data值
- token: content.data
setup_hooks:
- ${setup_request($request)}
validate:
- eq: [status_code,200]

浙公网安备 33010602011771号