jmeter如何通过后置处理器提取(正则提取器、json提取器)做接口关联?
?
一、后置處理器—正則表達式提取器
1、添加正則表達式提取
2、正則表達式提取面板介紹:
引用名稱:提取引用名稱,下個請求要引用此參數名稱,如填寫token,下個請求中用${token}
正則表達式:():括起來的部分就是要提取的
? ? ? ? ? ? ? ? ? ? ? .:匹配任何字符串
? ? ? ? ? ? ? ? ? ? ?+:一次或多次
? ? ? ? ? ? ? ? ? ? ??:不要太貪婪,在找到第一個匹配項后停止
模板:用$$引用起來,如果在正則表達式中有多個正則表達式,則可以是$2$$3$等等,表示解析到正則表達式的第幾個值給token。如:$1$表示解析到的第1個值 $2$表示解析到的第2個值 $n$:表示取第n個
匹配數字:0代表隨機取值,1代表全部取值,通常情況下填0
如果正則表達式沒有搜找到值,則使用此缺省值
3、提取(單個值)登錄后獲取的token,作為請求頭參數,用于其它接口請求使用
4、正則提取(不同字段,多個值)案例
?
5、正則提取(同字段,多個值)案例
提取列表接口所有id集合,使用第幾個id,id_n就可以,如果想迭代所有id,再搭配foreach迭代控制器,迭代每個id
二、后置處理器—json提取器
1、添加json提取器
2、json提取器面板介紹:
Main sampleand sub-samples:應用于主sample及子sample
?Main sample only:默認的是這個,應用于主sample
Sub-samples only:應用于子sample?
JMeterVariableName to use:應用于變量命名的內容
Variable names : 名稱?
JSONPath Expression:JSON表達式?
Match Numbers:0隨機;n取第幾個匹配值;-1匹配所有,后續引用用 變量名_N 取第N個值
Default Value:未取到值的時候默認值
?
$.你要提取的參數
1、響應類似{"屬性":[{"sx":1},{},{}]},整個響應是個對象。取sx的值:$.屬性[0].sx
2、修改json?extractor 獲取數組的所有值???$[*].屬性。match?no=3取第3個
3、match?no=5,數組越界后,取default?values
4、修改json?extractor? 設置match?no =-1?匹配對應字段所有值;并修改接收參數的http請求的參數為 ${varname_N}。N=1-4
我想提取code參數值:
JSON Path Extractor:$.code
提取username參數值:
JSON Path Extractor:$.list[0].username
?
如果提取的參數不存在父級?
$.你要提取的參數名
?
提取的參數存在父級
$.你要提取的參數名的父親.你要提取的參數名
?
如果提取參數的父級存在父級
$.你要提取的參數名的父親的父親(爺爺).你要提取的參數名的父親.你要提取的參數名
?
參數如果是數組?
$.你要提取的參數參數[N]
以下標的形式取值,0代表取的數組中第一個值,1代表取的是數組中第二個值,N代表取的數組中第N+1個值
?
3、提取(單個值)登錄后獲取的token,作為請求頭參數,用于其它接口請求使用
?
4、json提取器,提取(不同字段,多個值)案例
?
?
?
5、json提取器,提取(同字段,多個值)案例
JSONPath Expression? ?$.data.list[*].id
Match Numbers? ?-1
提取列表接口所有id集合,使用第幾個id,id_n就可以,如果想迭代所有id,再搭配foreach迭代控制器,迭代每個id
?
?
總結
以上是生活随笔為你收集整理的jmeter如何通过后置处理器提取(正则提取器、json提取器)做接口关联?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jmeter JDBC Request执
- 下一篇: hbasehlog_HBase原理--R