JMeter之正規表示式提取器

2021-07-16 18:27:42 字數 1559 閱讀 3412

以網頁交易平台為例子,說明正規表示式提取器如何工作。

業務邏輯是這樣子的:

login頁面輸入賬號、密碼登陸,伺服器返回乙個token。

3秒內使用賬號和token想伺服器發請求,伺服器開始通過websocket不斷推送**資訊。

通過網頁下單,實際就是想伺服器發乙個請求,包含訂單資訊和賬戶資訊,也是需要帶上token標識身份。

最後退出登入。

匯入badboy錄製的指令碼(刪減一些與業務邏輯關係不密切的請求)。

login的請求:

路徑:/rest/%7b%22mt%22:%22login%22,%22userinfo%22:%7b%22login%22:7,%22password%22:%22test1%22%7d%7d

請求的內容就是通過編碼後的路徑傳送到伺服器的,通過網上的url解碼工具可以得到傳送的內容就是:

/rest/}

這個請求傳送過去之後,伺服器會返回以下登陸資訊,通過新增「***-檢視結果樹」可以在執行指令碼之後檢視相應資料。

login請求的相應資料:

,"congroup":,"concommon":,"mt":"login","margininfo":}

這個就是伺服器返回的token"05a9c08d77864b779435fea53780df7c",這次的工作就是要提取它,並存入變數供其他請求使用。

對login右鍵,新增-後置處理器-正規表示式提取器

名稱:要取有意義的名字,方便記憶

引用名稱:這裡的名稱要作為變數的名稱,在別的地方被引用

正規表示式:正規表示式中()括起來的部分就是要提取的。.代表任意字元,+代表出現任意次,後面加?。

模板:$1$代表只有一組資料

匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0,如果在lr中,取出的值是乙個陣列,還得處理一下,lr11版本用乙個隨機的函式就可以不用寫大段的**來處理陣列

預設值:如果引數沒有取得到值,那預設給乙個值讓它取

上面的步驟已經獲取到token的值,接下來就是把所有出現token的地方用變數替換。$可以引用變數的值,如$。

錄製獲取的loggout的路徑是:

/rest/%7b%22mt%22:%22logout%22,%22desc%22:%22logout%22,%22tok%22:%2218502d780d624cfab77b402d6596fc21%22%7d,

/rest/%7b%22mt%22:%22logout%22,%22desc%22:%22logout%22,%22tok%22:%22$%22%7d

替換後執行指令碼,檢視結果樹的相應資料,可以看到原來固定不變的tok的值在每次執行後都會變化,並且等於login的相應資料中的tokde值,這樣就代表正確。

JMeter之正規表示式提取器

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

Jmeter之正規表示式提取器

作用 可以從請求的響應結果中取到需要的內容,從而實現關聯。jmeter正規表示式提取器控制面板,截圖如下 位置1 名稱及注釋 引用名稱 其他地方引用提取值的變數名稱,如填寫的是 str,具體的引用方式是 正規表示式 提取內容的正規表示式 稍注意一下 表示提取,對於你要提前的內容需要用小括號括起來 模...

jmeter之正規表示式提取器

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