通过Java代码运行jmeter时如何通过自定义属性而不编辑jmx文件

我已经尽力了,但是我没有运气寻找解决方案。基本上,我需要通过java代码运行Jmeter时传递

,而无需在jmx文件中添加任何内容(就像通过命令行运行时一样)。我有一些尝试过的jmeter属性函数(StandardJmeterEngine

setProperty,JmeterUtils

setProperty),但仍然无济于事。我已经看到了一些解决方案,例如将属性文件传递给代码,但是似乎未读取属性文件。

顺便说一句,最简单的方法是通过Java代码与属性一起创建jmx文件,但是运行现有jmx文件时需要传递该属性。

public class TestRunJmxJava {

@Test

public static void executeScript() throws IOException, BiffException, JMeterEngineException {

String slash = System.getProperty("file.separator");

StandardJMeterEngine jmeter = new StandardJMeterEngine();

String jmeterPath = "C:"+slash+"jmeter"+slash+"bin"+slash+"jmeter.properties";

String uPath = "C:"+slash+"jmeter"+slash+"bin"+slash+"jd.properties";

System.out.println(jmeterPath);

JMeterUtils.setJMeterHome("C:\\jmeter");

JMeterUtils.loadJMeterProperties(jmeterPath);

JMeterUtils.loadProperties(uPath);

JMeterUtils.getSearchPaths();

JMeterUtils.initLogging();

JMeterUtils.initLocale();

SaveService.loadProperties();

File in = new File(System.getProperty("user.dir")+slash+"jmxfolder"+slash+"TestJmeterRun.jmx");

HashTree testPlanTree = SaveService.loadTree(in);

jmeter.configure(testPlanTree);

FileServer.getFileServer().setBasedir(System.getProperty("user.dir")+slash+"jmxfolder");

System.out.println(FileServer.getFileServer().getBaseDir());

Summariser summer = null;

String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");//$NON-NLS-1$

if (summariserName.length() > 0) {

summer = new Summariser(summariserName);

}

String logFile = "C:\\Users\\JD\\Desktop\\sample2.jtl";

ResultCollector logger = new ResultCollector(summer);

logger.setFilename(logFile);

testPlanTree.add(testPlanTree.getArray()[0], logger);

jmeter.run();

jmeter.exit();

}

}

回答:

您可以为此使用“常规”

Java系统属性,可以通过不同方式设置它们:

  • 通过 system.properties 文件(位于JMeter安装的“ bin”文件夹中
  • 通过-D命令行参数传递给Java可执行文件

    java -Dfoo=bar -jar /path/to/your/test.jar

  • 通过调用System.setProperty()方法通过Java代码

    System.setProperty("foo", "bar");

在所有情况下,您都应该能够像访问属性值${__P(foo,)}(确保将其包含ApacheJMeter_functions.jar在项目类路径中)

更多信息:

  • 配置JMeter
  • Apache JMeter属性定制指南

以上是 通过Java代码运行jmeter时如何通过自定义属性而不编辑jmx文件 的全部内容, 来源链接: utcz.com/qa/408450.html

回到顶部