介面自動化測試(4)-介面測試
阿新 • • 發佈:2018-12-19
標題想不出來寫什麼好,請見諒。
前面兩篇都是準備工作,這篇要用到前面兩篇,當然再後面還會用到這一篇,這個.py檔名叫testvote,下一篇會呼叫這個模組。直接上程式碼。
import xlrd from TestRequest import * from testdata.getpath import * testdata=xlrd.open_workbook(GetTestDataPath()) testurl='https://way.jd.com' def tianqi(): try: table=testdata.sheets()[1] for i in range(2,6): name= table.cell(i, 0).value status=table.cell(i,1).value qiwang=table.cell(i,2).value hdata={ 'appkey':'9a2069a2b2ac98092ad4', 'city':name } header={ 'content-type': "application/x-www-form-urlencoded", 'Connection': 'close' } testcaseid='1-1' testname='天氣預報 '+testcaseid testhope=str(int(status)) fanhuitesthope=qiwang r=TestPostRequest1(testurl+'/he/freeweather',hdata,header,testcaseid,testname,testhope,fanhuitesthope) # print (r) except Exception as e: print(e) #tianqi()
前三行導包,第二行和第三行就是導的前面兩篇的內容。
第四行要用到讀路徑的那個,找到excel檔案。第五行是伺服器地址,這是京東永珍的。
下面是一個查詢天氣的介面,try這裡是防止類似於伺服器宕機的這種異常情況,如果傳參伺服器正常處理,給出正常結果就走try裡面;如果伺服器宕機不能處理請求,或者請求錯了,沒找到伺服器,就走except,丟擲異常。
try裡面分別是讀取excel的第二個sheet,就是上一篇寫著城市的那個標籤頁,迴圈從第i行的第1、2、3列取資料,分別取出城市,返回狀態,期望。hdata是引數,這個介面只需要兩個引數,appkey登入京東永珍會自動得到,我這的appkey是不完整的,城市就是從excel裡取得。
header沒什麼用,但是在TestRequest裡寫了另一個header,這裡就得糾正過來,這個可能算是預設的header吧,用jmeter測介面時候從來沒管過這,postman裡倒是有這個。
testcaseid是用例編號,隨意寫。testname,用例名稱。testhope這裡用到了格式轉換,如果不轉換取出來的是浮點型,1000.00這樣,這樣斷言就是敗了。後面r就是呼叫前面寫的封裝那裡的東西了,傳需要的引數。再下面print(r)是我自己加的,沒完全理解怎麼回事,沒實際用途。在TestRequest裡面,已經列印了返回結果,所以這裡不需要列印,執行時候就能在控制檯看到結果。
想測試把最下面的tianqi()取消註釋就可以了。