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

时间:2017-09-25 13:09:36

标签: jmeter jsr223

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

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

2 个答案:

答案 0 :(得分:2)

仅使用初始化

在JSR223采样器下添加一次控制器
vars.putObject("i", 0);

然后你可以使用其他JSR223采样器(

)在它之后(不在Controller下)递增它
myI = vars.getObject("i")
log.info(String.valueOf(myI));
vars.putObject("i", ((Integer)myI+1));

答案 1 :(得分:1)

建议尽可能避免编写脚本,如果您不能在没有脚本的情况下生活,则应使用效果最佳的JSR223 Test ElementsGroovy语言选项。

特别是您的情况可以在没有任何脚本的情况下实现,您可以使用以下JMeter函数:

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

演示:

JMeter IterationNum Function Demo

您可以使用Custom JMeter Functions安装 __ iterationNum()功能作为JMeter Plugins Manager捆绑包的一部分

JMeter Custom Functions Plugins Manager