HTTPRunner 升級到2.0


之前使用HRUN1.0已經快一年來,  一直在關注開源社區的進展, 減年年初2.0就已經上線來, 由於擔心穩定性差,文檔又沒有健全,遲遲沒有升級; 

最近看開發文檔已經全部更新到2.0 決定將之前的項目進行優化; 首先學習下新的框架有哪些亮眼的地方;

項目中文使用文檔: https://cn.httprunner.org/examples/testerhome-login/

 

1、環境搭建,具體可以參考文檔,非常詳細, 由於之前用過  我就直接升級就行了;

pip3 install -U HttpRunner

2、搭建測試腳手架(不用自己在像之前一樣自己構建測試框架; 可以使用現成的框架結構,以下作者對測試用例的理解,是不是很有道理)

  • 測試用例應該是完整且獨立的,每條測試用例應該是都可以獨立運行的;在 HttpRunner 中,每個 YAML/JSON 文件對應一條測試用例。
  • 測試用例包含 測試腳本 和 測試數據 兩部分:
    • 測試用例 = 測試腳本 + 測試數據
    • 測試腳本 重點是描述測試的 業務功能邏輯,包括預置條件、測試步驟、預期結果等,並且可以結合輔助函數(debugtalk.py)實現復雜的運算邏輯;可以將 測試腳本 理解為編程語言中的 類(class)
    • 測試數據 重點是對應測試的 業務數據邏輯,可以理解為類的實例化數據;
    • 測試數據 和 測試腳本 分離后,就可以比較方便地實現數據驅動測試,通過對測試腳本傳入一組數據,實現同一業務功能在不同數據邏輯下的測試驗證。

hrun --startproject demo  #會在當前路徑下生成測試腳手架哦,IDE打開后是這樣的

  • YAML/JSON(必須):測試用例文件,存儲接口測試相關信息
  • debugtalk.py(可選):存儲項目中邏輯運算輔助函數
    • 該文件存在時,將作為項目根目錄定位標記,其所在目錄即被視為項目工程根目錄
    • 該文件不存在時,運行測試的所在路徑(CWD)將被視為項目工程根目錄
    • 測試用例文件中的相對路徑(例如.csv)均需基於項目工程根目錄
    • 運行測試后,測試報告文件夾(reports)會生成在項目工程根目錄
  • .env(可選):存儲項目環境變量,通常用於存儲項目敏感信息
  • .csv(可選):項目數據文件,用於進行數據驅動
  • reports:默認生成測試報告的存儲文件夾

 

 3、批量生成自動化測試用例 har2case

和1.0使用基本沒差, 利用抓包工具篩選出目標接口,批量導出 har格式, 然后轉換成json 或 yml格式  稍加改造就是現成的測試用例

也支持使用Yapi 和 Swagger批量導出生成測試用例, 文檔上是這么寫的  我還沒機會去試.

har2case x.har -2y  #不寫-2y 默認會生成json格式

 

4、用例優化之提取公共變量config

config層是用例中存放公共變量的地方,解決參數復用的問題;

存儲公共變量使用變量名 variables, 可以放在用例集上 也可以放在某個具體的測試用例中;

后面接口調用直接 ${ }  會優先查找用例層面的variable  然后在找用例集層面的variable.

 

5、用例優化之 參數透傳 extract

與之前一樣  支持參數透傳  即一條用例可能會調用多個接口, 接口調用前后存在依賴  后面的接口請求參數  需要前面接口的返回值(比如登陸的token)

接口一可以使用extract關鍵字來匹配返回值  路徑.  或正則表達式

接口二想引用接口一的返回值  ${id}

 

6、用例優化之 測試數據參數化 parameters  & debugtalk

獨立參數參數化  

關聯參數參數化

引入csv文件進行參數化取值

引入熱加載,用例參數化過程中實時去執行函數獲取參數值

 

7、用例優化之 hook機制

支持用例集的hook和測試用例層面的hook

 

8、用例優化之 測試用例分層機制 -api  -testcase

測試用例分層機制的核心是將接口定義、測試步驟、測試用例、測試場景進行分離,單獨進行描述和維護,從而盡可能地減少自動化測試用例的維護成本。

api文件夾的作用:把重復的請求(請求token)抽離出去,引用時可以修改參數,用variable覆蓋api參數, 

希望用例可以回歸本質,每一個用例都可以獨立運行,做到數據解藕

除了把單個請求抽離出來  也可以把單個測試步驟抽離出來  被其它用例引用來解決數據節藕的問題

 

9、環境變量設置 .env

在自動化測試中,有時需要借助環境變量實現某些特定的目的,常見的場景包括:

  • 切換測試環境
  • 切換測試配置
  • 存儲敏感數據(從信息安全的角度出發)

10、用例執行

hrun yourcasepath.yml --log-level debug   

#默認情況下,HttpRunner 運行時的日志級別為INFO,只會包含最基本的信息,包括用例名稱、請求的URL和Method、響應結果的狀態碼、耗時和內容大小。

 

11、采用locusts執行用例的壓力測試

$ locusts -f  yourcasepath.yml

 


免責聲明!

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



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