1. 程式人生 > >介面自動化測試(3)-資料準備

介面自動化測試(3)-資料準備

第二篇提到了介面自動化大概意思:從excel自動讀引數和預期結果,做介面測試並斷言,生成excel測試報告。這篇寫一下excel裡面怎麼寫,並且用程式碼找到檔案,怎麼讀內容。具體讀出來怎麼用放下一篇繼續寫。

先看excel裡面,介面我用的還是京東永珍的介面,一個免費的天氣預報查詢。

這個excel名稱是TestData.xls。

第一個標籤那個初始化資料沒什麼用,如果有公用的東西也可以寫那裡,像url什麼的。第二個標籤天氣預報介面這裡,前兩行也是根據自己心情寫,可以沒有。最重要的是這幾個城市名稱。返回狀態,期望這都是預期結果,根據自己實際情況寫。可以只寫一個預期結果,也可以寫多個,在後面介面測試時候讀取會有點區別。

再看一下excel放的位置:

getpath.py程式碼就是找TestData.xls路徑的程式碼,也包括生成的測試報告放的位置,下面testreport裡面放的就是測試報告。資料和報告不在同一個資料夾,這倆讀的時候稍微有一點別。

下面看一下讀的程式碼:

import os
import time
def GetTestDataPath():
    ospath=os.path.dirname(os.path.abspath(__file__))
    return os.path.join(ospath,"TestData.xls")
def GetTestReport():
    now=time.strftime("%Y-%m-%d-%H-%M-%S-",time.localtime(time.time()))
    ospath=os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
return os.path.join(ospath,"day6\\testreport",now+"TestReport.xlsx")

讀檔案都需要os這個包,第一個是讀資料的,第二個是測試報告的路徑,測試報告記錄了這個測試報告是什麼時候生成的,這樣每次生成的報告命名都不一樣,防止把舊的測試報告清除。

os.path.dirname(os.path.abspath(__file__))這段意思就是獲取當前資料夾的路徑,如果重複寫了兩遍,就是獲取當前資料夾的上一層路徑;寫三遍就是獲取上兩層的路徑,依此類推。程式碼和資料在同一個資料夾和不同資料夾區別就像下面,在檔名前面加上路徑。方便演示效果,程式碼指的路徑已經跳到day6外面去了。

getpath.py這裡寫這些程式碼就可以了,下面看一下讀資料的效果。

import xlrd
testdata=xlrd.open_workbook(GetTestDataPath())
table=testdata.sheets()[1]
city1=table.cell(2,0).value
city2=table.cell(3,0).value
status=int(table.cell(2,1).value)
print (city1)
print (city2)
print (status)

想讀excel需要xlrd包,這段程式碼放在getpath.py就可以看到效果,第三行是讀取第二個標籤頁,就是天氣預報介面那頁。第4、5、6行分別取兩個城市和北京後面的那個返回狀態。

測試完把下面程式碼註釋掉,不需要這部分。