JMeter-仅在非GUI中忽略视图结果树侦听器

时间:2018-06-27 04:54:37

标签: jmeter

重要的best practice不要使用View Results Tree

  

在负载测试期间不要使用“查看结果树”或“在表中查看结果”侦听器,而只能在脚本编写阶段调试脚本。

或任何听众:

  

使用尽可能少的监听器;如果使用上述的-l标志,则可以将其全部删除或禁用。

但是View Results Tree是调试脚本以识别脚本中问题的绝佳工具。

我们只能以非GUI模式运行时才以某种方式忽略它吗?

我可以通过setIgnore方法忽略采样器结果,甚至可以通过在属性中将线程数设置为0来忽略线程组,属性可以忽略侦听器吗?

目前,我在非GUI中运行之前/之后手动在GUI中启用/禁用。

编辑

但是jmx文件保存在版本控制中,因此它应该保持只读状态(用于GUI和非GUI)

1 个答案:

答案 0 :(得分:-2)

我会说,classic non-GUI mode目前无法进行测试执行,选项位于:

  1. 从测试计划中完全删除所有侦听器,并使用Results File Configuration Properties来控制.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工具运行测试,它具有Modifications for Existing Scripts功能,因此您可以使用简单的声明性YAML语法来禁用侦听器:

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