第二講:基於當前業務的httprunner框架構造解說及運行

一、測試用例分層原理

邏輯關係圖如下所示:

同時,強調如下幾點核心概念:

  • 測試用例(testcase)應該是完整且獨立的,每條測試用例應該是都可以獨立運行的
  • 測試用例是測試步驟(teststep)的 有序 集合,每一個測試步驟對應一個 API 的請求描述
  • 測試用例集(testsuite)是測試用例的 無序 集合,集合中的測試用例應該都是相互獨立,不存在先後依賴關係的;如果確實存在先後依賴關係,那就需要在測試用例中完成依賴的處理

如果對於上述第三點感覺難以理解,不妨看下上圖中的示例:

  • testcase1 依賴於 testcase2,那麼就可以在測試步驟(teststep12)中對 testcase2 進行引用,然後 testcase1 就是完整且可獨立運行的;
  • 在 testsuite 中,testcase1 與 testcase2 相互獨立,運行順序就不再有先後依賴關係了

二,git上源碼項目文件結構解說

api:用於存放api用例,主要起到在testcases中編寫測試用例的時候調用,一般不用編寫,都是charles抓包之後使用har2case -2y命令轉換爲yml文件便可,存放路徑規範爲:

如接口:/admin/product/get-deleted-product  那麼在api中存放應該是以下的標準:

(提醒:如果根據接口信息,可以準確的找到在哪個文件夾下的哪個接口,那麼說明該接口你放對了位置,我們這邊不需要自己去一個一個的創建api文件,可批量抓包之後,利用CaseToApi.py腳本,可對應批量生成api文件,無需手動一個一個去創建)

data:用於存放測試用例的中用到的中間數據,比如A接口返回的數據,需要加工之後,傳遞給B接口使用,那麼可利用中間文件暫存A接口返回的數據

har:用於存放Charles抓包到處的文件

httprunner:此文件夾放的是HTTPrunner核心框架,不可改動,可升級

locust_tests:存放性能測試腳本

pyfile:有些測試用例需要去做一個代碼梳理,此處用於中間處理過程的腳本存放

reports:運行結果

rspFormat:用於做接口返回值的JsonSchema校驗的標準文件,其實也可以理解爲存放數據的

testcases:測試用例,通俗來說,就是我們理解的流程

testsuites:測試用例集,裏面的每個用例都是無序,獨立的

.env:存儲項目環境變量,通常用於存儲項目敏感信息

.py(文件):主要看myhrunbycode.py文件,是我們的執行文件,其他是二次封裝的工具類,可以忽視

debugtalk.py:存儲項目中邏輯運算輔助函數,測試用例中但凡用到額外處理時,均要通過該文件去調用,否則無法生效

三、運行git上測試用例

備註:運行時,一定要在根目錄上執行,比如我這裏的根目錄爲:api_master

1,直接運行api中yml文件,一般用於調試

運行命令:

運行結果(會生成測試報告,可查看具體用例執行情況):

2、運行testcases中測試用例

運行命令:

3、運行測試用例集testsuites

同上~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章