1.JSON Extractor
Json extractor 后置處理器用在返回格式為 Json 的 HTTP 請(qǐng)求中,用來(lái)獲取返回的 Json 中的某個(gè)值。并保存成變量供后面的請(qǐng)求進(jìn)行調(diào)用或斷言等。
- Variable names:保存的變量名,后面使用 ${Variable names} 引用
- JSON Path expressions:上一步中調(diào)試通過(guò)的 json path 表達(dá)式
- Match Numbers:匹配數(shù)字(0代表隨機(jī),1代表第一個(gè),-1代表所有)
- Default Values:找不到時(shí)默認(rèn)值,一般設(shè)置為 NOT FOUND
- Compute concatenation var(suffix_ALL):是否統(tǒng)計(jì)所有,即將匹配到的所有值保存,名為“變量名_ALL”,使用場(chǎng)景需要獲取的值有多個(gè),后面需要對(duì)這一組數(shù)據(jù)進(jìn)行操作
Json Path expression 的使用
JsonPath |
描述 |
$ |
根節(jié)點(diǎn) |
@ |
當(dāng)前節(jié)點(diǎn) |
.or[] |
子節(jié)點(diǎn) |
.. |
選擇所有符合條件的節(jié)點(diǎn) |
* |
所有節(jié)點(diǎn) |
[] |
迭代器標(biāo)示,如數(shù)組下標(biāo) |
[,] |
支持迭代器中做多選 |
[start:end:step] |
數(shù)組切片運(yùn)算符 |
?() |
支持過(guò)濾操作 |
() |
支持表達(dá)式計(jì)算 |
示例如下:
2.正則表達(dá)式
- 引用名稱:自己定義的變量名稱,后續(xù)請(qǐng)求將要引用到的變量名,如填寫(xiě)的是:JWT,后面的引用方式是 ${JWT}
- 正則表達(dá)式:提取內(nèi)容的正則表達(dá)式,相當(dāng)于 loadrunner 中的關(guān)聯(lián)函數(shù)
- "()" 括起來(lái)的部分就是需要提取的,對(duì)于你要提的內(nèi)容需要用小括號(hào)括起來(lái)
- "." 匹配除了換行符以外的任何字符
-
"*" (貪婪) 重復(fù)零次或更多
- 例如 "aaaaaaaa" 匹配字符串中所有的a 正則: "a*" 會(huì)出到所有的字符 "a"
-
"+" (懶惰) 重復(fù)一次或更多次
- 例如 "aaaaaaaa" 匹配字符串中所有的a 正則: "a+" 會(huì)取到字符中所有的 a 字符, "a+" 與 "a*" 不同在于 "+" 至少是一次而 "*" 可以是0次
-
"?" (占有) 重復(fù)零次或一次
- 例如 "aaaaaaaa" 匹配字符串中的a 正則 : "a?" 只會(huì)匹配一次,也就是結(jié)果只是單個(gè)字符 a
-
"*?" 重復(fù)任意次,但盡可能少重復(fù)
- 例如 "acbacb" 正則 "a.*?b" 只會(huì)取到第一個(gè) "acb" 原本可以全部取到但加了限定符后,只會(huì)匹配盡可能少的字符 ,而 "acbacb" 最少字符的結(jié)果就是 "acb"
- "+?" 重復(fù)1次或更多次,但盡可能少重復(fù),與 "*?" 一樣,只是至少要重復(fù)1次
-
還有分組的情況,常用的就這兩種,其它的可以再自行百度
- "(?=exp)" 匹配exp前面的位置
- "(?<=exp)" 匹配exp后面的位置
模板:用 $$ 引用起來(lái),如果在正則表達(dá)式中有多個(gè)正則表達(dá)式(多個(gè)括號(hào)括起來(lái)的),則可以是 $1$,$2$,$3$ 等等,表示解析到的第幾個(gè)值給 var。例如:$1$ 表示匹配到的第一個(gè)值
匹配數(shù)字:0 代表隨機(jī)取值,此時(shí)提取結(jié)果是一個(gè)數(shù)組,1 表示取出匹配到的第一個(gè)值,負(fù)數(shù)表示提取所有符合條件的值。
- 缺省值:正則匹配失敗時(shí),取的值
- 想要知道正則表達(dá)式是否正確,可以在請(qǐng)求后加入調(diào)試取樣器(右鍵-添加-取樣器-調(diào)試取樣器 debug sampler)
- 沒(méi)有特殊的情況用(.*?)就可以解決所有問(wèn)題
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/ZhengYing0813/p/11845188.html