Jmeter之正規表示式提取器

2021-07-13 01:25:36 字數 1459 閱讀 5177

作用:可以從請求的響應結果中取到需要的內容,從而實現關聯。

jmeter正規表示式提取器控制面板,截圖如下:

位置1:名稱及注釋

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

正規表示式:提取內容的正規表示式【稍注意一下:()表示提取,對於你要提前的內容需要用小括號括起來】

模板:用$$引用起來,如果在正規表示式中有多個正規表示式(多個括號括起來的東東),則可以是$1$, $2$,$3$等等,

表示解析到的第幾個值給str

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

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

詳解jmeter 正規表示式

術語理解:

包含(contains)意味著正規表示式至少部分匹配目標。例如:」alphabet」包含」ph.b」;

匹配(matches)意味著正規表示式完全匹配目標,例如:」alphabet」匹配「al.*t「;

在這一情況下,它等同於使用^和$封裝正規表示式,即「^al.t$」。但是事情並不總是這樣

eg:正規表示式」alp.lp.*」包含於」alphabet」,但並不匹配」alphabet」;

原因在於當範本匹配器在」alphabet」中找到序列」alp」後,就會停止嘗試其他組合,

而且」alp」不同於」alphabet」,它不包含」habet「

例項1).提取單個字串

期望匹配web頁面的如下部分:

name=」file」 value=」readme.txt」> 並提取readme.txt

符合要求的正規表示式:name=「file」value=」(.+?)」 >

上面用到的特殊字元包括如下幾個:

( ):封裝了待返回的匹配字串;

.:匹配任何字元

+:一次或多次

?:在找到第乙個匹配項後停止

若沒有?在找到第乙個》後,會繼續尋找,直到最後乙個」>」;

優化,提高效率:name=」file」 value=」([^」]+)」>,其中[^」]意味著匹配任何東西,除了」,

此種情況下,匹配引擎在找到第乙個右側」後,就會停止搜尋

而上面例子中的匹配引擎會去尋找」>

2). 提取多個字串

期望匹配web頁面的如下部分:

name=」file」 value=」readme.txt」> 並提取file.name和readme.txt

符合要求的正規表示式:name=」([^」]+)」 value=」([^」]+)」

這會建立兩個組合,並可用於jmeter正規表示式模版,形如$1$$2s

3).關鍵字

() : 組合

[ ] :字元集合

{}  :重複

+? :重複

*:任意匹配字元

\ :轉義字元

|-:選擇符

^$:字串或行的起始和結尾

JMeter之正規表示式提取器

以網頁交易平台為例子,說明正規表示式提取器如何工作。業務邏輯是這樣子的 login頁面輸入賬號 密碼登陸,伺服器返回乙個token。3秒內使用賬號和token想伺服器發請求,伺服器開始通過websocket不斷推送 資訊。通過網頁下單,實際就是想伺服器發乙個請求,包含訂單資訊和賬戶資訊,也是需要帶上...

JMeter之正規表示式提取器

以網頁交易平台為例子,說明正規表示式提取器如何工作。業務邏輯是這樣子的 login頁面輸入賬號 密碼登陸,伺服器返回乙個token。3秒內使用賬號和token想伺服器發請求,伺服器開始通過websocket不斷推送 資訊。通過網頁下單,實際就是想伺服器發乙個請求,包含訂單資訊和賬戶資訊,也是需要帶上...

jmeter之正規表示式提取器

簡單用法 首先看資料,下個介面需要提取這裡的probjectid,作為引數去請求 做法是在這個請求下面新增正規表示式提取器,引用變數名 用法和json提取器一樣,引用變數這裡命名probjectid,使用 正規表示式 會自動匹配對應的值,由於要取的是probjectid對應的值,在正規表示式裡輸入 ...