一、正規表達式提取器的作用
允許使用者從伺服器的響應中通過使用perl的正規表達式提取值。作為一個後置處理器,該元素會作用在指定範圍的取樣器,應用正規表達式,提取所需要的值,生成模闆字元串,并将結果存儲到給定的變量名中。
如果有這樣的情況:一個完整的操作流程,需要先完成某個操作,獲得某個值或資料資訊,然後才能進行下一步的操作(也就是常說的關聯/将上一個請求的響應結果作為下一個請求的參數)。這個時候就可以使用上正規表達式提取器了
二、正規表達式提取器頁面說明
說明:
後置處理器:在請求結束或者傳回響應結果時發揮作用
APPly to:作用範圍(傳回内容的斷言範圍)
Main sample and sub-samples:作用于父節點的取樣器及對應子節點的取樣器
Main sample only:僅作用于父節點的取樣器
Sub-samples only:僅作用于子節點的取樣器
JMeter Variable:作用于jmeter變量(輸入框内可輸入jmeter的變量名稱)
要檢查的響應字段:需要檢查的響應封包的範圍
主體:響應封包的主體,一個網頁頁面的内容,除了資訊頭以外的内容
Body(unescaped):主體,響應的主體内容且替換了所有的html轉義符,注意html轉義符處理時不考慮上下文,是以可能有不正确的轉換,不太建議使用
Body as a Document:從不同類型的檔案中提取文本,注意這個選項比較影響性能
Response Headers:響應資訊頭
Request Headers:請求資訊頭
URL:統一資源定位符,即Internet上用來描述資訊資源的字元串
Response Code:響應狀态碼,比如200、404等
Response Message:響應資訊
引用名稱(Reference Name):Jmeter變量的名稱,存儲提取的結果;即下個請求需要引用的值、字段、變量名(例子中我提取的是SOCIAL_NO)
引用方法:引用方法:${引用名稱}
正規表達式(Regular Expression):使用正規表達式解析響應結果,“()”表示提取字元串中的部分值,請不要使用“||”,除非你本身需要比對這個字元。
下面是常用的正規表達式操作符:
():括起來的部分就是要提取的。
.:比對任何字元串。
+:一次或多次。
?:不要太貪婪,在找到第一個比對項後停止。

模闆(Template):模闆,用來從比對的結果中建立一個字元串,這是通過正規表達式比對出來的一組值,文法為:$1$指代第一組,$2$指代第二組,$0$指代整個比對結果
比對數字(Match No):比對數字,指明哪一個比對結果值将被使用,正規表達式一般會有多個比對結果。使用:0,表示Jmeter任選一個比對值,使用:正整數N,表示Jmeter選擇第N個值進行比對,使用負數表示選取所有的值,一般與ForEach控制器配合使用
預設值:如果正規表達式沒有比對到資料,引用變量将會傳回一個預設值,在調試中此功能很有用,如果沒有設定預設值,那麼很難分辨出正規表達式是否有比對到資料或使用是否正确,當然你也可以根據你的測試需求,在調試完成後去掉預設值的設定
提取到的參數,調用時用${SOCIAL_NO_1},${SOCIAL_NO_2}...,如果想要得到比對出的參數的個數,用${SOCIAL_NO_matchNr},如果想随機選取一個,隻需要将
比對數字設為0,使用${SOCIAL_NO}調用即可。
三、使用執行個體
1、比如需要提取如下響應文本中的 “<title>百度一下,你就知道</title>” 裡面的 “百度一下,你就知道”
2、設定正規表達式提取器
3、引用提取出來的值
4、檢視結果
參考博文:
https://www.cnblogs.com/imyalost/p/6485754.html
https://www.cnblogs.com/wuyepiaoxue/p/5661194.html