【问题标题】:JMeter - Ignore View Results Tree Listener only in non GUIJMeter - 仅在非 GUI 中忽略查看结果树侦听器
【发布时间】:2018-06-27 15:15:02
【问题描述】:

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

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

或任何听众:

使用尽可能少的监听器;如果使用上面的 -l 标志,它们都可以被删除或禁用。

View Results Tree 是一个很好的调试工具,可以识别脚本中的问题。

我们能否仅在运行非 GUI 模式时以某种方式忽略它?

我可以通过setIgnore方法忽略Sampler Result,甚至可以通过在属性中设置线程数为0来忽略线程组,监听器可以被属性忽略吗?

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

编辑

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

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    我想说目前不可能使用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
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多