2016-10-14 19 views
0

私はスレッド内にコントローラがいくつあるかをカウントしたいJMeterスクリプトを持っています。私はそれらを通過する前にそれらを数えたいと思う。私はそれらを実行する場合、私はbeanshellで1つ1つを数えることができますが、私はスレッドの前にまたはコントローラの上のスレッドの先頭にそれらを数えたいと思います。JMeterカウントコントローラ

+0

正確に何contollersに興味がありますか? –

+0

スループットコントローラ。 – Blacksoil

答えて

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

参考文献:

のJavaコアされている参照してくださいHow to Use BeanShell: JMeter's Favorite Built-in Component JMeterのテストでBeanShellのを使用しての詳細については、いくつかの例とともに