自研介面測試平台(Django2+Bootstrap3+Unittest)
- 2019 年 10 月 6 日
- 筆記
自研介面測試平台(Django2+Bootstrap3+Unittest)
HttpRuleTest是一款面向 HTTP 協議的通用測試框架,只需web端維護介面測試數據,即可實現自動化測試、監控、數據統計、持續集成等多種測試需求。開發語言: python3.6,適用的作業系統:Linux/mac/Windows。
設計理念
- 降低介面自動化的維護成本,增加測試體驗,提高測試效率
- 充分復用優秀的開源項目,不追求重複造輪子,而是將強大的輪子組裝
- 遵循
約定大於配置
的準則,在框架功能中融入最佳工程實踐 - 追求投入產出比,一份投入即可實現多種測試需求
核心特性
- 測試者通過管理介面,通過介面名去建立單介面多用例測試
- 測試者只需維護數據,數據會按照規則去生成腳本
- 測試者採用斷言驗證數據結果,以及可以使用介面依賴功能
- 測試者可以使用sql初始化,斷言狀態前,以及析構 執行
- 測試者可以通過sql獲取變數或者介面依賴獲取變數使用${變數名}進行替換
- 採用配置化管理訪問環境和發送郵件
- 測試結果統計報告簡潔清晰,附帶詳盡統計資訊和日誌記錄
- 集成apschedule框架,採用crotable定時模式
- 繼承 Requests 的全部特性,輕鬆實現 HTTP的各種測試需求
- 使用 unittest的單元測試框架,面向深層次用戶可以自行擴展生成的腳本
- Web 平台化,操作便捷,避免各地管理腳本和數據的混亂
添加項目

創建模組,關聯項目

添加介面

添加用例

生成任務


執行

查看報告


斷言
斷言配置提供了4種方式,狀態碼,正則加字典的方式,jsonpath,資料庫欄位值的校驗。比對方式也提供了多種選擇,有等於,不等於,包含,不包含在列表中等等。

1.狀態碼校驗,填寫關鍵字status_code,系統就會默認選擇狀態碼校驗
2.資料庫欄位值的校驗,這個要配合sql一起實現。sql中配置了查詢的sql,將變數值獲取,選取中間態執行,然後配置斷言(${item_type})(${amount})方式校驗結果
(如果資料庫存有」的字元串,系統自動替換成『,所以實際結果直接寫單引號就可以了;如果資料庫存有,的字元串,系統自動替換成+,所以實際結果直接寫+就可以了)
(如果斷言的結果涵蓋布爾值的時候,與其對應的常量需要填寫True或者False)

3.下面兩種方式用例子來介紹,下圖展示了一個json的數據,我要斷言到result第一個對象的couponId值。['d']['result'][0]['couponId'],遇到字典用[''],一定要用單引號,遇到數組用[]。這樣就能一直遍歷下去。

4.jsonpath方法,採用'.'開頭,也是剛才那個欄位.d.result[0].couponId,遇到字典用.遇到數組用[],這裡可以用json格式化小工具去獲取path。

架構組織圖

本文轉自:https://tech.kujiale.com/zi-yan-jie-kou-ce-shi-ping-tai/