我正在使用 BeanShell PostProcessor 在测试中的每个循环末尾将结果附加到 .csv 文件,但是当我打开该文件时,我发现它附加的条目比循环的条目多。额外的条目是其他行的重复。
FinalCount= vars.get("finalCount");
Loop = vars.get("loop");
f = new FileOutputStream("/tests/results.csv", true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print(Loop + "," + FinalCount);
f.close();
最佳答案
发生这种情况的原因可能是:
- PostProcessor 范围:您将 PostProcessor 放置在错误的位置,因此每个采样器都会触发其执行
- 最有可能的是:PostProcessor 由每个线程(虚拟用户)执行,并且您希望它只执行一次
我会推荐以下内容:
- 将后处理器放置为最后一个采样器的子级
修改您的代码,以便仅在由第一个线程执行时才会写入一行,例如:
if (ctx.getThreadNum() == 0) { //your code here }
ctx
是 JMeterContext 的简写类和 getThreadNum()方法返回当前线程的数量。
参见How to Use BeanShell: JMeter's Favorite Built-in Component有关使用的更多信息指南 JMeter API来自 Beanshell 脚本。
关于jmeter - 在每个 while 循环打印重复项的末尾将结果打印到 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36183767/