最近決定用Apifox寫(xiě)接口自動(dòng)化測(cè)試用例,于是研究了這個(gè)工具的具體實(shí)踐,下面把最近實(shí)踐過(guò)程中遇到的問(wèn)題和解決方案進(jìn)行總結(jié),方便回看。
Apifox它是集:接口文檔管理、接口調(diào)試、Mock、接口自動(dòng)化測(cè)試于一體的全流程集成工具,覆蓋從開(kāi)發(fā)->測(cè)試->管理等環(huán)節(jié),等同于 Postman + Swagger + Mock + JMeter幾款工具功能累加。
下面從以下幾個(gè)方面來(lái)進(jìn)行總結(jié):
1json path語(yǔ)法及使用
2.參數(shù)化使用
3.結(jié)果驗(yàn)證
1.1Json path介紹
- JSONPath 之于 JSON,就如 XPath 之于 XML。
- JsonPath 是設(shè)計(jì)來(lái)作為 JSON 的路徑語(yǔ)言,用于確定 JSON 文檔中某部分位置的語(yǔ)言。
- JSONPath 可以方便對(duì) JSON 數(shù)據(jù)結(jié)構(gòu)進(jìn)行內(nèi)容提取。
- JsonPath 將 JSON 數(shù)據(jù)轉(zhuǎn)換為 DOM 樹(shù)狀結(jié)構(gòu),并提供在數(shù)據(jù)結(jié)構(gòu)樹(shù)種尋找節(jié)點(diǎn)的能力。
1.2.Json path語(yǔ)法
JsonPath語(yǔ)法要點(diǎn):
$ 表示文檔的根元素
@ 表示文檔的當(dāng)前元素
.node_name 或 ['node_name'] 匹配下級(jí)節(jié)點(diǎn)
[index] 檢索數(shù)組中的元素
[start:end:step] 支持?jǐn)?shù)組切片語(yǔ)法
** 作為通配符,匹配所有成員**
.. 子遞歸通配符,匹配成員的所有子元素
(<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è){}的形式來(lái)傳參,如{{flightId}}
2.如果提取變量是列表形式,可以取其中某一個(gè),如{{flightId[0]}}
3.可以選擇右側(cè)的“魔法棒”動(dòng)態(tài)值來(lá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 -
如果以上都無(wú)法滿足,使用自定義腳本添加斷言
image.png




