JMeter - 在非GUI模式下忽略查看结果树监听器

3

最佳实践是在负载测试期间不要使用“查看结果树”和“以表格形式查看结果”监听器,仅在脚本编写阶段使用它们进行调试。

不要在负载测试期间使用“查看结果树”或“以表格形式查看结果”监听器,仅在脚本编写阶段使用它们进行调试。

或任何其他监听器:

尽可能少使用监听器;如果像上面那样使用-l标志,则可以删除或禁用所有监听器。

但是,“查看结果树”是一个用于调试的好工具,可用于识别脚本中的问题。

我们能否在非 GUI 模式下忽略它?

我可以通过setIgnore方法忽略采样器结果,甚至可以通过将线程组的线程数设置为0来忽略线程组,请问监听器是否可以通过属性来忽略?

目前我需要在 GUI 中手动启用/禁用,并在非 GUI 中运行之前/之后执行此操作。

编辑

但是 JMX 文件存储在版本控制中,因此应仅保持为只读状态(同时用于 GUI 和非 GUI)。

1个回答

0

我认为目前在测试执行的经典非GUI模式中不可能实现,可选项如下:

  1. 完全删除测试计划中的所有监听器,并使用结果文件配置属性控制存储在.jtl结果文件中的内容。
  2. 创建一个简单的Java包装程序来启动非GUI JMeter测试,该程序将在启动之前扫描测试计划并禁用监听器。它可能是这样的:

    StandardJMeterEngine jmeter = new StandardJMeterEngine();
    JMeterUtils.loadJMeterProperties("/path/to/your/jmeter.properties");
    JMeterUtils.setJMeterHome("/path/to/your/jmeter");
    JMeterUtils.initLocale();
    SaveService.loadProperties();
    HashTree testPlanTree = SaveService.loadTree(new File("/path/to/your/testplan"));
    SearchByClass<ResultCollector> listenersSearch = new SearchByClass<>(ResultCollector.class);
    testPlanTree.traverse(listenersSearch);
    Collection<ResultCollector> listeners = listenersSearch.getSearchResults();
    listeners.forEach(listener -> listener.setProperty(TestElement.ENABLED, false));
    jmeter.configure(testPlanTree);
    jmeter.run();
    
  3. 使用Taurus工具运行您的测试,它具有现有脚本的修改功能,因此您将能够使用简单的声明性YAML语法禁用监听器:

    ---
    execution:
      scenario:
        script: /path/to/your/testplan
        modifications:
          disable:  # Names of the tree elements to disable
          - View Results Tree
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接