正則表達式提取器元件介紹
正則表達式提取器是位於后置處理器中的一個元件,它的作用是在請求發出 並得到響應后,把響應信息中的部分通過正則表達式提取所需值,並將結果存儲 到給定的變量名中。可通過后置處理器--正則表達式提取器添加。
常用的使用場景:關聯的實現
從前一個請求的響應結果中,提取到某些需要的內容,可以作為下一個接口需要的入參從而實現關聯。例如:用戶的登錄登出、獲取訂單號。
關聯即把上一個接口返回的值的部分作為下一個接口傳入的參數的過程稱為 關聯,也稱為接口之間的串行傳參或相互依賴。
正則表達式元字符詳細信息: https://www.runoob.com/regexp/regexp-metachar.html
添加路徑如下:
正則表達式提取器界面展示
名稱/注釋:自定義的描述性文字
APPly to: 作用范圍
Main sample and sub-samples: 作用於主節點的取樣器及對應子節點的取樣器
Main sample only:僅作用於主節點的取樣器
Sub-samples only: 僅作用於子節點的取樣器
JMeter Variable Name to use: 作用於jmeter變量(輸入框內可輸入jmeter的變量名稱),從指定 變量值中提取需要的值
要檢查的響應字段:
1、主體:響應報文的主體,最常用
2、Body(unescaped):主體,是替換了所有的html轉義符的響應主體內容,注 意html轉義符處理時不考慮上下文,因此可能有不正確的轉換,不太建議使用
3、Body as a Document:從不同類型的文件中提取文本,注意這個選項比較影 響性能
4、信息頭:響應頭部信息;
5、Request Headers: 請求信息頭;
6、URL:請求url;
7、響 應代碼:比如200、404等;
8、響應信息:響應正文。
引用名稱:Jmeter變量的名稱,存儲提取的結果;如果在下個請求中想引用這個 變量,語法:${引用名稱}
${引用名稱_0}: 表示取整個正則表達式的值
${引用名稱_1}: 表示取第一個的值
${引用名稱_2}: 表示取第二個的值
正則表達式:使用正則表達式解析響應結果,“()”表示提取字符串中的部分值。 常用的正則表達式為 (.+?)
():括起來的部分就是要提取的內容;
.:匹配任意字符串;
+:匹配一次或多次;
?:在找到第一個匹配項后停止匹配。
模版:用$$引用起來,如果在正則表達式字段中,文本框寫了多個正則表達式, 則可以是$2$$3$等等,表示提取到的第幾個值給引用名稱;如:$1$ 表示匹配到的第1個值賦給引用名稱。
匹配數字:正則表達式匹配數據的結果可以看做一個數組,該字段表示如何取值: 0代表隨機取值,正數n則表示取第n個值(比如1代表取第一個值),負數則表 示提取所有符合條件的值
缺省值:如果正則表達式沒有匹配到值,則使用此缺省值給引用名稱。也可以勾 選使用空默認值,使用空作為默認值
jmeter中如何關聯操作的步驟如下:
1、在上一個取樣器中增加正則表達式提取器提取需要的值;
如下圖:在第一個http請求下添加正則表達式提取器提取響應信息
2、在下一個取樣器需要值的部分用 ${變量名} 方式引用
如下圖:在第二個http請求中引用變量名
在線正則表達式測試工具講解:
該工具主要針對程序開發人員和測試人員使用,通過該工具可以快速准確的 判斷所寫的正則是否能正確匹配相應的字符。
比如我們在平時的接口測試工作中,為了驗證正則表達式編寫取到的值是否 正確,需要反復去執行請求並調試,而使用在線正則表達式測試工具你可以只執 行一次請求,然后把響應正文拷貝出來放入在線正則表達式測試工具中的待匹配 文本處,把寫好待驗證的的正則表達式去進行驗證即可,驗證通過,再把正確的 正則表達式放入jmeter該元件中
工具網址:https://tool.oschina.net/regex
調試取樣器(Debug sampler)
在進行正則表達式實戰之前,為了能查看正則表達式截取的值是否准確, 可以用調試取樣器來查看。通過取樣器--調試取樣器添加該元件即可,默認查看 變量的值,一般把調試取樣器放置在所有取樣器后面即可。
1、取響應狀態碼
2、取響應信息
3、取指定的響應頭部信息
4、截取響應正文部分
5、匹配多項隨機取值