跨线程组的变量是不共享的,即使它们被设置在线程组的最外层。解决方法是通过将变量的设置属性改为全局属性,通过后处理器得到正则表达式提取的变量值。处理器获取提取的变量值有两种方式:一种是将脚本内容写成如下:打印日志
1.变量不会在跨线程组之间共享,即使它们被设置在线程组的最外层。解决方法:通过后处理器-BeanShell后处理器,将Jmeter变量的Jmeter属性设置为global。
(BeanShell后处理器获取正则表达式提取的变量值。BeanShell处理器通过以下两种方式获取提取的变量值。
编写方法1:脚本内容用以下代码编写
string token = vars . get(" token ");log . info(token);//打印日志
写法:直接引用正则表达式提取的变量值:${token}
检查日志内容以确认BeanShell后处理器是否获得了变量值。
(2)在2)BeanShell后处理器中编写以下代码,将获得的变量值设置为全局属性。
string token = vars . get(" token ");props.put("token ",令牌);log . info(token);//打印日志
(3)使用函数助手中的_P()函数引用Jmeter属性,将属性名写入BeanShell提取的变量名中,点击生成,填写需要引用该变量的线程组。
(4)执行脚本,在最外层添加一个监听器。-检查结果树,查看前一个线程组的变量。
2.跨线程组之间不共享Cookies,即使设置在线程组的最外层。解决方法:方法一:修改jmeter安装路径的bin目录下的jmeter.properties文件:cookie manager . check . cookies = true并去掉注释符号#,保存后重启。
方法二:通过beanshell后处理程序,Jmeter变量设置的Jmeter属性变成全局的(与上面的变量共享方法一致)。
评论前必须登录!
注册