httprunner4.x學習02-用例結構

趣_学發表於2024-04-04

測試用例(TestCase)

一條測試用例(testcase)應該是為了測試某個特定的功能邏輯而精心設計的,並且至少包含如下幾點:

  • 明確的測試目的(achieve a particular software testing objective)
  • 明確的輸入(inputs)
  • 明確的執行環境(execution conditions)
  • 明確的測試步驟描述(testing procedure)
  • 明確的預期結果(expected results)

對應地,HttpRunner 的測試用例描述方式進行如下設計:

  • 測試用例應該是完整且獨立的,每條測試用例應該是都可以獨立執行的
  • 在 HttpRunner 中,每個 YAML/JSON/pytest/go test 檔案對應一條測試用例
  • HttpRunner 以 TestCase 為核心,將任意測試場景抽象為有序步驟的集合

config配置

YAML/JSON 格式用例(testcase)結構延續了之前的config 和 teststeps 兩個部分

config:
    name: "login_imos_case"
    variables:
        username: admin
        password: quxue2023
    headers:
        User-Agent: ${get_user_agent()}
    verify: False
    export: [ "foo3" ]

config屬性說明:

屬性名稱
是否必填 說明
name
測試用例名稱
variables 指定測試用例的公共變數
headers 公共請求頭部
verify https請求時,是否校驗證書,預設True,忽略證書校驗可以設定為False
export 指定匯出的測試用例會話變數,把變數暴露出來,設定為全域性變數
parameters 引數化設定,對整個檔案生效

除了上面的一些自動化會用到的引數,4.x 版本新增了一些關鍵字

屬性名稱是否必填作用
websocket WebSocket 斷開重連的最大次數和間隔等
think_time 針對效能測試用,設定思考時間
weight 針對效能測試用到,分配給當前測試用例的虛擬使用者權重優先順序
parameters_setting 引數驅動的具體策略
environs 環境變數,如果未指定則會從 .env 檔案匯入
path 當前測試用例所在路徑

測試步驟

測試步驟 teststep 屬性

名稱說明
name 名稱
api 引用介面的步驟型別
testcase 引用其他testcase的步驟型別
request 發起 http請求的步驟型別

每個步驟可以新增以下屬性

名稱說明適用範圍
setup_hooks 前置函式 request/api/websocket
extract 引數提取 request/api/websocket
teardown_hooks 後置函式 request/api/websocket
validate 結果校驗 request/api/websocket
export 匯出變數 testcase
variables 區域性變數 通用

  4.x 版本新增其它關鍵字

名稱說明
think_time 思考時間
rendezvous 集合點
websocket 用於發起 WebSocket 請求的步驟型別
transaction 用於定義一個事務

相關文章