天天看點

Jmeter學習筆記(十九)——後置處理器之正規表達式的使用

一、正規表達式提取器的作用

允許使用者從伺服器的響應中通過使用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):使用正規表達式解析響應結果,“()”表示提取字元串中的部分值,請不要使用“||”,除非你本身需要比對這個字元。

下面是常用的正規表達式操作符:

():括起來的部分就是要提取的。

.:比對任何字元串。

+:一次或多次。

?:不要太貪婪,在找到第一個比對項後停止。

Jmeter學習筆記(十九)——後置處理器之正規表達式的使用

模闆(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>” 裡面的 “百度一下,你就知道”

Jmeter學習筆記(十九)——後置處理器之正規表達式的使用

 2、設定正規表達式提取器

Jmeter學習筆記(十九)——後置處理器之正規表達式的使用

3、引用提取出來的值

Jmeter學習筆記(十九)——後置處理器之正規表達式的使用

4、檢視結果

Jmeter學習筆記(十九)——後置處理器之正規表達式的使用

參考博文:

https://www.cnblogs.com/imyalost/p/6485754.html

https://www.cnblogs.com/wuyepiaoxue/p/5661194.html