1. 程式人生 > >介面自動化測試(4)-介面測試

介面自動化測試(4)-介面測試

標題想不出來寫什麼好,請見諒。

前面兩篇都是準備工作,這篇要用到前面兩篇,當然再後面還會用到這一篇,這個.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()取消註釋就可以了。