自研介面測試平台(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/