6 1 Jmeter 正規表示式 案例詳解 一

2022-10-10 19:15:12 字數 2059 閱讀 4784

jmeter自帶後置處理器:正規表示式,可用於提取介面響應資料資訊,當作後續介面引數用。

例如:提取響應結果中的seedtxnid欄位,響應內容如下圖:

"seedtxnid":"143cbac705f74a8cb9bee6aee69c56cc","totalexperience":40,提取器如下設定:

正規表示式提取器說明:

要檢查的響應字段:樣本資料來源。

主體: 介面響應主體內容,一般要提取普通http響應結果的資料,都勾選這個。

資訊頭:響應頭的所有內容。

request headers:請求頭的所有內容。

url:是對sample的url進行匹配,也就是檢視結果樹里請求內容的第一行url,不包含data裡的請求引數(即只能匹配protocol(協議)+host+path+querystring,如:

響應**:http響應**,如101,200,302,404,501等。

響應資訊:http響應**對應的響應資訊,例如:ok, found(http/1.1 200 ok;http/1.1 302 found)。

引用名稱:其他地方引用時的變數名稱,名稱只能是乙個,引用方法:$。如圖:

正規表示式:資料提取器,一般簡單的通用語法就是:左邊界(.*?)右邊界,左右邊界就是為了能準確定位到想匹配的內容,如最上面圖的"seedtxnid":"(.*?)","totalexperience", 其中"seedtxnid":"以及","username"這2個就是左右邊界,(.*?) 是替換了想要提取的內容,裡面的'?'為非貪婪匹配,(非貪婪模式就是說在遇到第乙個右邊界後就停止匹配,這樣就可以精確拿到想要的內容)。建議均使用非貪婪匹配,除非特殊情況。

模板:對應正規表示式提取器型別,樣式為:$n$。若模板為:$0$,則為整個表示式匹配到的內容,就是包括小括號內跟小括號外的內容,即("seedtxnid":"143cbac705f74a8cb9bee6aee69c56cc","totalexperience":40,"seedid":"d61d5a2af9ca419e93d07606a8a01cfa","tiernum")。若模板為:$1$,則對應正規表示式中的第乙個(.*?)所匹配的內容,即(143cbac705f74a8cb9bee6aee69c56cc) ,同理,如果要取字段seedtxnid與seedid值,則模板為:$1$$3$,相當於把2個(.*?)所匹配的內容拼接起來。

匹配數字:正規表示式匹配資料的最終結果可以看做乙個陣列,匹配數字即可看做是陣列的第幾個元素。當為 0 時,隨機返回匹配的資料。當為 1 時,表示返回匹配結果陣列的第乙個元素。當為負數(-1,-2,-100都可以)時,表示返回全部元素,並且同時會返回乙個元素總數的變數seedtxnid_matchnr,在引用時:通過$的方式來取第1個匹配的內容,$來取第2個匹配的內容。

預設值:匹配失敗時的預設值。通常用於後續的邏輯判斷,建議使用一些特殊含義的,比如0,null,error等。

正則測試:

可以直接在「察看結果樹」裡選擇「regexp」正則測試模式來測試正則是否寫的正確。見下圖:

正則結果校對:

如果檢視提取到的內容是想要的內容,可使用後置處理器:debug postprocessor

該元件就為除錯所用,一般用於檢視變數值,新增如下:

檢視結果如下:

jmeter正規表示式

1.必須掌握的正則字元 會匹配行或者字串的起始位置,有時還會匹配整個文件的起始位置。會匹配行或字串的結尾。w 匹配字母,數字,下劃線。例如我要匹配 a2345bcd ttz 正則 w 這裡的 字元為乙個量詞指重複的次數。s 匹配空格。例如字元 a b c 正則 w s w s w 乙個字元後跟乙個空...

jmeter正規表示式

1 新增jmeter正規表示式提取器 在具體的request下新增jmeter正規表示式提取器 jmeter正規表示式在 後置處理器 下面 2 從返回的json結果提取規則,如下 名稱 隨意 注釋 隨意 要檢查的響應字段 正規表示式提取內容的範圍 引用名稱 其他地方引用提取值的變數名稱,如填寫的是 ...

正規表示式案例

案例一我們將把所有的雙引號替換單引號 解析匹配了乙個 中加除了引用的除了 以外的東西 用 1 代替,在這裡 1就是 name a b console.log name.replace g,1 除了引號以外的所有數 案例二 我們將把字串中所有單詞的首字母都轉換為大寫 方法一 找到aaa或bbb吧aaa...