JMeter计数控制器

时间:2016-10-14 11:18:07

标签: java controller jmeter

我有一个JMeter脚本,我想在其中计算一个线程中有多少个控制器。在我浏览它们之前,我想要计算它们。我知道如果我运行它们,我可以用beanshell逐个计算它们,但我想在进入线程之前或在控制器上方的线程开始之前计算它们。

1 个答案:

答案 0 :(得分:1)

您可以在某处添加Beanshell Sampler并使用以下代码来确定吞吐量控制器计数:

import org.apache.jmeter.control.ThroughputController;
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 throughputControllersSearch = new SearchByClass(ThroughputController.class);
testPlanTree.traverse(throughputControllersSearch);
Collection throughputControllers = throughputControllersSearch.getSearchResults();
log.info("Found " + throughputControllers.size() + " throughput controllers in the test plan");

演示:

Beanshell Sampler

参考文献:

有关在JMeter测试中使用Beanshell的更多信息以及一些示例,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component