在使用Jmeter過程中,會經常使用到正則表達式提取器提取器,雖然並不直接涉及到請求的測試,但是對於數據的傳遞起着很大的作用,本篇博文就是主要講解關於正則表達式及其在Jmeter的Sampler中的調用。
文中使用的正則表達式測試器(RegexTester)下載地址:http://soft.hao123.com/soft/appid/54251.html
一、首先來介紹一下J meter中正則表達式提取器的元素組成,下圖所示:

下面是各參數值的含義:
| 參數 | 釋義 |
|---|---|
| 引用名稱 | 在HTTP等請求中,引用此數據,需要用到的名稱 |
| 正則表達式 | 用於將需要的數據提取出來 |
| 模板 | 表示使用提取到的第幾個值:$-1$:表示取所有值$0$:表示隨機取值$1$:表示取第1個$2$:表示取第二個以此類推:$n$:表示取第n個 |
| 匹配數字(0代表隨機) | 0 代表隨機取值,1 代表全部取值 |
| 缺省值 | 如果正則表達式沒有搜找到值,則使用此缺省值 |
二、下面是第一個比較簡單的例子,就是正則表達式的匹配值只有一個取值,正則表達式測試如圖:

這種最簡單的情況在Jmeter正則表達式提取器和HTTP請求中的設置如下:

三、下面的例子是正則表達式的匹配值有兩個取值,正則表達式測試如圖:

這種情況在Jmeter正則表達式提取器和HTTP請求中的設置如下:

四、一種不是很常見的情況是有若干個匹配數據,使用正則表達式測試器測試的結果如下:

若希望取到17這個值,則對應的是第二列第二行($2$, ${javawd_g2}),如果是第三列第四行的數據,則對應的是($3$,${javawd_g4})
這種情況在Jmeter正則表達式提取器和HTTP請求中的設置如下:

