JMeter隐藏第一次迭代

时间:2019-06-26 09:14:35

标签: jmeter

在JMeter中,我想隐藏我的负载测试的第一次迭代以解决缓存问题和预热。现在,我有一个JSR223后处理器,每个请求上方都有下一个代码:

if (vars.getIteration() == 1) {
    prev.setIgnore()
}

这很好,但是汇总报告中的结果不正确。事务控制器显示为空,并且90%的计算不正确。如何只在第二次迭代中填写汇总报告?

测试计划:

  • jp @ gc-最终线程组 |> Transactioncontroller |>采样器

setUp线程无法正常工作,因为线程之间没有共享缓存

合成报告现在为:

enter image description here

2 个答案:

答案 0 :(得分:0)

创建一个具有1个用户,1个迭代的setUp线程组。 向其添加模块控制器。 将模块控制器映射到另一个线程组以运行所有示例。 如果您以GUI模式运行->仅为线程组创建侦听器以获取JTL 如果您以非GUI模式运行->将JSR223后处理器添加到线程组级别而不是任何smapler并添加以下内容

(prev.setIgnore())

答案 1 :(得分:0)

  1. 如果事务控制器下只有一个采样器-您根本不需要事务控制器,因此您的方法应该开始起作用
  2. 您可以更改第一次迭代的采样器标签,而不是忽略结果,例如:

    if (vars.get('__jm__jp@gc - Ultimate Thread Group__id').equals('1')) {
        prev.setSampleLabel('IGNORE ME')
    }
    

    完成后,您可以通过Filter Results Tool剥离它们,可以使用JMeter Plugins Managercan 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"