httprunner2.0 概述及使用說明


一、概述

HttpRunner是一款面向 HTTP(S) 協議的通用測試框架,只需編寫維護一份 YAML/JSON 腳本,即可實現自動化測試、性能測試、線上監控、持續集成等多種測試需求。

二、系統流程

 

三、文件組織

1、項目文件目錄結構

說明:
(1)api 文件夾:存儲接口定義描述
(2)testcases 文件夾:存儲測試用例,文件夾也可以使用其它名稱
(3)testsuites 文件夾:測試測試場景,文件夾也可以使用其它名稱
(4)reports 文件夾:存儲 HTML 測試報告
(5).env文件:存儲項目環境變量,通常用於存儲項目敏感信息
(6)debugtalk.py:存儲項目中邏輯運算輔助函數
·該文件存在時,將作為項目根目錄定位標記,其所在目錄即被視為項目工程根目錄
·該文件不存在時,運行測試的所在路徑(CWD)將被視為項目工程根目錄
·測試例文件中的相對路徑(例如.csv)均需基於項目工程根目錄
·運行測試后,測試報告文件夾(reports)會生成在項目工程根目錄

四、用例編寫

1、用例編寫

(1)api文件夾中編輯接口描述文件,如create_user.yml

(2)testcases文件夾中編輯測試用例文件,如create_and_check.yml
(3)testsuites文件夾中編輯測試用例集,如create_users.yml

2、編寫用例注意事項

(1)extract響應結果的字段有 : status_code, cookies, elapsed, headers, content, text, json, encoding, ok, reason, url。如果響應結果中有多層嵌套,可通過content.xxx.0.id格式獲取id,其中content是指響應內容,xxx是響應內容中的某個字段,0表示獲取xxx數組中第一個內容。
(2)所有json/yaml和.env文件中格式錯誤都會導致執行失敗。
.env編輯時需注意:從第一行開始編輯,結尾不要有空行,采用key=value,value不需用“”括起來,否則會變成value的一部分
(3)支持的檢驗器有eq(=)、lt(<)、le(<=)、gt(>)、ge(>=)、ne(!=)、str_eq、len_eq、len_gt、len_ge、len_lt、len_le、contains、contained_by、type_match、regex_match、startswith、endswith。

五、變量或函數引用

1、變量引用
接口用例中,取值時可以通過自定義,也可以引用其他已定義好的變量或參數,格式為$var

2、函數引用
接口用例中,取值時除了自定義、引用其他變量外,還可以引用debugtalk.py定義的函數來獲取到函數返回值,格式為${get_value()}

六 環境變量引用

1、編輯.env文件

注意:env一般放置在項目根目錄,若放置在其他目錄或者命名不是.env時,可采用 --dot-env-path 參數指定文件路徑,如hrun .../x.yml --dot-env-path .../xxx.env

2、引用環境變量

(1)通過${ENV()}獲取

(2)在debugtalk.py中通過os.environ獲取

 

七、參數化數據驅動

Httprunner2.0中支持testsuits中進行參數化和數據驅動,假如測試用例中定義了多個參數,那么測試用例在運行時會對參數進行笛卡爾積組合,覆蓋所有參數組合情況。
1、參數情況分2種
(1)獨立參數
(2)具有關聯性的多個參數

2、指定數據源方式分3種
(1)在 YAML/JSON 中直接指定參數列表


(2)通過內置的P函數引用 CSV 文件

(3)調用 debugtalk.py 中自定義的函數生成參數列表

 

附:
1、以上內容參考或引用以下網址

https://testerhome.com/topics/18691
https://github.com/HttpRunner/HttpRunner
https://cn.httprunner.org/
https://debugtalk.com/post/HttpRunner-testcase-layer/


免責聲明!

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



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