Как получить непосредственное имя родителя для семплера в Jmeter - PullRequest
0 голосов
/ 05 августа 2020

Как получить непосредственное имя родителя для семплера в Jmeter. У меня много контроллеров транзакций. Я использую Jmeter 5.3. У меня есть сценарий beanshell для того же, что и ниже, но он всегда печатает самое первое имя контроллера.

import org.apache.jmeter.control.GenericController;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.collections.SearchByClass;
import java.lang.reflect.Field;
import java.util.Collection;

StandardJMeterEngine engine = ctx.getEngine();
Field test = engine.getClass().getDeclaredField("test");
test.setAccessible(true);
HashTree testPlanTree = (HashTree) test.get(engine);

SearchByClass simpleCtrlSearch= new SearchByClass(GenericController.class);
testPlanTree.traverse(simpleCtrlSearch);
Collection simpleControllers = simpleCtrlSearch.getSearchResults();

for (Object simpleController : simpleControllers) {
    log.info(((GenericController) simpleController).getName());
}

1 Ответ

0 голосов
/ 05 августа 2020

В общем, это либо невозможно, либо не слишком просто.

Для конкретного вашего случая, если вам нужно определить имя Контроллера транзакций для конкретного сэмплера, вы можете go для JSR223 Listener и следующего кода:

if (sampleEvent.isTransactionSampleEvent()) {
    log.info("Transaction Controller name: " + sampleEvent.result.getSampleLabel())
}

Demo:

enter image description here

More information: Apache Groovy - Почему и как вам следует Использовать

...