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}