jmeter正則表達(dá)式的使用
運(yùn)用Jmeter正則提取器,可以從請(qǐng)求的響應(yīng)結(jié)果中取到需要的內(nèi)容,從而實(shí)現(xiàn)關(guān)聯(lián)。
關(guān)聯(lián)是請(qǐng)求與請(qǐng)求之間存在數(shù)據(jù)依賴(lài)關(guān)系,需要從上一個(gè)請(qǐng)求獲取下一個(gè)請(qǐng)求需要回傳回去的數(shù)據(jù)
在查看結(jié)果樹(shù)中找到相應(yīng)數(shù)據(jù),我們需要取得actionId,buttonName
需要選中請(qǐng)求右鍵,添加-后置處理器-正則表達(dá)式提取器(需要在哪個(gè)請(qǐng)求的響應(yīng)數(shù)據(jù)中拿到,就在哪個(gè)請(qǐng)求上添加。后置處理器的意思是請(qǐng)求會(huì)先執(zhí)行,再?gòu)捻憫?yīng)數(shù)據(jù)中取值)
如上圖,正則表達(dá)式的屬性就是這樣,先簡(jiǎn)單介紹下字段什么意思,再舉例說(shuō)明
名稱(chēng): 自己寫(xiě)一個(gè)就好
Apple to:和要檢查的相應(yīng)字段,一般都默認(rèn),主要是針對(duì)響應(yīng)數(shù)據(jù)中的值去處理,如有其它需要,可以參考jmeter說(shuō)明
- 引用名稱(chēng):自己定義的變量名稱(chēng),后續(xù)請(qǐng)求將要引用到的變量名,如填寫(xiě)的是:actionId,后面的引用方式是${actionId}
- 正則表達(dá)式:提取內(nèi)容的正則表達(dá)式,相當(dāng)于lr中的關(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)的),則可以是$2$,$3$等等,表示解析到的第幾個(gè)值給actionId。例如:$1$表示匹配到的第一個(gè)值
- 匹配數(shù)字:0代表隨機(jī)取值,-1代表所有值,此時(shí)提取結(jié)果是一個(gè)數(shù)組,其余正整數(shù)代表第幾個(gè)匹配的內(nèi)容提取出來(lái)。如果匹配數(shù)字選擇的是-1,還可以通過(guò)${actionId}的方式來(lái)取第1個(gè)匹配的內(nèi)容,${actionId}來(lái)取第2個(gè)匹配的內(nèi)容。?
- 缺省值:正則匹配失敗時(shí),取的值
想要知道正則表達(dá)式是否正確,可以在請(qǐng)求后加入調(diào)試取樣器
右鍵-添加-取樣器-調(diào)試取樣器
響應(yīng)數(shù)據(jù):[{"actionId":"save_G_1_zdhflow.1","buttonName":"保存"},{"actionId":"G_1_zdhflow.1","buttonName":"商務(wù)技術(shù)審核"}]
沒(méi)有特殊的情況用(.*?)就可以解決所有問(wèn)題,給大家舉例
我們要取得actionId的值
1、正則表達(dá)式中復(fù)制,"actionId":"save_G_1_zdhflow.1","buttonName"
2、把save_G_1_zdhflow.1替換成(.*?)就可以了
匹配數(shù)字寫(xiě)成1,就是第一次匹配,因此得到的值?save_G_1_zdhflow.1
如果有修改匹配數(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è)值都要拿到
就可以將actionId_g1和actionId_g2將變量傳遞下去
注意嘍,如果我要把兩個(gè)都取出來(lái)怎么辦嘞,把匹配數(shù)字寫(xiě)成-1 即可?
結(jié)果如下圖
特例:
如果有響應(yīng)數(shù)據(jù)只有數(shù)字,譬如返回的是個(gè)100, 就不能用.*?,因?yàn)???huì)取最小值,所以去掉就好,改為 (.*)
到此這篇關(guān)于jmeter正則表達(dá)式的使用的文章就介紹到這了,更多相關(guān)jmeter正則表達(dá)式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中的synchronized?優(yōu)化方法之鎖膨脹機(jī)制
這篇文章主要介紹了Java中的synchronized?優(yōu)化方法之鎖膨脹機(jī)制,鎖膨脹機(jī)制是提升?synchronized?性能最有利的方法之一,下面我們就來(lái)看看什么事鎖膨脹及鎖膨脹的各種細(xì)節(jié)2022-05-05在Java開(kāi)發(fā)中無(wú)法繞開(kāi)的SpringBoot框架詳解
SpringBoot是一個(gè)基于Spring框架的快速開(kāi)發(fā)框架,它的出現(xiàn)極大地簡(jiǎn)化了Spring應(yīng)用的開(kāi)發(fā)流程,SpringBoot是一個(gè)快速開(kāi)發(fā)的框架,它提供了一種快速構(gòu)建應(yīng)用程序的方式,本文給大家介紹在Java開(kāi)發(fā)中無(wú)法繞開(kāi)的框架:SpringBoot,感興趣的朋友一起看看吧2023-09-09詳談Java中Object類(lèi)中的方法以及finalize函數(shù)作用
下面小編就為大家?guī)?lái)一篇詳談Java中Object類(lèi)中的方法以及finalize函數(shù)作用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04springboot?Minio功能實(shí)現(xiàn)代碼
這篇文章主要介紹了springboot?Minio功能實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07SpringBoot整合Redis的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot整合Redis的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01m1 Mac設(shè)置多jdk版本并動(dòng)態(tài)切換的實(shí)現(xiàn)
本文主要介紹 Mac 下如何安裝 JDK 并且多版本如何切換,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08SpringBoot集成百度AI實(shí)現(xiàn)人臉識(shí)別的項(xiàng)目實(shí)踐
本文主要介紹了SpringBoot集成百度AI實(shí)現(xiàn)人臉識(shí)別的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05