JSON Extractor提取器的使用
variables names :接收值的变量名
json path: json path表达式
match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。
default values: 缺省值,匹配不到值的时候取该值
返回值
{
“ret” : true,
“msg” : “操作成功”,
“data” : {
“userId” : “045739”,
“userName” : “qb”,
“token” : “eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJqd3QuaWQiLCJpYXQiOjE1OTU”,
“email” : “1155@100tal.com”,
“cityCode” : [ “010”, “021”, “0755”, “0371”, “0512”, “0086” ],
“types” : 0
},
“errcode” : 0
}
格式: . d a t a . t o k e n J S O N 主 要 运 用 于 返 回 J S O N 格 式 的 , 格 式 : .data.token JSON主要运用于返回JSON格式的,格式: .data.tokenJSON主要运用于返回JSON格式的,格式:.data[0].id $.data.xx1
提取多个值
正则表达式
返回值
返回值:
{
“date” : “2018-10-10”,
“time” : “15:10~17:10”,
“canSelect” : 0,
“groupId” : “8e3f15d69eb73d69a7486c133b586f05”,
“selectMode” : “1”,
“selectText” : “2018-10-10~2019-01-16 周三 15:10~17:10”,
“dateFormat” : “2”,
“dateValue” : “2018-10-10|2019-01-16|3|4|3”,
“tips” : " 2018-10-10 15:10:00~17:10:00 教师时段未开放,无法整期报课"
}, {
“date” : “2018-10-10”,
“time” : “18:00~20:00”,
“canSelect” : 1,
“groupId” : “84127f7417f7e61c5b7c631b61b96a09”,
“selectMode” : “1”,
“selectText” : “2018-10-10~2019-01-16 周三 18:00~20:00”,
“dateFormat” : “2”,
“dateValue” : “2018-10-10|2019-01-16|3|5|3”
}
想要获取到canSelect" : 1,的dateValue,正则表达式:
“date” : “(.+?)”,(\s+?)“time” : “(.+?)”,(\s+?) “canSelect” : 1,(\s+?) “groupId” : “(.+?)”,(\s+?) “selectMode” : “(.+?)”,(\s+?) “selectText” : “(.+?)”,(\s+?) “dateFormat” : “(.+?)”,(\s+?) “dateValue” : “(.+?)”
为什么是取出第14个值?,因为(\s+?)取出了json中任意字符对本段返回值来说就是取出了空格与换行,它也是一个返回值,(.+?)不用多说就是变量后面得到的值,正好在dateValue这就是14了dateFormat就是12,selectMode就是10
线程间传参
1、方案一:测试计划中根目录的用户定义的变量
但是这种方式可以实现一个常量的全局变量,不适合赋值性的全局变量
2.利用__setProperty进行jmeter属性设置,__P进行引用
使用方法:
第一步:获取到接口A的数据,例如登录接口的token,变量名为:tokenFromResponse
第二步:添加后置处理器BeanShell
PostProcessor,设置jmeter属性:KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(to…{tokenFromResponse},)}。意思就是将tokenFromResponse的值赋值给jmeter属性tokenSetProperty
如何查看jmeter属性是否设置成功
方法一:添加Debug Sampler,并将Jmeter properties设置为true