String jmeterHome = "D:/tmp/apache-jmeter-3.3";
StandardJMeterEngine jmeter = new StandardJMeterEngine();
JMeterUtils.loadJMeterProperties(jmeterHome + "/jmeter.properties");
JMeterUtils.setJMeterHome(jmeterHome);
JMeterUtils.initLocale();
SaveService.loadProperties();
File script = new File(jmeterHome + "/http_localhost.jmx");
HashTree testPlanTree = SaveService.loadTree(script);
Summariser summer = null;
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");
if (summariserName.length() > 0) {
summer = new Summariser(summariserName);
}
String logFile = jmeterHome + "/file.jtl";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(logFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);
jmeter.configure(testPlanTree);
jmeter.run();
在JMeter的GUI中的「線程組」配置我的設置「線程數」從Java代碼執行的JMeter腳本成爲「$ {__ P(xxx,20)}」。它在GUI中工作正常 - 我可以執行默認值爲「20」的腳本。但上面的代碼不會啓動任何線程。 Java代碼打印它試圖啓動零線程。
我看到Jmeter functions don't executing when calling from java code和我有以下依賴性在我的項目
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_http</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>3.3</version>
</dependency>
是你的應用程序jar包含的依賴關係嗎?或者你如何運行它? –
我正在使用maven運行它,我發現JMeter想要在類路徑中有一個名爲「ApacheJMeter_functions.jar」的庫,它不能是「ApacheJMeter_functions-3.3.jar」,即使這些文件是二進制文件也是如此 – user1657972