yaml 用例結構
config+teststeps 必填
config部分:(全局變量)
name:用例名稱
base_url :測試環境的地址
verify: 校驗證書,是 true 否 false(全局變量非必寫)
variblse:指定測試用例的公共變量,
export:導出測試用例會話結果,設為全局變量
場景案列-環境變量.env
在自動化測試項目的根目錄中,創建.env文件並將敏感信息放置到其中,儲存采用name=value的格式(數據庫配置信息等)
格式如下:
username=test
password=123456
base_url=http://823.5158.1553.
如何引用環境變量
${ENV(username)}、${ENV(password)}、${ENV(base_url)}
testsetps: 是一個list
name:指定測試步驟的名稱
request:請求參數
(url請求地址、method請求方式json請求參數、variables:指定步驟變量,參數引用變量“$變量名稱”、{若get請求帶參數則增加:params請求參數},{verify: 校驗證書,是 true 否 falshttprunner3自帶封裝})
extract:提取返回結果
validate:提取校驗返回結果(-eq[])
export:導出的測試用例會話變量,設為全局變量
base_url 部署接口項目環境的地址(端口與環境地址有可變性)
config里添加base_url相當於把接口地址的公共部分提取出來放在config里作為公共參數以供多條用例使用,而request里的請求地址只需填寫不相同的參數即可。若中途有調用其他接口,則在該用列下直接填寫完整的url的絕對路徑
https請求SSL證書
config部分{verify: 校驗證書,是 true 否 false(全局變量非必寫)}
testsetps-request部分:{verify: 校驗證書,是 true 否 falshttprunner3自帶封裝可以不用帶此參數}
post請求參數類型
content-type:application/x-www-form-urlencoded
(url請求地址、method請求方式、請求頭部:herders參數鍵值對、data請求參數鍵值對、validate:校驗返回結果(-eq[]){若get請求帶參數則增加:params請求參數},{verify: 校驗證書,是 true 否 falshttprunner3自帶封裝})
headers在引用局部變量時增加:Authorization:Token $
變量的聲明與引用
config中的變量在整個yaml中可生效(公共變量)
teststeps中的變量只在list內可生效 (variables變量先聲明,再用$引用)
同名情況下當全局變量與局部變量同時存在則局部變量大於全局變量
validate提取校驗結果
使用jmespath提取json響應正文並使用預期值進行驗證,-jmes_path:jmespath表達式,更多細節參考JMEPath教程,-expect:預期值,可以使用置頂預期值、變量或者函數引用,-message:消息(可選),用於指示斷言錯誤的原因
使用jmespath提取json響應,Httprunner返回四個對象
-status_code 狀態碼,-headers 返回頭部,-cookies 返回cookies,-body 返回body內容(一般為json格式)獲取並校驗token:只能獲取token的長度:len_eq:{body.token,40}
場景案列-參數關聯
extract 提取關鍵字引用關鍵字($token)