接口測試框架


        一個接口設計用例時有可能會十幾條到幾十條都有可能,多個接口就有很多了,這時候我們可以考慮到自動化測試接口,采用數據驅動方式,把數據寫在excel表格中,代碼做封裝,用數據驅動測試,兩部分相互獨立。python中用ddt模塊來做數據驅動,代碼簡單好維護,調試也方便

一、主要功能及技術棧

1. 主要功能框架:

① 公共模塊(common):存放與業務相關的公共函數,封裝起來放在common文件中,供其他接口實際調用時使用

② 測試用例(testCase):主要存放接口測試用例(腳本命名規則:test_腳本名稱;一個測試類對應一個接口)

③ 測試數據(testData):存放測試用到的數據

④ 測試報告(report):生成測試報告以郵件形式發送(html / text /smtp)

⑤ 全局執行文件main:Python定義的main()函數只有當該Python腳本直接作為執行程序時才會執行;當該python腳本被作為模塊(module)引入(import)時,其中的main()函數將不會被執行

2. 技術棧:python + ddt + unittest + requests + htmltextrunner

3. 接口測試用例編寫步驟

① 導入庫文件  ② 定義類  ③ 為類定義方法,並在該方法內實現接口腳本的編寫  ④ 運行結果  ⑤ 結果校驗

二、接口測試框架實例編寫

本期接口測試框架需求:實現wanandroid網站注冊、登錄、退出登錄三個接口的接口自動化測試腳本的編寫

git地址:https://github.com/annielulu/interfaceTest

1)框架設計:

common:configHttp,readConfig,readExcel,writeExcel,configEmail

testCase:使用unittest / ddt /requests實現接口測試腳本編寫

testData:使用excel表格存放測試數據

report:以郵件形式輸出測試報告

2)實現思路:

1. 通過抓包工具抓到接口數據並存放在excel表格中(urlSheet / paramSheet / assertSheet)

2. 獲取excel數據(定義一個readExcel類)

① 找到excel文件並打開

② 定位sheet頁,定位行和列

③ 讀取excel數據

④ 組裝測試數據,變為一條正確的匹配的接口測試數據

④ return data給testCase模塊

3. 編寫testCase模塊

① 調用readExcel模塊,拿到測試數據

② 根據接口的請求方式來判斷調用什么方法(get請求 / post請求)

③ 校驗get請求 / post請求的數據

④ 保存執行結果

⑤ 寫入excel中(writeExcel模塊)

4. writeExcel模塊

① 找到excel,讀取數據

② 復制excel對象

③ 根據id寫入對應的實際結果和接口測試狀態

5. 發送測試報告

三、ddt及unittest介紹

1. 背景介紹: python的unittest沒有自帶數據驅動功能,所以如果要使用unittest同時又想使用數據驅動,那么就可以使用ddt(Data-Driven Tests)來完成。

2. 使用步驟:① 導入ddt包 ② 用裝飾器裝飾@ddt ③ 傳入參數,執行

3. 代碼實例:

 

四、python讀寫excel

1. 使用xlrd和xlwt讀寫excel(需要下載安裝xlrd庫和xlwt庫 -- pip install xlrd)

①打開excel

readbook = xlrd.open_workbook(r'\test\canying.xlsx')

② 獲取讀入的文件的sheet

sheet = readbook.sheet_by_index(1)                #索引的方式,從0開始

sheet = readbook.sheet_by_name('sheet2')      #通過名字定位sheet頁

allsheetnames = readbook.sheet_names()        #返回所有sheet頁名字組成的列表

③ 獲取sheet的最大行數和列數

nrows = sheet.nrows      #行

ncols = sheet.ncols        #列

④ 獲取某個單元格的值

lng = sheet.cell(0,0).value          #獲取1行1列的表格值

lat = sheet.cell(1,4).value          #獲取2行5列的表格值

 獲取某行/某列的值

 row_value = sheet.row_values(x)      #獲取x行的值,從0開始計數

col_value = sheet.col_values(y)         #獲取y列的值,從0開始計數

⑤ 打開將寫的表並添加sheet

writebook = xlwt.Workbook()      #打開一個excel

sheet = writebook.add_sheet('test')       #在打開的excel中添加一個sheet

⑥ 將數據寫入excel

sheet.write(i,0,result[0])        #寫入excel,i行0列

sheet.write(i,1,result[1])

⑦ 保存

writebook.save('answer.xls')     #一定要記得保存

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM