Jmeter跨线程组之间如何共享变量

1、跨线程组之间变量不共享,即使在线程组最外层设置也不支持,解决方案:

通过 后置处理器-BeanShell 后置处理程序,将Jmeter变量设置Jmeter属性变为全局的来解决

(1)通过BeanShell后置处理器获取正则表达式提取的变量值,BeanShell处理器获取提取的变量值有以下两种写法

写法一:脚本内容写如下代码

String token = vars.get("token");
log.info(token);//打印日志

Jmeter跨线程组之间如何共享变量_第1张图片

写法二:直接引用正则表达式提取出来的变量值:${token}

Jmeter跨线程组之间如何共享变量_第2张图片

Jmeter跨线程组之间如何共享变量_第3张图片

 查看日志内容确认BeanShell后置处理器是否获取到变量值Jmeter跨线程组之间如何共享变量_第4张图片

 (2)BeanShell后置处理器中写如下代码将获取到的变量值设为全局属性


String token = vars.get("token");
props.put("token",token);
log.info(token);//打印日志

Jmeter跨线程组之间如何共享变量_第5张图片

(3)引用Jmeter属性使用函数助手中的_P()函数,属性名称写入BeanShell提取的变量名称,点击生成后将值填入需要引用此变量的线程组中即可

Jmeter跨线程组之间如何共享变量_第6张图片

Jmeter跨线程组之间如何共享变量_第7张图片

(4)执行脚本,最外层添加监听器-察看结果树中可看到已取到上一个线程组的变量

Jmeter跨线程组之间如何共享变量_第8张图片

2、跨线程组之间cookie不共享,即使在线程组最外层设置也不支持,解决方案:

方法一:修改jmeter安装路径bin目录下的jmeter.properties文件:CookieManager.check.cookies=true 并去除注释符号#,保存重启

方法二:通过beanshell后置处理程序,将Jmeter变量设置Jmeter属性变为全局(与上述变量共享方法一致)

你可能感兴趣的:(Jmeter,测试工具,jmeter)