2016-05-13 65 views
0

我想通过java运行jmeter。 来自https://www.blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui的示例如何通过java传递JMeter属性

我上传了jmx文件,如示例中所述。

在jmx文件中我有属性。属性指定像$ {__属性(0_users ,, 0)}

我管理通过使用-J参数通过命令行上传此属性。

如何通过java指定参数。我没有找到任何有关这方面的信息。

是否存在某种方式直接在java中指定它? StandardJMeterEngine jmeter = new StandardJMeterEngine();

// Initialize Properties, logging, locale, etc. 
    JMeterUtils.loadJMeterProperties("C:\\jMeter\\apache-jmeter-2.13\\bin\\jmeter.properties"); 
    JMeterUtils.setJMeterHome("C:\\jMeter\\apache-jmeter-2.13"); 

    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 
    File jmxFile = new File("C:\\jMeter\\test.jmx"); 
    HashTree testPlanTree = SaveService.loadTree(jmxFile); 

    jmeter.configure(testPlanTree); 
    jmeter.run(); 

回答

0

上述连接状态:

// Initialize Properties, logging, locale, etc 
JMeterUtils.loadJMeterProperties("/path/to/your/jmeter/bin/jmeter.properties"); 

所以,你可以定义需要直接在jmeter.propertiesuser.properties文件的属性 - 他们生活在JMeter的 “bin” 文件夹像:

0_users=50 
foo=bar 

最后你总是有可能回落到Java Properties。如果您打算创建一个Java可执行文件,你可以切换到__Beanshell()功能,如:

${__BeanShell(System.getProperty("0_users"))} 

可以通过-D命令行参数提供的属性值,如:

your_binary -D0_users=50 

或再次,你可以设置通过价值system.properties文件。

请记住,您需要在您的CLASSPATH中有ApacheJMeter_functions.jar库,以正确评估任何JMeter功能。

有关使用JMeter属性的全面信息,请参阅Apache JMeter Properties Customization Guide

+0

将我所有的属性保存到jmeter.properties文件中。我可以在没有-J参数的情况下从命令行运行jmeter。但是,当我从Java运行Jmeter时,参数不会被检索。 – saltex

+0

添加了我运行jmeter运行的代码。 – saltex

+0

你能说我做错了吗? – saltex