Jmeter后置處理器實現(xiàn)過程及方法應(yīng)用
1.JSON Extractor
Json extractor 后置處理器用在返回格式為 Json 的 HTTP 請求中,用來獲取返回的 Json 中的某個值。并保存成變量供后面的請求進(jìn)行調(diào)用或斷言等。
- Variable names:保存的變量名,后面使用 ${Variable names} 引用
- JSON Path expressions:上一步中調(diào)試通過的 json path 表達(dá)式
- Match Numbers:匹配數(shù)字(0代表隨機,1代表第一個,-1代表所有)
- Default Values:找不到時默認(rèn)值,一般設(shè)置為 NOT FOUND
- Compute concatenation var(suffix_ALL):是否統(tǒng)計所有,即將匹配到的所有值保存,名為“變量名_ALL”,使用場景需要獲取的值有多個,后面需要對這一組數(shù)據(jù)進(jìn)行操作
Json Path expression 的使用
JsonPath |
描述 |
$ |
根節(jié)點 |
@ |
當(dāng)前節(jié)點 |
.or[] |
子節(jié)點 |
.. |
選擇所有符合條件的節(jié)點 |
* |
所有節(jié)點 |
[] |
迭代器標(biāo)示,如數(shù)組下標(biāo) |
[,] |
支持迭代器中做多選 |
[start:end:step] |
數(shù)組切片運算符 |
?() |
支持過濾操作 |
() |
支持表達(dá)式計算 |
示例如下:
2.正則表達(dá)式
- 引用名稱:自己定義的變量名稱,后續(xù)請求將要引用到的變量名,如填寫的是:JWT,后面的引用方式是 ${JWT}
- 正則表達(dá)式:提取內(nèi)容的正則表達(dá)式,相當(dāng)于 loadrunner 中的關(guān)聯(lián)函數(shù)
- "()" 括起來的部分就是需要提取的,對于你要提的內(nèi)容需要用小括號括起來
- "." 匹配除了換行符以外的任何字符
- "*" (貪婪) 重復(fù)零次或更多
- 例如 "aaaaaaaa" 匹配字符串中所有的a 正則: "a*" 會出到所有的字符 "a"
- "+" (懶惰) 重復(fù)一次或更多次
- 例如 "aaaaaaaa" 匹配字符串中所有的a 正則: "a+" 會取到字符中所有的 a 字符, "a+" 與 "a*" 不同在于 "+" 至少是一次而 "*" 可以是0次
- "?" (占有) 重復(fù)零次或一次
- 例如 "aaaaaaaa" 匹配字符串中的a 正則 : "a?" 只會匹配一次,也就是結(jié)果只是單個字符 a
- "*?" 重復(fù)任意次,但盡可能少重復(fù)
- 例如 "acbacb" 正則 "a.*?b" 只會取到第一個 "acb" 原本可以全部取到但加了限定符后,只會匹配盡可能少的字符 ,而 "acbacb" 最少字符的結(jié)果就是 "acb"
- "+?" 重復(fù)1次或更多次,但盡可能少重復(fù),與 "*?" 一樣,只是至少要重復(fù)1次
- 還有分組的情況,常用的就這兩種,其它的可以再自行百度
- "(?=exp)" 匹配exp前面的位置
- "(?<=exp)" 匹配exp后面的位置
模板:用 $$ 引用起來,如果在正則表達(dá)式中有多個正則表達(dá)式(多個括號括起來的),則可以是 $1$,$2$,$3$ 等等,表示解析到的第幾個值給 var。例如:$1$ 表示匹配到的第一個值
匹配數(shù)字:0 代表隨機取值,此時提取結(jié)果是一個數(shù)組,1 表示取出匹配到的第一個值,負(fù)數(shù)表示提取所有符合條件的值。
- 缺省值:正則匹配失敗時,取的值
- 想要知道正則表達(dá)式是否正確,可以在請求后加入調(diào)試取樣器(右鍵-添加-取樣器-調(diào)試取樣器 debug sampler)
- 沒有特殊的情況用(.*?)就可以解決所有問題
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?Cloud實現(xiàn)灰度發(fā)布的示例代碼
這篇文章主要為大家詳細(xì)介紹了Spring?Cloud實現(xiàn)灰度發(fā)布的相關(guān)知識,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下2023-09-09一文搞懂MyBatis多數(shù)據(jù)源Starter實現(xiàn)
本文將實現(xiàn)一個MyBatis的Springboot的Starter包,引用這個Starter包后,僅需要提供少量配置信息,就能夠完成MyBatis多數(shù)據(jù)源的初始化和使用,需要的小伙伴可以參考一下2023-04-04SpringBoot上傳文件到本服務(wù)器 目錄與jar包同級問題
這篇文章主要介紹了SpringBoot上傳文件到本服務(wù)器 目錄與jar包同級問題,需要的朋友可以參考下2018-11-11Spring MVC結(jié)合Spring Data JPA實現(xiàn)按條件查詢和分頁
這篇文章主要為大家詳細(xì)介紹了Spring MVC結(jié)合Spring Data JPA實現(xiàn)按條件查詢,以及分頁效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10java學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn)
這篇文章主要為大家詳細(xì)介紹了java學(xué)生信息管理系統(tǒng)設(shè)計與實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Java實戰(zhàn)房屋租賃網(wǎng)的實現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個房屋租賃網(wǎng)站,大家可以在過程中查缺補漏,提升水平2021-11-11Spring MVC4.1服務(wù)器端推送實現(xiàn)過程解析
這篇文章主要介紹了Spring MVC4.1服務(wù)器端推送實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11Java的幾個重要版本_動力節(jié)點Java學(xué)院整理
jdk8 將在2014年3月份發(fā)布,迄今為止,可能是最大更新的java版本,也是令人期待的一個版本,在Java中引入閉包概念對Java程序開發(fā)方法的影響甚至?xí)笥贘ava5中引入的泛型特征對編程方式帶來的影響2017-06-06