Python 接口自動化測試之數據驅動(DDT)

      在接口測試中,一個接口每每須要有多組數據進行測試,以驗證接口的正確性。這樣就涉及到一個問題,是否是須要編寫多個測試用例來實現呢?好比一個登錄接口,登錄成功的一組數據、登錄密碼錯誤的一組數據、登錄帳號錯誤的一組數據。那咱們要怎麼操做呢?數據驅動就能夠很好的解決該問題。只須要編寫一個測試用例腳本,經過傳入不一樣的數據,返回不一樣的測試結果。
python

     python中實現數據驅動是經過引入ddt模塊來實現的。沒有安裝的,直接安裝改模塊便可。api

   import ddt微信

使用數據驅動時,須要在測試的模塊上進行聲明。在具體的測試方法上使用ddt.data()方法或者ddt.file_data()進行參數傳遞app

ddt.data()默認將參數都傳遞給第一個參數,每一組數據執行一遍測試用例,以達到數據驅動的效果。若是傳遞多個參數時需要用到ddt.unpack 聲明進行拆分測試

案例以下:spa

import ddtimport unittestimport ReadExcel
testData =ReadExcel.ReadExcel.readExcel("E:\\study\\data\\test_ddt.xls", "Sheet1")@ddt.ddt #聲明使用數據驅動class DDTtest(unittest.TestCase):    @ddt.data([1,2],[3,4])   #數據參數 @ddt.unpack #拆分參數 def test_A(self,a,b): print(a+b)
@ddt.data({"a","b"}) def test_B(self,a): print(a) @ddt.data([1,2]) def test_C(self,a): print(a)
    @ddt.data(*testData)  #讀取Excel文件進行傳遞,這裏必須是迭代器 def test_D(self, data): print(data) print("執行完成") return
if __name__=="__main__": unittest.main();

import xlrd#讀取Excel的方法class ReadExcel(): def readExcel(fileName,SheetName="Sheet1"): data = xlrd.open_workbook(fileName) table = data.sheet_by_name(SheetName)
#獲取總行數、總列數 nrows = table.nrows ncols = table.ncols if nrows > 1: #獲取第一行的內容,列表格式 keys = table.row_values(0) #print(keys)
listApiData = [] #獲取每一行的內容,列表格式 for col in range(1,nrows): values = table.row_values(col) # keys,values這兩個列表一一對應來組合轉換爲字典                 api_dict = dict(zip(keys, values))  #print(api_dict) listApiData.append(api_dict) return listApiData else: return None
if __name__ == '__main__': s = ReadExcel.readExcel("E:\\study\\data\\test_ddt.xls","Sheet1") print(s)
執行結果以下:


本文分享自微信公衆號 - 軟件測試道與術(UTesting)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。.net

相關文章
相關標籤/搜索