如何使用 Beanshell 创建简单的计数器?

How to create simple counter using Beanshell?

我正在尝试创建一个简单的计数器,它将迭代次数打印到日志中。 问题是我没有找到将 i 的 int 值初始化为 0 的方法。 如果我在 Beanshell 脚本中执行它,它将继续初始化,我只需要在测试开始时 运行 一次。 我的代码:

int i=0;
log.info(string.valueOf(i));
i=i+1;

添加Once Only Controller,在其下初始化JSR223 Sampler

vars.putObject("i", 0);

然后你可以在它之后(不在控制器下)使用其他 JSR223 采样器增加它:

myI = vars.getObject("i")
log.info(String.valueOf(myI));
vars.putObject("i", ((Integer)myI+1));

建议尽可能避免使用脚本,如果没有脚本你就活不下去,你应该使用性能最好的选项,即 JSR223 Test Elements and Groovy 语言。

特别是您的案例无需任何脚本即可实现,您可以使用以下 JMeter 函数:

因此,如果您使用如下语句:${__log(Current iteration is: ${__iterationNum},,,)} JMeter 将 return 它在函数被调用的位置,并将相应的消息另外打印到日志文件中。

演示:

您可以安装 __iterationNum() 函数作为 Custom JMeter Functions bundle using JMeter Plugins Manager

的一部分