使用jmeter来测试时,经常会碰到需要上下文传输数据的情况,如登录后生成的token,在其他页面的操作,都需传入这个token。这时,怎么实现数据传输就是我们要考虑的问题。
jmeter提供的后置处理器,如正则表达式提取器,可以很方便的在服务器响应后,把响应中的数据提取出来并赋值给某个参数,当我们需要用到这个数据时,只需调用这个参数即可。
所以在相应的采样器下添加正则表达式
正则页面如下:
名称/注释:字面意思
Apply to / 要检查的响应字段 :默认即可,如有特殊需求自行更改
引用名称:自己设置,正则获取到的值,将赋值给此字段。下文引用时,引用此名称即可。引用写法为:${Token}
正则表达式:用于获取需要的值的正则表达式。双引号间的值将赋值给 引用名称Token 。
. 表示匹配任意字符串
+ 表示匹配一次或多次
? 表示匹配到第一个匹配项后即停止匹配
模板:如表达式中有多个正则表达式,则表示解析到的第几个值赋值给Token。用$$括起来,一般一个的话,就用$1$
匹配数字:如响应信息中有多个responseToken,则正则会把所有responseToken的值提取出来。
匹配数字的0代表随机一个responseToken的值赋值给Token,而1、2、3.....则表示相应的第几个值。
一般0使用较多。
如需所有的responseToken的值,则设置匹配数字为1,此时会把所有responseToken的值赋值给Token。Token变为一个列表,如想引用,${Token_n},n表示第n个数值
省却值:表示正则表达式未匹配到数值时,如此处设置了值,则此值会被赋值给Token
正常引用:
引用结果:
正则表达式提取器使用很是方便。但是如果响应信息是json格式的话,还有一个后置处理器获取某字段的值,也很是方便
JSON Path PostProcessor
简单贴一张图
提取规则:形如 $..字段名称 ,如和上面的正则表达式一样,为了获取responseToken的值,可写为 $..responseToken
匹配数字:和正则表达式的匹配数字一样,0随机,-1所有
引用此变量的规则和正则表达式引用规则一样