【问题标题】:Jmeter: how to disable listener by code (groovy)Jmeter:如何通过代码禁用监听器(groovy)
【发布时间】:2019-04-22 14:36:12
【问题描述】:

我尝试通过 groovy 代码禁用查看结果树。代码运行,正确显示和更改名称和启用属性(由日志报告),但在 GUI 中实际停止信息或由侦听器写入文件(GUI 和非 GUI 模式)都不会发生。最后处理侦听器,因此恕我直言,在 setUp 线程中执行的代码应该对其他线程的日志记录产生影响。 enabled 属性有什么作用?

我已经看到了通过在适当位置编辑 jmeter 计划文件 (JMeter: how can I disable a View Results Tree element from the command line?) 的解决方法,但我想要内部 jmeter/groovy 解决方案。

代码(有趣的是每个监听器被处理了两次,第一次打印view resuts tree,接下来已经打印foo):

import org.apache.jmeter.engine.StandardJMeterEngine
import org.apache.jorphan.collections.HashTree
import org.apache.jorphan.collections.SearchByClass
import org.apache.jmeter.reporters.ResultCollector
def engine = ctx.getEngine()
def test = engine.getClass().getDeclaredField("test")
test.setAccessible(true)
def testPlanTreeRC = (HashTree) test.get(engine)
def rcSearch = new SearchByClass<>(ResultCollector.class)
testPlanTreeRC.traverse(rcSearch)
def rcTrees = rcSearch.getSearchResults()
for (rc in rcTrees) {
    log.error(rc.getName())
    if (rc.isEnabled()) {log.error("yes")} else {log.error("no")}
    rc.setEnabled(false)
    if (rc.isEnabled()) {log.error("yes")} else {log.error("no")}
    if (rc.getName()=="View Results Tree") {rc.setName ("foo")}
}

添加:当在 GUI 的测试计划中禁用监听器时,上面的遍历树代码找不到它。

【问题讨论】:

    标签: groovy jmeter


    【解决方案1】:

    disabled 属性由 JMeter 在启动时使用/检查,因此 JMeter 代码必须有所更改

    我打开一个增强Add option to disable View Results Tree/Listeners in non GUI

    你可以vote上

    有other options executing JMeter externally,使用Taurus工具或使用Java执行JMeter并禁用:

    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();
    

    【讨论】:

      猜你喜欢
      • 2013-04-05
      • 2023-02-14
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2018-12-14
      • 1970-01-01
      相关资源
      最近更新 更多