1. 程式人生 > >jmeter後置處理器之正則表示式

jmeter後置處理器之正則表示式

 

一、基本用法——提取某個值

場景:提取某個值,儲存成變數,供後面的介面使用

步驟:

1、執行指令碼,從響應結果中查詢要提取的值,找到左右邊界。

例如要獲取“patientInfoId”作為下一個請求的引數,"patientInfoId":"2c92e0e66680b7da0166820bcb7301a1".

2、新增後置處理器——正則表示式提取器

 

  • 1、引用名稱:就是變數名,呼叫使用${patientInfoId}
  • 2、正則表示式:()括號裡表示你要的數值,相當於LR的右邊界
  • 3、模板:$$表示你要是用那個正則表示式那個模板獲取的值   -1全部,0 隨機,1第一個2第二個,如果只有一個正則一般就填寫1,如果多個正則你要看你到底呼叫哪個值來定,這兒待會下面截圖例子一看就明白
  • 4、匹配數字:-1表示全部,0隨機,1第一個,2第二個
  • 5、預設值:這個如果沒有匹配到,給它定義的一個預設值
  • 6、注意事項:正則表示式中的特殊字元需要轉義\

 3、引用引數

 

二、升級用法——提取多個值

需求:提取醫生排班的營業時間段的起止時間

步驟(方案一):

1、查詢響應中的目標值

2、新增正則表示式提取器,設定如下

有三種設定方式,分別如下:

區別是period的值不同

  • 第一種

period=19:0023:00
period_g=2
period_g0="periodStart":"19:00","periodEnd":"23:00"
period_g1=19:00
period_g2=23:00

  • 第二種

period=19:00
period_g=2
period_g0="periodStart":"19:00","periodEnd":"23:00"
period_g1=19:00
period_g2=23:00

  • 第三種

period=23:00
period_g=2
period_g0="periodStart":"19:00","periodEnd":"23:00"
period_g1=19:00
period_g2=23:00

3、引用引數

${period_g1}

${period_g2}

三、升級用法——提取一組值

需求:檢視所有家庭成員,返回所有的patientId(一組),並對每個patientId進行掛號操作(迴圈遍歷)。

步驟1、同上

步驟2、新增正則表示式提取器

正則表示式提取器設定如下:

步驟3、引用引數

引數引用如下:

步驟4、使用ForEach控制器,實現遍歷

新增ForEach控制器,配置如下

注意:

  • 輸入變數字首:輸入正則表示式變數的引用名稱即可
  •  Start index for loop(exclusive) 指定目標值的開始索引(不包含填寫值),預設為0
  • End index for loop(exclusive) 指定目標值的結束索引(包含填寫值),預設最大索引值。

    如果要遍歷分組中的全部遍歷,Start index for loop(exclusive),End index for loop(exclusive)預設為空即可。

  • Add “_” before number? 預設勾選狀態,根據填寫值來決定是否勾選,如下,如果輸入變數字首填寫引用名稱_則可以不勾選,否則必須勾選

  •  輸出變數名稱:用於儲存每次遍歷獲取值,供其它地方引用

步驟5、

引數引用:使用${patientId}