1. 程式人生 > >jmeter -正則表示式來提取請求響應結果

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}