用户界面 - jMeter 不会替换属性(未运行版本)



我现在使用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存储库中工件的路径。

最新更新