4.httprunner-引數化和資料驅動
阿新 • • 發佈:2022-05-05
前言
- 引數化在config中使用parameters關鍵字
- httprunner2.x 是在testsuite中實現引數化
- httprunner3.x 是在testcase中的config實現引數化
- 測試搜尋功能,只有一個輸入框,但是有十種不同的搜尋關鍵字
- 測試賬號登入功能,需要輸入賬號密碼,然後按照等價類劃分後有20種組合情況
- 單個獨立引數:舉例的第一個場景,只需要變化搜尋關鍵字這一個引數
- 多個具有關聯性的引數:舉例的第二個場景,需要變化賬號密碼兩個引數,並且兩個引數關聯組合
- 對於引數而言,我們可能具有一個引數列表,執行時按照不同的規則去取值
- 例如順序取值、隨機取值、迴圈取值等
- 這就是典型的引數化和資料驅動
- 假設我們用4個賬號登入,密碼都是123456
- 我們通過parameters設定key為user,value為4個賬號的列表
- 那麼執行的時候,user依次迴圈取列表的值,供下方引用變數請求
- 列表有多少個引數,介面就會對應執行請求多少次,會有多少個用例
- 設定引數化的value必須是list
config: name: 登入用例 base_url: ${ENV(base_url)} # 設定變數 variables: password: 123456 #設定引數化 parameters: user:[test1,test2,test3,test4] teststeps:多個引數一一對應引數化- name: step-登入 request: url: /v1/login/ method: POST params: user: $user #引用引數化命令 password: $password
- 場景:我們需要每個賬號對應一個單獨的密碼來實現場景
- 我們繼續parameters設定引數化,而多個不同的引數,我們用-隔開
- 每個賬號對應一個單獨的密碼,我們需要兩個引數,user和password
- 這兩個引數,我們用-隔開定義兩個key,然後一一對應下面的引數
- 執行的時候,兩個key依次迴圈取對應值供下方引用
笛卡爾積組合引數config: name: 登入用例 base_url: ${ENV(base_url)} parameters: # 設定user和password兩個key,用-隔開 # 每次按順序迴圈取對應的值 user-password: -[test1,123456] -[test2,654321] -[test3,987544] -[test4,678910] teststeps: - name: step-登入 request: url: /v1/login/ method: POST params: user: $user password: $password
- 比如測試賬號有4種,[test1,test2,test3,test4]
- 密碼也有4種,[123456,654321,56789,98765]
- 用笛卡爾積組合的話,就是4*4=16種組合用例
- 我們可以在parameters下單獨設定兩個key,user和password
- 將使用者名稱和密碼進行全組合,即每個使用者名稱的取值都與每個密碼的取值成對進行組合應
config: name: 登入用例 base_url: ${ENV(base_url)} parameters: user: [test1,test2,test3,test4] password: [123456,654321,56789,98765] teststeps: - name: step-登入 request: url: /v1/login/ method: POST params: user: $user password: $password