柚子快報(bào)激活碼778899分享:JMeter-正則表達(dá)式
柚子快報(bào)激活碼778899分享:JMeter-正則表達(dá)式
? ? ? ? ?一、語法
二、正則表達(dá)式提取器
2.1添加正則表達(dá)式提取器
2.2設(shè)置正則表達(dá)式提取器
2.3驗(yàn)證正則表達(dá)式提取的值
2.4引用正則表達(dá)式提取的值
2.5一個(gè)正則表達(dá)式有多個(gè)(),提取多個(gè)結(jié)果
2.6?一個(gè)()中的正則表達(dá)式匹配到多個(gè)值,提取數(shù)組
一、語法
正則表達(dá)式(Regular Expression,在代碼中常簡寫為regex、regexp或RE)是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯。
表達(dá)式規(guī)則:元字符+限定符
二、正則表達(dá)式提取器
正則表達(dá)式提取器是 JMeter 的內(nèi)置功能,用于從響應(yīng)數(shù)據(jù)中提取特定模式的文本。 適用于響應(yīng)數(shù)據(jù)的內(nèi)容沒有明確定義結(jié)構(gòu)的情況。當(dāng)響應(yīng)數(shù)據(jù)是自由格式的文本、HTML、XML 或其他非結(jié)構(gòu)化數(shù)據(jù)時(shí),可以使用正則表達(dá)式提取器來捕獲信息,編寫適當(dāng)?shù)恼齽t表達(dá)式來匹配并提取所需的內(nèi)容。
JMeter正則表達(dá)式提取器常用于接口關(guān)聯(lián)。在一個(gè)線程組中,如果需要將上一個(gè)請求響應(yīng)的結(jié)果作為下一個(gè)請求的參數(shù),則需要對上一個(gè)請求的響應(yīng)結(jié)果使用后置處理器,此時(shí)就要用到正則表達(dá)式提取器。
2.1添加正則表達(dá)式提取器
添加線程組-添加HTTP請求-添加-后置處理器-正則表達(dá)式提取器
?
2.2設(shè)置正則表達(dá)式提取器
?
(1)引用名稱:要引用的參數(shù)名稱,如msg,則可用${msg}引用
(2)正則表達(dá)式: ()括起來的部分就是要提取的,在()里寫匹配規(guī)則? 表達(dá)式.*?表示匹配任意長度的任意字符 表達(dá)式.*?和.+?是最常用的規(guī)則表達(dá)式
注意: 表達(dá)式 ?.* ?就是單個(gè)字符匹配任意次,即貪婪匹配。 表達(dá)式 ?.*? ?是滿足條件的情況只匹配一次,即最小匹配。 如匹配輸入串101000000000100: 使用 1.*1 將會(huì)匹配到1010000000001, 匹配方法: 先匹配至輸入串的最后, 然后向前匹配, 直到可以匹配到1。 使用 1.*?1 將會(huì)匹配到101, 匹配方法: 匹配下一個(gè)1之前的所有字符。
(3)模板:左右分別用$引用起來,$1$表示解析到的第1個(gè)值,如果有多個(gè)值,就添加多個(gè),例如有3個(gè)值時(shí),可以寫為$1$?$2$?$3$,中間的空格起分隔的作用,可以不寫,也可以用其他分隔符,如:$1$;$2$;$3$
(4)匹配數(shù)字:0代表隨機(jī)取值,1代表取第一個(gè)值,-1代表取全部值,通常情況下填0
2.3驗(yàn)證正則表達(dá)式提取的值
方法一:在查看結(jié)果樹中,選擇RegExp Tester查看
?
方法二:添加調(diào)試取樣器后,在查看結(jié)果樹中,查看調(diào)試取樣器(Debug Sampler)
線程組-右鍵-添加-取樣器-調(diào)試取樣器
?
在查看結(jié)果樹中,查看調(diào)試取樣器
?
2.4引用正則表達(dá)式提取的值
添加新的HTTP請求,引用正則表達(dá)式提取的值。
格式:${引用名稱}
?
2.5一個(gè)正則表達(dá)式有多個(gè)(),提取多個(gè)結(jié)果
?
?
msg_g1 = 模板$1$的參數(shù) ?即第一個(gè)()中的內(nèi)容 msg_g2 = 模板$2$的參數(shù) ?即第二個(gè)()中的內(nèi)容
在后一個(gè)請求中引用時(shí),可以通過msg_g1和msg_g2,獲取到對應(yīng)的值
2.6?一個(gè)()中的正則表達(dá)式匹配到多個(gè)值,提取數(shù)組
若一個(gè)()中的正則表達(dá)式匹配到多個(gè)值,正則表達(dá)式提取器中,匹配數(shù)字需要填寫-1,才能提取到多個(gè)值。
提取到的多個(gè)值后,需要結(jié)合 ForEach控制器,迭代提取到值,然后將提取到的值賦予到 HTTP 請求中使用。
a.線程組-右鍵-添加-邏輯控制器-ForEach控制器,然后將ForEach控制器移動(dòng)到前一個(gè)HTTP請求下方。
b.設(shè)置ForEach控制器
輸入變量前綴:即正則表達(dá)式提取器中的應(yīng)用名稱
開始循環(huán)字段(不包含):因?yàn)槭遣话霃?開始,需填寫0
結(jié)束循環(huán)字段(含):填寫需要的數(shù)字
輸出變量名稱:設(shè)置后,在新的HTTP請求中被引用
c.在ForEach控制器中,添加新的HTTP請求,引用提取到的值。
?參考:jmeter接口關(guān)聯(lián):JSON提取和正則表達(dá)式提取-CSDN博客
柚子快報(bào)激活碼778899分享:JMeter-正則表達(dá)式
相關(guān)閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。