四.接口測試外的其他功能
四.har2case
作用:将har檔案轉化成yml或者json檔案,具體使用方法可以看下har2case -h的羅列
指定目标檔案會生成yml檔案
har2case tests/data/demo.har demo.yml
不指定目标會生成json檔案
har2case tests/data/demo.har
參考:
https://debugtalk.com/post/HttpRunner-supports-HAR/
五.測試結果校驗器(validator)
在自動化測試執行的時候,會在發起HTTP請求、解析結果響應之後,逐個檢查各個校驗項,若存在任意校驗項不通過的情況,則該test将終止并被标記為失敗。
舉例說明:
- test:
name: get token
request:
url: http://127.0.0.1:5000/api/get-token
method: GET
extract:
- token: content.token
validate:
- {"check": "status_code", "comparator": "eq", "expect": 200}
- {"check": "content.token", "comparator": "len_eq", "expect": 16}
每一個test可以指定0個或多個校驗項,放置在validate中。每一個校驗項均為一個json結構。裡面包含check(要檢查的字段)、comparator(字段對應着比較方式,若不指定則預設采用eq即檢查字段與預期值相等)、expect(檢查字段預期的值)
優化:
實作的功能:
新增支援自定義結果校驗器
結果校驗器中實作變量引用
結果校驗内容新增支援正規表達式提取
check和expect均可以實作變量的引用,check還新增了采用正規表達式提取内容的方式comparator可以實作自定義方法的調用
為了實作盡可能強大的檢查功能,check屬性值可通過鍊式操作精确指定具體的字段,comparator也内置實作了大量的檢查功能。
約定大于配置思想在架構中實作自定義結果校驗器的機制,使用者在有需要的時候,可以自己編寫校驗函數,然後在valiadate中引用校驗函數
參考:
https://debugtalk.com/post/HttpRunner-validator-optimization/
六…HttpRunner通過skip機制實作對測試用例的分組執行控制(借鑒unittest)
https://debugtalk.com/post/HttpRunner-skip-feature/
七.參數化資料驅動( LoadRunner)
- config:
name: "demo"
parameters: # 參數
- user_agent: ["iOS/10.1", "iOS/10.2", "iOS/10.3"]
- user_id: ${P(user_id.csv)} #P是一個内置函數parameterize ,用來解析csv檔案
- username-password: ${get_account(10)} #通過調用函數動态擷取參數
八.hook機制(hook 函數定義在debugtalk.py檔案中)
針對自動化測試用例,要在單個測試用例和整個測試用例集的前後實作hook
在 HttpRunner 中,負責測試執行的類為 httprunner/runner.py 中的 Runner。是以,要實作用例集層面的 hook 機制,隻需要将用例集的 setup_hooks 放置到 init 中,将 teardown_hooks 放置到 del 中。
類似地,要實作單個用例層面的 hook 機制,隻需要将單個用例的 setup_hooks 放置到 request 之前,将 teardown_hooks 放置到 request 之後。