我正在尝试创建一个简单的计数器,将迭代编号打印到日志中。 问题是,我没有找到一种方法来初始化我的int值为0. 如果我会在Beanshell脚本中执行它,它将继续初始化,我需要它在运行的开始时只运行一次测试。 我的代码:如何使用Beanshell创建简单的计数器?
int i=0;
log.info(string.valueOf(i));
i=i+1;
我正在尝试创建一个简单的计数器,将迭代编号打印到日志中。 问题是,我没有找到一种方法来初始化我的int值为0. 如果我会在Beanshell脚本中执行它,它将继续初始化,我需要它在运行的开始时只运行一次测试。 我的代码:如何使用Beanshell创建简单的计数器?
int i=0;
log.info(string.valueOf(i));
i=i+1;
添加一旦唯一的控制器,在它之下JSR223采样与初始化
vars.putObject("i", 0);
然后你可以增加它后(不低于控制器)与其他JSR223采样:
myI = vars.getObject("i")
log.info(String.valueOf(myI));
vars.putObject("i", ((Integer)myI+1));
建议在可能的情况下避免编写脚本,如果您的脚本不能运行,您应该使用性能最佳的选项是JSR223 Test Elements和Groovy语言。
尤其是你的情况下,可以在没有任何脚本来实现,你可以使用下面的JMeter的功能:
因此,如果您使用如下语句:${__log(Current iteration is: ${__iterationNum},,,)}
JMeter将返回函数所在的位置调用并额外打印相应的消息到日志文件。
演示:
遇到错误安装__iterationNum()功能Custom JMeter Functions包的一部分。我应该在JSR223采样器下选择哪种语言? –
我用groovy。你的错误是什么? – user7294900
确定它现在有效。我在测试计划下添加了用户定义变量“i”,然后将lang更改为Groovy。谢谢! –