httprunner学习24-sign签名验证
发布日期:2021-05-09 09:02:30 浏览次数:12 分类:博客文章

本文共 3964 字,大约阅读时间需要 13 分钟。

������

���������������������������������������sign������������������������������������������apikey ,������������������������������������������������������������������������������

sign���������������������������������
������sign������������������������������������������

������sign������

������������������������������������������������������������������������sign���������������������

  • ������������������������������������������sign���������������������������������������������p3���������p2=v2&p1=v1&method=cancel&pn=vn���
  • ���������������������������������������method=cancel&p1=v1&p2=v2&pn=vn.
  • ������������������������������������������������������������methodcancelp1v1p2v2pnvn
  • ������������������������������������������������������������������apikey������������������abc������������������������methodcancelp1v1p2v2pnvnabc
  • ������������������������������������������������������md5���������������������������abcdef������������������sign������������
    ���������������md5���������������������������������������������������������������������������utf-8������������GBK������������������������������������������������������������������������������
POST http://127.0.0.1:8000/api/v3/login HTTP/1.1User-Agent: FiddlerContent-Type: application/jsonHost: 127.0.0.1:8000Content-Length: 111{	"username": "test",	"password": "123456",         "sign": "1aca01806e93bb408041965a817666af"}HTTP/1.1 200 OKDate: Sat, 26 Oct 2019 03:38:31 GMTServer: WSGIServer/0.2 CPython/3.6.0Content-Type: application/jsonVary: Accept, CookieAllow: POST, OPTIONSX-Frame-Options: SAMEORIGINContent-Length: 109{"code": 0, "msg": "login success!", "username": "test", "token": "a76ba3b8fcbdff82f6a94e5ad5bf8fb934192e5f"}

httprunner������

������httprunner���������������

- config:    name: logincase    variables: {}- test:    name: login case1    request:        url: http://127.0.0.1:8000/api/v3/login        method: POST        headers:            Content-Type: application/json            User-Agent: python-requests/2.18.4        json:            username: test            password: "123456"    setup_hooks:        -   ${setup_request($request)}    validate:        - eq: [status_code, 200]        - eq: [headers.Content-Type, application/json]        - eq: [content.msg, login success!]        - eq: [content.code, 0]

setup_hook������

���debugtalk.py ������setup_hook���������������������body���������������

import hashlibdef sign_body(body, apikey="12345678"):    '''������body sign������'''    # ������������������������key=value������    a = ["".join(i) for i in body.items() if i[1] and i[0] != "sign"]    # print(a)    # ���������ASCII���������������������    strA = "".join(sorted(a))    # print(strA)    # ���strA���������������apiKey������striSignTemp���������    striSignTemp = strA+apikey    # ���strSignTemp������������������������������������������MD5������    # MD5������    def jiamimd5(src):        m = hashlib.md5()        m.update(src.encode('UTF-8'))        return m.hexdigest()    sign = jiamimd5(striSignTemp.lower())    # print(sign)    return signdef setup_request(request):    '''setuphook������������������������������'''    body = request.get("json")    print(body)    # ���body������������������sign���    sign = sign_body(body, apikey="12345678")    print("sign������%s" % sign)    request["json"]["sign"] = signif __name__ == '__main__':    body = {        "username": "test",        "password": "123456"    }    print(sign_body(body))

������������

D:\soft\HELL\DEMO>hrun login_sign_demo.ymllogin case1{'username': 'test', 'password': '123456'}sign������1aca01806e93bb408041965a817666afINFO     POST http://127.0.0.1:8000/api/v3/loginINFO     status_code: 200, response_time(ms): 689.84 ms, response_length: 109 bytesINFO     start to validate..----------------------------------------------------------------------Ran 1 test in 0.698sOKINFO     Start to render Html report ...INFO     Generated Html report: D:\soft\HELL\DEMO\reports\1572062969.htmlD:\soft\HELL\DEMO>
上一篇:jmeter压测学习2-linux运行jmeter环境
下一篇:python笔记44-HTTP对外接口sign签名

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月20日 05时24分38秒