Jmeter—正則表達(dá)式提取器

重定向時(shí)會(huì)產(chǎn)生主請(qǐng)求和子請(qǐng)求贸宏,主請(qǐng)求和最后一個(gè)子請(qǐng)求的值是一樣的拳昌。

Jmeter Variable Name to use,有時(shí)候有些變量需要使用多次正則提取才能獲取对省,下面舉例說明:

新創(chuàng)建一個(gè)test plan,添加一個(gè)線程組晾捏,在線程組下面添加一個(gè)Java request:

java request

將下面的Json數(shù)據(jù)添加到j(luò)ava request的ResultData中:

{"name":"yangyang",

"data":

{"student":[ {

? ? "name":"明",

? ? "sex":"男",

? ? "email":"zhangguoli@123.com",

? ? "url":"./img/1.jpg"

? },

? {

? ? "name":"鐵林",

? ? "sex":"男",

? ? "email":"zhangtieli@123.com",

? ? "url":"./img/2.jpg"

? }],

"teacher":[{

? ? "name":"鄧",

? ? "sex":"女",

? ? "email":"zhenjie@123.com",

? ? "url":"./img/3.jpg"

? },

? {

? ? "name":"默",

? ? "sex":"男",

? ? "email":"zhangguoli@123.com",

? ? "url":"./img/4.jpg"

? }]

}}

request data

在線程組下面添加Debug Sampler和View Results Tree:

bedug sampler

運(yùn)行request蒿涎,可以在View Result Tree中看到返回的json字符串:

在Java request下面添加2個(gè)正則表達(dá)式提取器,來提取student的名字列表:

regular Expression Extractor

第一個(gè)regular expression extractor用于提取student的所有信息的字符串:

獲取student所有信息的字符串

可以在View Results Tree中調(diào)試正則表達(dá)式惦辛,看是否能匹配到想要的字符串:

第二個(gè)regular expression extractor用于提取student名字劳秋,這里要用到第一個(gè)正則提取器的結(jié)果變量student_info_list:

再次運(yùn)行request,在debug sampler中能看到提取的學(xué)生名字:

正則提取器的結(jié)果是這3個(gè)參數(shù)共同決定的:正則去找胖齐,模版去拼接玻淑,匹配數(shù)字去指定要哪些數(shù)據(jù)。

當(dāng)需要從返回值中一次提取多個(gè)參數(shù)時(shí)呀伙,可以參看下列例子:

添加線程組补履,2個(gè)java request,第一個(gè)request下添加regular expression extractor剿另,Debug sampler箫锤, View Results tree贬蛙。

第一個(gè)Java request中添加ResultData:a1b甲c a2b乙c a3b丙c a4b丁c。regular expression extractor中的正則表達(dá)式為a(.*?)b(.*?)c谚攒,template為$1$阳准,Match NO為默認(rèn)值0,會(huì)隨機(jī)從匹配結(jié)果中挑選一個(gè)值賦值給變量:

運(yùn)行request五鲫,可以在debug sampler中看到匹配的結(jié)果溺职,

param=3? ? ?//匹配結(jié)果 $1$

param_g=2? ? //匹配參數(shù)的個(gè)數(shù)

param_g0=a3b丙c? ? ? ? //符合正則的字符串

param_g1=3? ? ? ? ?//第一個(gè)匹配結(jié)果$1$,也就是第一個(gè)小號(hào)中的值

param_g2=丙? ? ? ? //第二個(gè)匹配結(jié)果$2$位喂,也就是第二個(gè)小號(hào)中的值

修改第二個(gè)java request的Name為:

Java Request {"name":"${param_g2}", "value":"${param_g1}"}

多次運(yùn)行request浪耘,可在View Results Tree中看到第二個(gè)java request

的name是用前一個(gè)java request中提取的變量隨機(jī)組成的:

也可在正則提取器中先使用{"name":"$1$", "value":"$2$}"}拼接好后面需要的參數(shù),第二個(gè)request直接寫成Java Request ${param}使用這個(gè)參數(shù)即可塑崖。



當(dāng)匹配次數(shù)填寫-1時(shí)七冲,會(huì)返回一個(gè)list,可以添加foreach來遍歷返回結(jié)果中的所有值:

如果查看debug sampler规婆,可以看到返回的數(shù)組:

還可以使用計(jì)數(shù)器來獲取變量澜躺,在foreach下面添加計(jì)數(shù)器元件:

這樣我們想獲取的變量就可以寫成{"name":"${param_${index}_g1}", "value":"${param_${index}_g2}"},但是${param_${index}_g1}是變量名中含有變量名抒蚜,需要用到函數(shù)生成器V:

將函數(shù)表達(dá)式替換到第二個(gè)request的Nmae字段:

Java Request {"name":"${__V(param_${index}_g2,)}", "value":"${__V(param_${index}_g1,)"}

也可以得到相同的效果掘鄙!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嗡髓,隨后出現(xiàn)的幾起案子操漠,更是在濱河造成了極大的恐慌,老刑警劉巖饿这,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浊伙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡长捧,警方通過查閱死者的電腦和手機(jī)嚣鄙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來串结,“玉大人哑子,你說我怎么就攤上這事〖「睿” “怎么了卧蜓?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長声功。 經(jīng)常有香客問我,道長宠叼,這世上最難降的妖魔是什么先巴? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任其爵,我火速辦了婚禮,結(jié)果婚禮上伸蚯,老公的妹妹穿的比我還像新娘摩渺。我一直安慰自己,他們只是感情好剂邮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布摇幻。 她就那樣靜靜地躺著,像睡著了一般挥萌。 火紅的嫁衣襯著肌膚如雪绰姻。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天引瀑,我揣著相機(jī)與錄音狂芋,去河邊找鬼。 笑死憨栽,一個(gè)胖子當(dāng)著我的面吹牛帜矾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屑柔,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼屡萤,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了掸宛?” 一聲冷哼從身側(cè)響起死陆,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旁涤,沒想到半個(gè)月后翔曲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡劈愚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年瞳遍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菌羽。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掠械,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出注祖,到底是詐尸還是另有隱情猾蒂,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布是晨,位于F島的核電站肚菠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏罩缴。R本人自食惡果不足惜蚊逢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一层扶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烙荷,春花似錦镜会、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至昼伴,卻和暖如春匾旭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背亩码。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工季率, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人描沟。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓飒泻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吏廉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泞遗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容