Я не думаю, что ваш способ инициализации контроллера пропускной способности правильный, более того, трудно сказать, что еще не так, не видя полного кода вашего класса.
Имейте в виду, что вы должны создавать планы тестирования JMeter с использованием JMeter GUI, другие способы официально не поддерживаются, однако вы можете попробовать использовать такие инструменты-оболочки, как Taurus
В общем случае JMeter-скрипты JMeter - это, в основном, XML файлы, поэтому вы можете сравнить план тестирования, сгенерированный с помощью JMeter API , с планом тестирования, полученным из JMeter GUI, определите различия и исправьте ваш код, чтобы устранить их.
Если вы все еще хотите go в этом направлении программирования c создание сценария JMeter, пример плана тестирования с 2 контроллерами пропускной способности и 2 пробоотборниками, настроенными на 30% и 70% соответственно выполнение будет выглядеть примерно так:
HashTree testPlanTree = new HashTree();
HTTPSamplerProxy examplecomSampler = new HTTPSamplerProxy();
examplecomSampler.setDomain("example.com");
examplecomSampler.setPort(80);
examplecomSampler.setPath("/");
examplecomSampler.setMethod("GET");
examplecomSampler.setName("Open example.com");
examplecomSampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
examplecomSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
HTTPSamplerProxy blazemetercomSampler = new HTTPSamplerProxy();
blazemetercomSampler.setDomain("blazemeter.com");
blazemetercomSampler.setPort(80);
blazemetercomSampler.setPath("/");
blazemetercomSampler.setMethod("GET");
blazemetercomSampler.setName("Open blazemeter.com");
blazemetercomSampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
blazemetercomSampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
LoopController loopController = new LoopController();
loopController.setLoops(1);
loopController.setFirst(true);
loopController.setProperty(TestElement.TEST_CLASS, LoopController.class.getName());
loopController.setProperty(TestElement.GUI_CLASS, LoopControlPanel.class.getName());
loopController.initialize();
ThreadGroup threadGroup = new ThreadGroup();
threadGroup.setName("Example Thread Group");
threadGroup.setNumThreads(1);
threadGroup.setRampUp(1);
threadGroup.setSamplerController(loopController);
threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());
threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
ThroughputController throughputController3 = new ThroughputController();
throughputController3.setComment("Through Put 3");
throughputController3.setName("Through put 3");
FloatProperty throughput3 = new FloatProperty();
throughput3.setName("ThroughputController.percentThroughput");
throughput3.setValue(30.0f);
throughputController3.setProperty(throughput3);
throughputController3.setProperty("ThroughputController.style", 1);
throughputController3.setProperty("ThroughputController.perThread", false);
throughputController3.setProperty(TestElement.TEST_CLASS, ThroughputController.class.getName());
throughputController3.setProperty(TestElement.GUI_CLASS, ThroughputControllerGui.class.getName());
ThroughputController throughputController7 = new ThroughputController();
throughputController7.setComment("Through Put 7");
throughputController7.setName("Through put 7");
FloatProperty throughput7 = new FloatProperty();
throughput7.setName("ThroughputController.percentThroughput");
throughput7.setValue(70.0f);
throughputController7.setProperty(throughput7);
throughputController7.setProperty("ThroughputController.style", 1);
throughputController7.setProperty("ThroughputController.perThread", false);
throughputController7.setProperty(TestElement.TEST_CLASS, ThroughputController.class.getName());
throughputController7.setProperty(TestElement.GUI_CLASS, ThroughputControllerGui.class.getName());
HashTree logicHashTree = new HashTree();
HashTree throughputController3Tree = new HashTree();
HashTree exampleComHashTree = new HashTree();
exampleComHashTree.add(examplecomSampler);
throughputController3Tree.add(throughputController3);
throughputController3Tree.add(throughputController3, exampleComHashTree);
HashTree throughputController7Tree = new HashTree();
HashTree blazemeterComHashTree = new HashTree();
blazemeterComHashTree.add(blazemetercomSampler);
throughputController7Tree.add(throughputController7);
throughputController7Tree.add(throughputController7, blazemeterComHashTree);
logicHashTree.add(throughputController3Tree);
logicHashTree.add(throughputController7Tree);
TestPlan testPlan = new TestPlan("Create JMeter Script From Java Code");
testPlan.setProperty(TestElement.TEST_CLASS, TestPlan.class.getName());
testPlan.setProperty(TestElement.GUI_CLASS, TestPlanGui.class.getName());
testPlan.setUserDefinedVariables((Arguments) new ArgumentsPanel().createTestElement());
testPlanTree.add(testPlan);
HashTree threadGroupHashTree = testPlanTree.add(testPlan, threadGroup);
threadGroupHashTree.add(logicHashTree);
Извлечение Пять способов запуска теста JMeter без использования статьи JMeter GUI для получения дополнительной информации о различных способах запуска теста JMeter включая создание с нуля, используя язык Java.