I have executed jmeter script through java, however I am not able to get output in java. Could you please help me in that.
Regards Pankaj
Most probably you need to add Summarizer to your class, this way you will get normal console output regarding the test progress via Summarizer and will be able to configure the results file location via ResultCollector.
Example code:
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
String resultFile = "/path/to/test/result.jtl";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(resultFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);
Full class just in case:
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
import java.io.File;
public class ExistingTest {
public static void main(String[] args) throws Exception {
StandardJMeterEngine jmeter = new StandardJMeterEngine();
JMeterUtils.loadJMeterProperties("/path/to/your/jmeter/bin/jmeter.properties");
JMeterUtils.setJMeterHome("/path/to/your/jmeter");
JMeterUtils.initLocale();
SaveService.loadProperties();
HashTree testPlanTree = SaveService.loadTree(new File("/path/to/your/jmeter/extras/Test.jmx"));
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
String resultFile = "/path/to/test/result.jtl";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(resultFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);
jmeter.configure(testPlanTree);
jmeter.run();
}
}