現在市面上做接口測試的工具很多,比如Postman,soapUI, JMeter, Python+ unittest等等,各種不同的測試工具擁有不同的特色。但市面上的接口測試工具都存在一個問題就是無法完全吻合的去適用沒一個項目,比如數據的處理,加密方式的選擇,業務邏輯的處理等等,因為自己編寫一個框架能夠很好的契合自己的項目。本次選用Python+ unittest方案。這個方案需要測試者具有一定的代碼能力,通過利用Python自帶的PyUnit也就是我們說的:unittest自動化框架,進行接口自動化測試框架的二次開發。
特點:框架穩定,依托於Python強大的庫進行各種形式的接口測試,如基於http協議的接口可以利用urlib,urlib2,requests等庫進行設計測試。(現在公司的接口基本都是基於http協議的,因此調用這三個庫可以完全的實現接口自動化)同時利用JSON庫於測試參數進行配置,實現整體測試框架的參數驅動化。
2.框架介紹
整個框架主要分為三層:
- 框架層: 核心層+應用層
- 核心層:為底層的基礎代碼
- 應用層:為核心層的對外的封裝
框架結構圖如下:
整個框架結構如上圖,console包為整個框架的入口,通過這里來啟動整個框架運作。lib和case為框架的核心層和應用層。
lib里面為測試框架中所有的底層代碼
包括:斷言方法(resultprocess),權鑒,配置文件,自動生成腳本,測試數據的獲取,數據類型的轉換,加密的處理,接口測試的初始化,發送郵件,生成測試報告等等。
case 包里包括server和testcase兩個包,server包里面為接口業務串聯,testcase為單個接口測試。
單個接口測試用例示例:
單個server用例示例:
說明:
- import unittest //導入測試框架
- 定義一個繼承自unittest.TestCase的測試用例類
- 定義setUp和tearDown,在每個測試用例前后做一些輔助工作。
- 定義測試用例,名字以test開頭。
- 一個測試用例應該只測試一個方面,測試目的和測試內容應很明確。主要調用assertEqual、assertRaises等斷言方法判斷程序執行結果和預期值是否相符。
- 調用unittest.main()啟動測試
- 如果測試未通過,會輸出相應的錯誤提示。如果測試全部通過則不顯示任何東西,這時可以添加-v參
data數據包:
log: 主要用於存放腳本運行時生成的log文件
report :用於存放報告文件,為xml文件
case_data :單個接口測試的數據,為json文件
server-data : 接口業務串聯的數據,為excel文件
case_data 中json數據格式:
(關於什么是json格式,自己百度)
json數據根據給的上面的這個模板進行配置,注意字段:
test_list :單個接口的多種狀態的測試名稱,根據該字段列表中的值進行循環生成py的測試腳本
expect :斷言的數據
mode :用於判斷斷言采用何種模式(具體情況參看lib庫里的resultprocess.py文件)
R : 用於判斷是否返回測試數據
reclye: 用於判斷是否循環
replace_filed: 標識符,用於判斷哪個參數需要被替換,主要用於業務串聯測試
server_data 中excel數據格式:
excel里面的數據根據給的上面的這個模板進行配置,注意字段:
測試內容 :寫業務流程
測試文件名:表示自動生成的測試腳本的文件名
測試標題:業務串聯測試的用例名
調用文件:填寫需要串聯的接口,以“ ,"隔開
傳遞字段: 表示下一個接口需要從上一個接口返回的數據中獲取的字段內容
測試報告:
3.框架使用說明:
測試人員根據開發提供的接口文檔,對於接口的測試點進行完整的分析,編寫測試用例,再把測試用例轉換成對應的json和excel文檔,啟動console里面的start_文件,選擇對應的測試模式,進行測試。
4.框架結構圖:
覺得不錯的可關注微信公眾號在手機上觀看,讓你用手機邊玩邊看