JMeter | 如何定义变量,使其范围在BeanShell中的{thread,Thread-Group,Test-Plan}中

Raj*_*jan 5 testing jmeter beanshell

我正在尝试编写一个测试计划,其中根据采样器上的文本生成自定义报告.我无法在这三个级别中正确调整变量的范围.

loc = vars.get("local_count");
if(loc == null){
   vars.put("local_count", "1");//available only in local thread level
}else{
   temp = Integer.parseInt(loc) + 1;
   vars.put("local_count", temp.toString());
}
log.info("the local count is " + vars.get("local_count");

glo = props.get("global_count");
if(glo == null){
   props.put("global_count", "1");//available in test plan level
}else{
   temp1 = Integer.parseInt(glo) + 1;
   props.put("global_count", temp1.toString());
}
log.info("the global count is " + props.get("global_count");
Run Code Online (Sandbox Code Playgroud)

现在尝试创建多个Thread-Group并在每个中添加这个BeanShell采样器.

如何使变量仅在Thread-Group的所有线程中可用(而不是在其他线程组上).在不同的线程组中提供常量唯一名称不是一种选择.

有人能帮助我吗?提前致谢.

Bob*_*Bob 4

添加 BeanShell Sampler 并插入以下代码:

vars.put("test","abcd");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 该变量的范围仅限于线程级别。如果您在多个线程中运行脚本 - 并在每个线程中以不同方式修改变量(附加单独的字符),log.info() 结果并查看,它将无法按预期工作。 (4认同)