httprunner学习-辅助函数debugtalk.py

https://www.cnblogs.com/yoyoketang/p/11588363.html

前言

在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 
 
 

猜你喜欢

转载自www.cnblogs.com/jodie2019/p/12624443.html