jmeter -正則表示式來提取請求響應結果
案列:
通過jmeter傳送一個Http請求後,如何來獲取響應結果內容值?
常見場景一:比如說傳送一個投標的請求,返回是一串JSON串,因想判斷響應結果是否正確,所以可以通過獲取result的值(因result =1 時,說明投標成功),其中響應結果格式如下:{"errorMsg":null,"result":1,"data":{"result":"2","msg":"投標成功!"}},或者判斷msg內容也可。
常見場景二:
有A、B兩個介面,其中B介面的輸入引數來源於A介面的響應結果,此時也需要提取到A介面的響應欄位值
言歸正傳,如何獲取呢?通常可以使用“正則表示式提取器”、Beanshell PostProcessor等來進行,在此使用的是正則表示式來進行提取,
1、新增一個Http請求,設定如下:
2、在該Http請求下,新增一個正則表示式提取器,具體設定如下圖所示:
名詞解釋:
Apply to:應用範圍
要檢查的響應欄位:樣本資料來源
引用名稱:其他地方引用時的變數名稱,引用方法:${引用名稱}
正則表示式:資料提取器
-
. 匹配任何字元
-
+ 一次或更多次
-
? 停止在第一個匹配成功時
模板:表示使用提取到的第幾個值:$-1$:表示取所有值
$0$:表示隨機取值
$1$:表示取第1個
$2$:表示取第二個
以此類推:$n$:表示取第n個
匹配數字:0 代表隨機取值,1 代表全部取值
預設值:如果正則表示式沒有搜找到值,則使用此預設值
3、新增一個Debug Sampler ,
4、執行完,結果如下:
備註:正則表示式提取的結果儲存在result中,
result_g0 :根據匹配規則所匹配的全部內容 ;
result_g1:根據匹配規則匹配出符合條件的內容;
5、隨後接下即可使用提取的資料,用法${result}