我现在使用jMeter已经有一段时间了,但这是我第一次想从我自己的代码开始几个jMeter测试。
基本上,我从这里复制:5种方法启动jmeter测试不使用jmeter gui
已经用包含两个变量的GUI创建了jmx文件。
HTTP采样器包含"服务器名称或IP"字段:
$ {__P(服务器)}
Path字段包含:
/$ {__P(目标)}
jmeter中相应的表项。属性文件如下:
server=127.0.0.1
target=README
在jMeter中运行时,两个值都被替换,并传递正确的URL。当在运行时在我的java代码中访问这两个属性时,它会产生正确的结果。
当jMeter试图替换我的值时,我得到这个消息:
"Not running version, return raw function string"
我试图在jmeter源中跟踪问题,但没有得到结果。
我使用的Java代码是:public static void main(String[] args) throws IOException {
StandardJMeterEngine jmeter = new StandardJMeterEngine();
JMeterUtils.loadJMeterProperties("C:\data\apache-jmeter-2.13\bin\jmeter.properties");
JMeterUtils.setJMeterHome("C:\data\apache-jmeter-2.13");
JMeterUtils.initLocale();
System.out.println("Property: " + JMeterUtils.getProperty("server"));
SaveService.loadProperties();
FileInputStream in = new FileInputStream("c:\data\test.jmx");
HashTree testPlanTree = SaveService.loadTree(in);
in.close();
jmeter.configure(testPlanTree);
jmeter.run();
}
任何帮助都非常感谢。
致以良好的问候,Jan
我遇到了完全相同的问题。有一个单独的jar工件,其中包含一对Function
,例如org.apache.jmeter.functions.Property2
。你需要确保这些被正确注册。
使用maven,我将这个添加到我的pom:
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>${jmeter.version}</version>
</dependency>
现在,告诉JMeter在其中搜索其他组件
JMeterUtils.setProperty("search_paths", "ApacheJMeter_functions-2.13.jar");
您添加到搜索路径中的字符串需要匹配在类路径中找到的工件。因此,当从eclipse启动时,它就是maven存储库中工件的路径。