
近期一個介面測驗實戰小問題引發了眾多測驗同學的關注,本文整理了學員疑惑之處和學院老師的解答,供大家一起學習參考,
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’] data = {"data}]
