Jmeter设置全局变量,跨线程调用
在我们的测试过程中经常会遇到A接口返回值被B接口引用,如:A登录接口登录后获得的token值被B接口引用,且每次登录生成的token值不同
如何才能A接口中提取参数到B接口中?接下来我们就可以用正则表达式来解决这个问题。
将登陆后获取到的参数配置成全局变量
1,通过后置处理器提取参数
获取登录后返回的参数,如:获取登录后返回的userId
选中login右键添加后置处理器-正则表达式提取器/json提取器
说明:此处介绍下正则提取规则
(1)引用名称:下一个请求要引用的参数名称,如填写code,则可用${code}引用它。
(2)正则表达式:
():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
(3)模板:引用起来,如果在正则表达式中有多个正则表达式,则可以是$2引用起来,如果在正则表达式中有多个正则表达式,则可以是$2
3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取,我填的Error。
2,设置函数助手
3,添加Bean Shell取样器,将函数助手中生成的函数字符串拷贝至取样器中
4,跨线程调用全局变量,查看结果树查看是否获取到了上一接口的返回值