近期一个接口测试实战小问题引发了众多测试同学的关注,本文整理了学员疑惑之处和学院老师的解答,供大家一起学习参考。
Question by @Vantas
在接口测试过程中,我遇到一个问题:
如何将上一用例的返回值的某个 key 的 value 值,当作下一用例的入参进行使用呢?
例如第一个用例是登录,后续每一个接口都需要用到登录接口返回的 token,用什么方式去传这个 token 呢?如果后面接口需要多个入参呢(即需要登录的 token,也需要另一个接口的 id 值)?
Answer by @Wayyt
要看使用的是什么工具。如果是用 Java/Python 代码,那返回值转成 JSON,然后提取出来就可以了。
Question by @Vantas
我使用的是 Pytest,把返回值赋给了一个全局变量的字典,后面用例直接调用字典,这样可以吗?
用 JSON 或字典返回,再后面用例怎么传入呢,一直没弄清楚,是用fixtrue调用方法名,然后用例里直接写返回的变量名吗?
那像第三个支付用例,里面需要 token,还需要 URL 后面加 “orderids”,这种需要前面两个用例得返回值,怎么写呢?不能方法名中传入两个 fixtrue 把?那如果需要多个参数呢?如果用例非常多的话,用例之间参数调用关联比较多,怎么样维护比较好呢?
有没有最优方式?以下是示例代码:
def setup(): self.t=globals() #登陆 def test_fxLogin(self): url = “http://www.xxx.com/token” data = {“username”:“hffx”,“password”:“123456”,“platformType”:“NORMAL”} headers = {“Content-Type”: “application/json”} r = requests.post(url, data=json.dumps(data), headers=headers) result = r.text print(result) jsr = json.loads(result) fxtoken = jsr[‘data’] self.t[‘fx’]=fxtoken assert r.status_code==200 #下单 def test_buyprocedure(self): url = “http://www.xxx.com/” data = {“data”}]} headers = {“Authorization”:self.t[‘fx’],“Content-Type”: “application/json”} r=requests.post(url,data=json.dumps(data),headers=headers) result = r.text print(result) jsr=json.loads(result) orderid=jsr[data][id] self.t[‘orderids’]=orderid assert r.status_code == 200 #支付 def test_payprocedure(self): url = “http://www.xxx.com/”+self.t[‘orderids’]
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!