解决参数关联有2种方式:extract提取参数,debugtalk辅助函数获取。
先看第一种,extract提取参数:
登录成功后直接用extract提取返回content里面的token参数:
然后在下一个请求里面直接用$token去引用
第二种:debugtalk辅助函数获取
先建立一个debugtalk.py结尾的文件,然后在写一个登录获取token的函数,内容如下:
import requests url = ‘http://49.235.92.12:9000/api/v1/login‘ def get_token(username=‘test‘, pwd=‘123456‘): body = {"username": username, "password": pwd} header = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"} r = requests.post(url=url, json=body, headers=header) try: result = r.json() token = result[‘token‘] return token except Exception as e: print(‘获取失败原因{}‘.format(e)) print(‘返回结果{}‘.format(r.text)) return ‘‘ if __name__ == ‘__main__‘: print(get_token())
接下来就是在yml文件用${get_token()}引用这个函数,将登录的token值传递到请求头里面
最终运行结果:
要在hrun里面实现参数化也是很简单的,只需要加上parameters的参数,添加上对应的参数,然后引用参数就可以了。
yml文件如下:
- config: name: testcase description variables: pwd: 123456 parameters: - username: [test,test1,test2] - test: name: /info request: headers: Content-Type: application/json User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 Authorization: Token ${get_token($username,$pwd)} method: GET url: http://49.235.92.12:9000/info validate: - eq: [status_code,200] - eq: [content.code,0] - eq: [content.data.0.name,test]
原文地址:https://www.cnblogs.com/xiamaojjie/p/12095999.html
时间: 2024-10-03 05:07:04