Alex Shao
2018-12-02 08:57:29 UTC
Hi,
Iâm using Jmeter 4.0 and trying to use the remote testing feature, with the remote slave being ready (using same 4.0 version as master; firewall turned off; ./bin/jmeter-server started).
When master driver program triggers the test, I can see the slave console showing starts and finishes the test, however master driver program just hangs there. Not sure what is causing this, could someone give me any pointer?
My JAVA driver code:
ClientJMeterEngine jmeter = new ClientJMeterEngine(REMOTE_HOST_ADDR);
HashTree testPlanTree = new HashTree();
Map<String, Integer> testClassMap = getAllTestClasses();
//logic to form the core test plan tree
addLoadTestToTestPlan(testPlanTree, testClassMap, SAMPLE_SLEEP_TIME);
SaveService.saveTree(testPlanTree, new FileOutputStream(TEST_PLAN));
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
// Store execution results into a .jtl file
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(REPORT_FILE);
testPlanTree.add(testPlanTree.getArray()[0], logger);
// Run Test Plan
jmeter.configure(testPlanTree);
jmeter.runTest();
The trivial test class which implements JavaSamplerClient doesnât really do much in the runTest() logic (no logic in setup/tearDown):
public SampleResult runTest(JavaSamplerContext context) {
SampleResult result = new SampleResult();
result.sampleStart();
try {
result.sampleEnd();
result.setSuccessful(true);
result.setResponseMessage("test success from host: " + InetAddress.getLocalHost().getHostName());
} catch (Exception ex) {}
return result;
}
The test plan imx file generated is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="4.0" jmeter="4.0 r1823414">
<org.apache.jorphan.collections.HashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Java Load Test Plan">
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
</TestPlan>
<org.apache.jorphan.collections.HashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group">
<intProp name="ThreadGroup.num_threads">2</intProp>
<intProp name="ThreadGroup.ramp_time">2</intProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController">
<boolProp name="LoopController.continue_forever">false</boolProp>
<intProp name="LoopController.loops">1</intProp>
</elementProp>
</ThreadGroup>
<org.apache.jorphan.collections.HashTree>
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Jmeter_LoadTest_DummyTest">
<elementProp name="arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="SleepTime" elementType="Argument">
<stringProp name="Argument.name">SleepTime</stringProp>
<stringProp name="Argument.value">1000</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="classname">DummyTest</stringProp>
</JavaSampler>
<org.apache.jorphan.collections.HashTree/>
</org.apache.jorphan.collections.HashTree>
</org.apache.jorphan.collections.HashTree>
</org.apache.jorphan.collections.HashTree>
</jmeterTestPlan>
Appreciate any help!
Thanks,
Alex
Iâm using Jmeter 4.0 and trying to use the remote testing feature, with the remote slave being ready (using same 4.0 version as master; firewall turned off; ./bin/jmeter-server started).
When master driver program triggers the test, I can see the slave console showing starts and finishes the test, however master driver program just hangs there. Not sure what is causing this, could someone give me any pointer?
My JAVA driver code:
ClientJMeterEngine jmeter = new ClientJMeterEngine(REMOTE_HOST_ADDR);
HashTree testPlanTree = new HashTree();
Map<String, Integer> testClassMap = getAllTestClasses();
//logic to form the core test plan tree
addLoadTestToTestPlan(testPlanTree, testClassMap, SAMPLE_SLEEP_TIME);
SaveService.saveTree(testPlanTree, new FileOutputStream(TEST_PLAN));
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
// Store execution results into a .jtl file
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(REPORT_FILE);
testPlanTree.add(testPlanTree.getArray()[0], logger);
// Run Test Plan
jmeter.configure(testPlanTree);
jmeter.runTest();
The trivial test class which implements JavaSamplerClient doesnât really do much in the runTest() logic (no logic in setup/tearDown):
public SampleResult runTest(JavaSamplerContext context) {
SampleResult result = new SampleResult();
result.sampleStart();
try {
result.sampleEnd();
result.setSuccessful(true);
result.setResponseMessage("test success from host: " + InetAddress.getLocalHost().getHostName());
} catch (Exception ex) {}
return result;
}
The test plan imx file generated is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="4.0" jmeter="4.0 r1823414">
<org.apache.jorphan.collections.HashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Java Load Test Plan">
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
</TestPlan>
<org.apache.jorphan.collections.HashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group">
<intProp name="ThreadGroup.num_threads">2</intProp>
<intProp name="ThreadGroup.ramp_time">2</intProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController">
<boolProp name="LoopController.continue_forever">false</boolProp>
<intProp name="LoopController.loops">1</intProp>
</elementProp>
</ThreadGroup>
<org.apache.jorphan.collections.HashTree>
<JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Jmeter_LoadTest_DummyTest">
<elementProp name="arguments" elementType="Arguments">
<collectionProp name="Arguments.arguments">
<elementProp name="SleepTime" elementType="Argument">
<stringProp name="Argument.name">SleepTime</stringProp>
<stringProp name="Argument.value">1000</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="classname">DummyTest</stringProp>
</JavaSampler>
<org.apache.jorphan.collections.HashTree/>
</org.apache.jorphan.collections.HashTree>
</org.apache.jorphan.collections.HashTree>
</org.apache.jorphan.collections.HashTree>
</jmeterTestPlan>
Appreciate any help!
Thanks,
Alex