Jmeter 正則表示式提取器
運用正則提取器,可以從請求的響應結果中取到需要的內容,從而實現關聯。下面簡單介紹一下Jmeter正則表示式提取器的使用方法。
1、新增Jmeter正則表示式提取器
在具體的Request下新增Jmeter正則表示式提取器(Jmeter正則表示式在“後置處理器”下面)
2、Jmeter正則表示式提取器控制面板,截圖如下:
位置1:名稱及註釋
位置2:正則表示式提取內容的範圍。(關於各欄位的詳細說明請查閱協議的相關說明)
位置3:正則表示式提取的相關設定
Ø 引用名稱:其他地方引用提取值的變數名稱,如填寫的是:str,在其它地方引用的話,具體的引用方式是${str}
Ø 正則表示式:提取內容的正則表示式【稍注意一下:()
Ø 模板:用$$引用起來,如果在正則表示式中有多個正則表示式(多個括號括起來的東東),則可以是$2$,$3$等等,表示解析到的第幾個值給str
Ø 匹配數字(0代表隨機):0代表隨機,-1代表所有,其餘正整數代表將在所檢查的內容中,將第幾個匹配的內容提取出來。
Ø 預設值:正則匹配失敗時,取的值
下面舉一個使用正則表示式提取內容的例子:
先向百度傳送一個查詢請求,查詢的關鍵字:Jmeter,然後取返回頁的title內容,作為下一個向百度發請求的關鍵字。(這例子沒啥實際作用,只是為了練習Jmeter正則表示式提取器使用)
step_1:新增第一個http
伺服器名稱或IP:www.baidu.com
方法:GET
路徑:/s
同請求一起傳送的引數:
名稱值
wd Jmeter
step_2:在第1個請求下面新增一個正則表示式提取器控制元件,引數設定同前面截圖,這裡簡單說明一下:
引用名稱:str
正則表示式:<title>(.*?)</title>
模板:$1$
匹配數字(0代表隨機):1
預設值:test
step_3:新增第2個http請求【名字叫:第2
伺服器名稱或IP:www.baidu.com
方法:GET
路徑:/s
同請求一起傳送的引數:
名稱值
wd ${str}
step_4:新增一個檢視結果樹,檢視具體的請求情況
step_5:執行執行緒組,檢視結果
【說明】
1、在使用正則表示式提取器的過程中,如果匹配數字選擇的是-1,還可以通過${str_1}的方式來取第1個匹配的內容,${str_2}來取第2個匹配的內容。匹配數字和${str_n}可以好像可以相互替代,但究竟是不是這樣的,還沒弄太明白。
2、關於正則*和*?是不一樣的,在上述的例子中使用正則<title>(.*?)</title>或者正則<title>(.*)</title>都是可行的。這個是正則中的貪婪與非貪婪模式,以後在正則相關日誌中作說明。