使用程序(JAVA CODE)运行Jmeter测试后,如何保存结果集?
问题内容:
我已经在使用Java代码的Eclipse中使用Jmeter依赖关系运行了Jmeter脚本,所幸的是,我的脚本运行良好,但是现在我无法存储相同的结果。谁能告诉我我该如何实现?请参阅以下我尝试过的代码。
package com.solitera.automation.controller;
import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
import java.io.File;
import java.io.FileInputStream;
public class JMeterFromExistingJMX {
public static void main(String[] argv) throws Exception {
// JMeter Engine
StandardJMeterEngine jmeter = new StandardJMeterEngine();
// Initialize Properties, logging, locale, etc.
JMeterUtils.loadJMeterProperties("D:/apache-jmeter-5.1.1/bin/jmeter.properties");
JMeterUtils.setJMeterHome("D:/apache-jmeter-5.1.1");
JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
JMeterUtils.initLocale();
// Initialize JMeter SaveService
SaveService.loadProperties();
// Load existing .jmx Test Plan
/* FileInputStream in = new FileInputStream("D:/Ecllipse_project_workspace2/slt_automation/src/test/jmeter/slt_autoMa_Test.jmx");
HashTree testPlanTree = SaveService.loadTree(in);
in.close();*/
HashTree testPlanTree = SaveService.loadTree(new File("D:/apache-jmeter-5.1.1/extras/slt_auto_test_java_blaze_script.jmx"));
// Run JMeter Test
jmeter.configure(testPlanTree);
jmeter.run();
}
}
问题答案:
我自己解决了。
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
String logFile = "D:/apache-jmeter-5.1.1/extras/resultss.xml";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(logFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);