httprunner學習11-輔助函數debugtalk.py


前言

在httprunner里面,每個 YAML / JSON 文件的腳本都是獨立運行的,有時候我們希望能跨文件使用公用的參數。
比如登錄生成一個token,后面的用例都可以去引用這個token值,或者有些復雜的邏輯,需要寫個函數去實現,比如操作數據庫,加密解密等。
httprunner中可以使用 debugtalk.py 寫輔助函數,實現復雜的功能。

登錄函數獲取token

新建一個debugtalk.py文件,寫個登錄函數,返回token值

import requests

host = "http://127.0.0.1:8000/"

def token(user="test", psw="123456"):
    '''
    登錄獲取token         # # 上海悠悠,QQ交流群:750815713
    :param user: 用戶名
    :param psw: 密碼
    :return: token
    '''
    login_url = host+"api/v1/login/"
    headers = {
        "Content-Type": "application/json"
    }
    body = {
        "username": user,
        "password": psw
    }
    r = requests.post(login_url, headers=headers, json=body)
    try:
        return_token = r.json()["token"]
    except:
        print("大兄弟,返回的不是標准json格式,或者沒取到token, 別問我為什么報錯, 因為返回內容:\n %s" % r.text)
        return_token = ''
    return return_token

if __name__ == "__main__":
    print("獲取到token值:%s" % token())

運行結果:

獲取到token值:e388bfc10ca99135d1d58c00a1091311a0f0d48c

引用token

debugtalk.py 同一目錄下新建一個 test_info_demo.yml 文件,引用 debugtalk.py 里面的函數使用${token()}

- config:
    name: logincase
    variables: {}

# 上海悠悠,QQ交流群:750815713
- test:
    name: get user info case1
    request:
        url: http://127.0.0.1:8000/api/v1/user/info/
        method: GET
        headers:
            Content-Type: application/json
            User-Agent: python-requests/2.18.4
            Authorization: Token ${token()}         # 引用token
    validate:
        - eq: [status_code, 200]
        - eq: [headers.Content-Type, application/json]
        - eq: [content.0.age, 20]
        - eq: [content.0.name, yoyo]
        - eq: [content.0.mail, 283340479@qq.com]

給函數傳參數,可以使用 ${token(test1, 123456)} 或者傳變量 ${token($user, $psw)}

運行用例

hrun test_info_demo.yml

D:\soft\projectdemo>hrun test_info_demo.yml
get user info case1
INFO     GET http://127.0.0.1:8000/api/v1/user/info/
INFO     status_code: 200, response_time(ms): 199.26 ms, response_length: 190 bytes
INFO     start to validate.
.

----------------------------------------------------------------------
Ran 1 test in 0.653s

OK
INFO     Start to render Html report ...
INFO     Generated Html report: D:\soft\projectdemo\reports\1569424911.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM