在JMeter中,我想隐藏我的负载测试的第一次迭代以解决缓存问题和预热。现在,我有一个JSR223后处理器,每个请求上方都有下一个代码:
if (vars.getIteration() == 1) {
prev.setIgnore()
}
这很好,但是汇总报告中的结果不正确。事务控制器显示为空,并且90%的计算不正确。如何只在第二次迭代中填写汇总报告?
测试计划:
setUp线程无法正常工作,因为线程之间没有共享缓存
合成报告现在为:
答案 0 :(得分:0)
创建一个具有1个用户,1个迭代的setUp线程组。 向其添加模块控制器。 将模块控制器映射到另一个线程组以运行所有示例。 如果您以GUI模式运行->仅为线程组创建侦听器以获取JTL 如果您以非GUI模式运行->将JSR223后处理器添加到线程组级别而不是任何smapler并添加以下内容
(prev.setIgnore())
答案 1 :(得分:0)
您可以更改第一次迭代的采样器标签,而不是忽略结果,例如:
if (vars.get('__jm__jp@gc - Ultimate Thread Group__id').equals('1')) {
prev.setSampleLabel('IGNORE ME')
}
完成后,您可以通过Filter Results Tool剥离它们,可以使用JMeter Plugins Manager和can be executed via command-line安装该工具,如下所示:
FilterResults.bat --output-file final.jtl --input-file your-test-results.jtl ----exclude-label-regex false --exclude-labels "IGNORE ME"