1. 程式人生 > >Jmeter 正則表示式提取器

Jmeter 正則表示式提取器

運用正則提取器,可以從請求的響應結果中取到需要的內容,從而實現關聯。下面簡單介紹一下Jmeter正則表示式提取器的使用方法。

1、新增Jmeter正則表示式提取器

在具體的Request下新增Jmeter正則表示式提取器(Jmeter正則表示式在“後置處理器”下面)

2Jmeter正則表示式提取器控制面板,截圖如下:

位置1:名稱及註釋

位置2:正則表示式提取內容的範圍。(關於各欄位的詳細說明請查閱協議的相關說明)

位置3:正則表示式提取的相關設定

Ø 引用名稱:其他地方引用提取值的變數名稱,如填寫的是:str,在其它地方引用的話,具體的引用方式是${str}

Ø 正則表示式:提取內容的正則表示式【稍注意一下:()

表示提取,對於你要提取的內容需要用小括號括起來】

Ø 模板:用$$引用起來,如果在正則表示式中有多個正則表示式(多個括號括起來的東東),則可以是$2$,$3$等等,表示解析到的第幾個值給str

Ø 匹配數字(0代表隨機)0代表隨機,-1代表所有,其餘正整數代表將在所檢查的內容中,將第幾個匹配的內容提取出來。

Ø 預設值:正則匹配失敗時,取的值

下面舉一個使用正則表示式提取內容的例子:

先向百度傳送一個查詢請求,查詢的關鍵字:Jmeter,然後取返回頁的title內容,作為下一個向百度發請求的關鍵字。(這例子沒啥實際作用,只是為了練習Jmeter正則表示式提取器使用)

step_1:新增第一個http

請求【請求的名字就叫:第1個請求】,即普通的http請求,訪問百度,主要引數設定如下:

伺服器名稱或IP:www.baidu.com

方法:GET

路徑:/s

同請求一起傳送的引數:

名稱值

              wd                                 Jmeter

step_2:在第1個請求下面新增一個正則表示式提取器控制元件,引數設定同前面截圖,這裡簡單說明一下:

引用名稱:str

正則表示式:<title>(.*?)</title>

模板:$1$

匹配數字(0代表隨機)1

預設值:test

step_3:新增第2http請求【名字叫:第2

個請求】,主要引數設定如下(留意引數wd的值)

伺服器名稱或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>都是可行的。這個是正則中的貪婪與非貪婪模式,以後在正則相關日誌中作說明。