溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

jmeter正則表達(dá)式如何使用

發(fā)布時(shí)間:2021-12-10 13:23:46 來源:億速云 閱讀:359 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“jmeter正則表達(dá)式如何使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“jmeter正則表達(dá)式如何使用”吧!

運(yùn)用Jmeter正則提取器,可以從請求的響應(yīng)結(jié)果中取到需要的內(nèi)容,從而實(shí)現(xiàn)關(guān)聯(lián)。

關(guān)聯(lián)是請求與請求之間存在數(shù)據(jù)依賴關(guān)系,需要從上一個(gè)請求獲取下一個(gè)請求需要回傳回去的數(shù)據(jù)

jmeter正則表達(dá)式如何使用

在查看結(jié)果樹中找到相應(yīng)數(shù)據(jù),我們需要取得actionId,buttonName

需要選中請求右鍵,添加-后置處理器-正則表達(dá)式提取器(需要在哪個(gè)請求的響應(yīng)數(shù)據(jù)中拿到,就在哪個(gè)請求上添加。后置處理器的意思是請求會先執(zhí)行,再從響應(yīng)數(shù)據(jù)中取值)

jmeter正則表達(dá)式如何使用

jmeter正則表達(dá)式如何使用

如上圖,正則表達(dá)式的屬性就是這樣,先簡單介紹下字段什么意思,再舉例說明

名稱: 自己寫一個(gè)就好

Apple to:和要檢查的相應(yīng)字段,一般都默認(rèn),主要是針對響應(yīng)數(shù)據(jù)中的值去處理,如有其它需要,可以參考jmeter說明

  • 引用名稱:自己定義的變量名稱,后續(xù)請求將要引用到的變量名,如填寫的是:actionId,后面的引用方式是${actionId}

  • 正則表達(dá)式:提取內(nèi)容的正則表達(dá)式,相當(dāng)于lr中的關(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é)果只是單個(gè)字符a】

  • 【"*?"   重復(fù)任意次,但盡可能少重復(fù)  例如 "acbacb"  正則  "a.*?b" 只會取到第一個(gè)"acb" 原本可以全部取到但加了限定符后,只會匹配盡可能少的字符 ,而"acbacb"最少字符的結(jié)果就是"acb" 】

  • 【"+?"  重復(fù)1次或更多次,但盡可能少重復(fù),與"*?" 一樣,只是至少要重復(fù)1次】還有分組的情況,常用的就這兩種,其它的可以再自行百度

  • 【"(?=exp)"  匹配exp前面的位置】

  • 【"(?<=exp)"  匹配exp后面的位置】

  • 模板:用$$引用起來,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式(多個(gè)括號括起來的),則可以是$2$,$3$等等,表示解析到的第幾個(gè)值給actionId。例如:$1$表示匹配到的第一個(gè)值

  • 匹配數(shù)字:0代表隨機(jī)取值,-1代表所有值,此時(shí)提取結(jié)果是一個(gè)數(shù)組,其余正整數(shù)代表第幾個(gè)匹配的內(nèi)容提取出來。如果匹配數(shù)字選擇的是-1,還可以通過${actionId}的方式來取第1個(gè)匹配的內(nèi)容,${actionId}來取第2個(gè)匹配的內(nèi)容。 

  • 缺省值:正則匹配失敗時(shí),取的值

想要知道正則表達(dá)式是否正確,可以在請求后加入調(diào)試取樣器

右鍵-添加-取樣器-調(diào)試取樣器

jmeter正則表達(dá)式如何使用

響應(yīng)數(shù)據(jù):[{"actionId":"save_G_1_zdhflow.1","buttonName":"保存"},{"actionId":"G_1_zdhflow.1","buttonName":"商務(wù)技術(shù)審核"}]

沒有特殊的情況用(.*?)就可以解決所有問題,給大家舉例

我們要取得actionId的值

1、正則表達(dá)式中復(fù)制,"actionId":"save_G_1_zdhflow.1","buttonName"

2、把save_G_1_zdhflow.1替換成(.*?)就可以了

jmeter正則表達(dá)式如何使用

匹配數(shù)字寫成1,就是第一次匹配,因此得到的值 save_G_1_zdhflow.1

jmeter正則表達(dá)式如何使用

如果有修改匹配數(shù)字為2 ,就是G_1_zdhflow.1

我要匹配actionId,還要匹配buttonName怎么辦?

1、正則表達(dá)式復(fù)制 "actionId":"save_G_1_zdhflow.1","buttonName":"保存"}

2、save_G_1_zdhflow.1和保存替換成(.*?)

3、模板要改成$1$$2$,因?yàn)橛袃蓚€(gè)(.*?)而且這兩個(gè)值都要拿到

jmeter正則表達(dá)式如何使用

就可以將actionId_g1和actionId_g2將變量傳遞下去

注意嘍,如果我要把兩個(gè)都取出來怎么辦嘞,把匹配數(shù)字寫成-1 即可 

結(jié)果如下圖

jmeter正則表達(dá)式如何使用

特例:

如果有響應(yīng)數(shù)據(jù)只有數(shù)字,譬如返回的是個(gè)100, 就不能用.*?,因?yàn)??會取最小值,所以去掉就好,改?(.*)

jmeter正則表達(dá)式如何使用

感謝各位的閱讀,以上就是“jmeter正則表達(dá)式如何使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對jmeter正則表達(dá)式如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI