最近決定用Apifox寫接口自動(dòng)化測(cè)試用例昔逗,于是研究了這個(gè)工具的具體實(shí)踐,下面把最近實(shí)踐過程中遇到的問題和解決方案進(jìn)行總結(jié)绸硕,方便回看钢属。
Apifox它是集:接口文檔管理、接口調(diào)試蚂四、Mock光戈、接口自動(dòng)化測(cè)試于一體的全流程集成工具哪痰,覆蓋從開發(fā)->測(cè)試->管理等環(huán)節(jié)遂赠,等同于 Postman + Swagger + Mock + JMeter幾款工具功能累加。
下面從以下幾個(gè)方面來進(jìn)行總結(jié):
1json path語法及使用
2.參數(shù)化使用
3.結(jié)果驗(yàn)證
1.1Json path介紹
- JSONPath 之于 JSON晌杰,就如 XPath 之于 XML跷睦。
- JsonPath 是設(shè)計(jì)來作為 JSON 的路徑語言,用于確定 JSON 文檔中某部分位置的語言肋演。
- JSONPath 可以方便對(duì) JSON 數(shù)據(jù)結(jié)構(gòu)進(jìn)行內(nèi)容提取抑诸。
- JsonPath 將 JSON 數(shù)據(jù)轉(zhuǎn)換為 DOM 樹狀結(jié)構(gòu),并提供在數(shù)據(jù)結(jié)構(gòu)樹種尋找節(jié)點(diǎn)的能力爹殊。
1.2.Json path語法
JsonPath語法要點(diǎn):
$ 表示文檔的根元素
@ 表示文檔的當(dāng)前元素
.node_name 或 ['node_name'] 匹配下級(jí)節(jié)點(diǎn)
[index] 檢索數(shù)組中的元素
[start:end:step] 支持?jǐn)?shù)組切片語法
** 作為通配符蜕乡,匹配所有成員**
.. 子遞歸通配符,匹配成員的所有子元素
(<expr>) 使用表達(dá)式
?(<boolean expr>)進(jìn)行數(shù)據(jù)篩選
1.3.Json path使用
直接從返回結(jié)果中獲取第一個(gè)元素
從返回結(jié)果中獲取iata=3Q的子節(jié)點(diǎn)中的id號(hào)
2.如何參數(shù)化
1.用兩個(gè){}的形式來傳參梗夸,如{{flightId}}
2.如果提取變量是列表形式层玲,可以取其中某一個(gè),如{{flightId[0]}}
3.可以選擇右側(cè)的“魔法棒”動(dòng)態(tài)值來選擇變量/常量或動(dòng)態(tài)變量
3.結(jié)果驗(yàn)證
3.1返回結(jié)果驗(yàn)證
- 狀態(tài)碼驗(yàn)證(根據(jù)實(shí)際情況選擇響應(yīng)碼反症,如200或400)
- 內(nèi)容格式驗(yàn)證(一般返回是json格式辛块,也可能是其他,根據(jù)實(shí)際情況選擇)
-
根節(jié)點(diǎn)驗(yàn)證(如果不想做校驗(yàn)铅碍,選擇any即可)
image.png
3.2添加斷言
-
響應(yīng)內(nèi)容為字符串润绵,斷言對(duì)象中選擇 Response Text
image.png -
響應(yīng)內(nèi)容為json,斷言對(duì)象選擇Response json
image.png -
斷言內(nèi)容為變量胞谈,斷言對(duì)應(yīng)選擇Response xml
image.png -
如果以上都無法滿足尘盼,使用自定義腳本添加斷言
image.png