Jmeter: как отключить слушателя по коду (groovy) - PullRequest
1 голос
/ 22 апреля 2019

Я попытался отключить просмотр дерева результатов по groovy коду.Код запускается, правильно показывает и изменяет имя и свойство enable (как сообщается в журнале), но не происходит фактического прекращения действия информации в графическом интерфейсе пользователя или записи в файл слушателем (как в графическом, так и в не графическом режиме).Слушатели обрабатываются в конце, поэтому ИМХО код, который выполняется в потоке setUp, должен влиять на запись в журнал других потоков.Что делает свойство enabled?

Я видел обходной путь, редактируя файл плана jmeter на месте ( JMeter: как отключить элемент View Results Tree из командной строки? ), но я бы хотел внутреннее решение 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")}
}

ДОБАВЛЕНО: когда прослушиватель отключен в плане тестирования в графическом интерфейсе, он не обнаружен с помощью кода обхода дерева выше.

1 Ответ

0 голосов
/ 16 июля 2019

disabled свойство используется / проверяется JMeter при запуске , поэтому должно быть изменение в коде JMeter

Я открываю расширение Добавить параметр, чтобы отключить просмотр дерева результатов / прослушивателей в не GUI

Вы можете голосовать на

Существуют другие варианты внешнего выполнения JMeter с использованием инструмента Taurus или выполнения JMeter с использованием Java и отключения его:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...