序言
httprunner的使用和其中的一些概念在官方的文檔中已經(jīng)詳細(xì)說明割疾,寫這個學(xué)習(xí)記錄是為了記錄下自己的學(xué)習(xí)歷程,能夠在今后快速的深入學(xué)習(xí)和實踐嘉栓。沒有提及的部分宏榕,請查看官方文檔
版本:2.2.5
參考
testcases的編寫 ?
testcase
是包含多個測試步驟的集合。每一個測試步驟是一次請求侵佃,各個測試之間可能有相同的請求參數(shù)麻昼,他們相互關(guān)聯(lián),又有順序依賴趣钱。
測試用例register.yml
中可以只有一個請求
- test:
name: 開發(fā)者注冊
request:
method: POST
url: https://api.apiopen.top/developerRegister
data:
name: o_chen
passwd: 123456
email: 2282440078@qq.com
validate:
- eq: [content.code,200]
多個請求之前存在關(guān)聯(lián)關(guān)系
測試用例user_register.yml
中多個請求之前存在關(guān)聯(lián)關(guān)系
開發(fā)者登錄涌献,獲取apikey
,用戶注冊是需要傳入apikey
- test:
name: 開發(fā)者登錄
request:
method: POST
url: https://api.apiopen.top/developerLogin
data:
name: o_chen
passwd: 123456
extract:
apikey: content.result.apikey
validate:
- eq: [content.code,200]
- test:
name: 用戶注冊
request:
method: POST
url: https://api.apiopen.top/registerUser
data:
apikey: $apikey
name: user1
passwd: 123456
nikeName: user1
validate:
- eq: [content.code,200]
公共處理的config
將請求中公有的部分可以獨立出來,寫入到config
中
- config:
name: 開發(fā)者登錄后注冊
base_url: https://api.apiopen.top
variables:
developer_name: o_chen
passwd: 123456
success_code: 200
- test:
name: 開發(fā)者登錄
request:
method: POST
url: /developerLogin
data:
name: $developer_name
passwd: $passwd
extract:
apikey: content.result.apikey
validate:
- eq: [content.code,$success_code]
- test:
name: 用戶注冊
request:
method: POST
url: /registerUser
data:
apikey: $apikey
name: user2
passwd: $passwd
nikeName: user2
validate:
- eq: [content.code,$success_code]
獨立的api接口
將請求獨立到api中,方便在不同的用例中引用两芳,api編寫接口時殖演,動態(tài)的參數(shù)以變量的形式編寫杀赢,每個api盡可能的能夠單獨調(diào)用成功力崇。在測試用例中通過關(guān)鍵字api
引用接口的yaml
文件
開發(fā)者登錄接口
name: 開發(fā)者登錄
base_url: https://api.apiopen.top
variables:
developer_name: o_chen
passwd: 123456
success_code: 200
request:
method: POST
url: /developerLogin
data:
name: $developer_name
passwd: $passwd
extract:
apikey: content.result.apikey
validate:
- eq: [content.code,$success_code]
用戶注冊接口
name: 用戶注冊
base_url: https://api.apiopen.top
variables:
user_name: user0
passwd: 123456
success_code: 200
request:
method: POST
url: /registerUser
data:
apikey: $apikey
name: $user_name
passwd: $passwd
nikeName: $user_name
extract:
apikey: content.result.apikey
validate:
- eq: [content.code,$success_code]
用例中引用接口
- config:
name: 開發(fā)者登錄后注冊
base_url: https://api.apiopen.top
variables:
developer_name: o_chen
passwd: 123456
success_code: 200
- test:
name: 開發(fā)者登錄
api: api/apiopen/developer_login.yml
- test:
name: 用戶注冊 user3
api: api/apiopen/register_user.yml
variables:
user_name: user3
- test:
name: 用戶注冊 user4
api: api/apiopen/register_user.yml
variables:
user_name: user4
- test:
name: 用戶注冊 user5
api: api/apiopen/register_user.yml
variables:
user_name: user5
用例中引用testcase
teststeps:
-
testcase: testcases/sale/login.yml
output:
- token
-
testcase: testcases/sale/order_list.yml
output:
- orderList
其中廉羔,output
輸入的是變量名稱蛔六,將引入的子測試用例中的變量添加到當(dāng)前的測試用例中磷蜀。output
關(guān)鍵字也可以寫在子測試用例的config
節(jié)點中轴捎。同時在運行時會把變量打印出來鹤盒。
testcase中的優(yōu)先級
base_url
testcase test > testcase config > testsuite test > testsuite config > api
variables
testcase config > testcase test > testcase_def config > testcase_def test > api
verify
testcase teststep (api) > testcase config > testsuite config