Jmeter?使用Json提取請(qǐng)求數(shù)據(jù)的方法
使用Json提取器可以提取請(qǐng)求響應(yīng)數(shù)據(jù)
Json提取器
位置: 后置處理器-》Json提取器
使用介紹
1,變量名
變量名,其他部分引用方式: ${變量名}
若提取多個(gè)變量,多個(gè)之間使用分號(hào)";"分割
2,Json表達(dá)式
$表示響應(yīng)的根對(duì)象
.表示對(duì)象的下一級(jí)子對(duì)象或者屬性
取數(shù)組加[],數(shù)組索引從0開始,*表示數(shù)組所有值
若響應(yīng)結(jié)構(gòu)為:{“code”:200,“resultMessage”:"",“data”:2}
$.data 表示取data這個(gè)對(duì)象若響應(yīng)結(jié)構(gòu)為:[{},{},{}]
$[1或者**] 1,2,3表示取數(shù)組第幾個(gè)元素,*表示取所有若響應(yīng)結(jié)構(gòu)為:{“屬性”:[{“sx”:1},{},{}]}
$.屬性[0].sx
3,Match no
-1表示匹配所有
0表示隨機(jī)取值
1表示匹配第一個(gè),2表示匹配第二個(gè)
設(shè)置變量數(shù)量與match no個(gè)數(shù)要匹配得上,多個(gè)提取之間使用;分割
設(shè)置為-1時(shí)
會(huì)提取多個(gè)變量,單個(gè)變量的引用帶具體數(shù)值,數(shù)字表示提取到的第幾個(gè)變量。使用方式:${變量名_序列} 序列為1,2,3。。。。
設(shè)置為-1時(shí),生成其他相關(guān)變量
變量名_matchNr
意思是取到的符合條件的數(shù)字個(gè)數(shù)??梢韵袷褂闷胀ㄗ兞恳粯邮褂眠@個(gè)_matchNr變量。
變量名_ALL
若是勾選了 計(jì)算串聯(lián)變量(Compute concatenation var(suffix _ALL))則還會(huì)生成以_ALL結(jié)尾的變量,表示所有變量組合的變量,以分號(hào)分割
設(shè)置為0或1,2,3等具體數(shù)值
取的是單個(gè)值,變量的使用是${變量名},不用加序列號(hào)
4,默認(rèn)值
沒有匹配上的默認(rèn)值,取多個(gè)值時(shí),可設(shè)置多個(gè)默認(rèn)值,多個(gè)默認(rèn)值之間分號(hào)分割
提取變量的后續(xù)操作
調(diào)試器樣本查看變量取值情況
查看json提取的數(shù)據(jù)取值情況
這里debug樣本器提取了變量pi 還會(huì)生成pi_matchNr變量,表示這個(gè)變量提取了多少匹配的值。
Beanshell寫變量到文件
beanshell后置處理程序
若是請(qǐng)求之后,提取變量,寫文件使用的是beanshell后置處理程序
beanshell取樣器
非請(qǐng)求之后寫入使用的是beanshell取樣器
兩種beanshell元件,其中代碼暫時(shí)沒有發(fā)現(xiàn)不同
這是使用beanshell寫入獲取的quo_no的ALL變量quo_no_ALL ,寫入文件后取值直接也是帶分號(hào)的。
遍歷提取到的值
變量名為quo_no
match no為-1提取數(shù)組對(duì)象所有符合值
使用ForEach遍歷器遍歷獲取的所有quo_no
ForEach控制器,從0開始(不包括0),停止循環(huán)為 q u o n o m a t c h N r 輸 出 變 量 名 設(shè) 置 好 q u o o o , 該 控 制 下 調(diào) 用 變 量 名 {quo_no_matchNr} 輸出變量名設(shè)置好quooo,該控制下調(diào)用變量名 quon?om?atchNr輸出變量名設(shè)置好quooo,該控制下調(diào)用變量名{quooo}
比如,本腳本是使用beanshell采樣器去寫文件
除了寫文件還可以做其他處理,比如帶上提取到的變量繼續(xù)請(qǐng)求。
到此這篇關(guān)于Jmeter 使用Json提取請(qǐng)求數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Jmeter Json提取請(qǐng)求數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript正則表達(dá)式校驗(yàn)非零的負(fù)整數(shù)實(shí)例
本文分享了JavaScript正則表達(dá)式(^-[1-9]\d*$)校驗(yàn)非零的負(fù)整數(shù)實(shí)例代碼,代碼簡(jiǎn)單易懂,需要的朋友可以看下2016-12-12JS只能輸入數(shù)字或數(shù)字和字母等的正則表達(dá)式
只能輸入數(shù)字和字母等的正則表達(dá)式,本文整理了一些,經(jīng)測(cè)試還不錯(cuò),感興趣的朋友也可以練練手2013-10-10