【问题标题】:jMeter won't replace properties (Not running version on)jMeter 不会替换属性(未运行版本)
【发布时间】:2015-10-09 23:14:50
【问题描述】:

我现在在 jMeter 上工作了很长时间,但这是我第一次想从我自己的代码中开始几个 jMeter 测试。

基本上,我是从这里复制过来的:5 ways to launch jmeter test without using jmeter gui

已使用包含两个变量的 GUI 创建了 JMX 文件。

HTTP 采样器包含在“服务器名称或 IP”字段中:

${__P(服务器)}

路径字段包含:

/${__P(目标)}

jmeter.properties 文件中的相应条目是:

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();
}

非常感谢任何帮助。

最好的问候,简

【问题讨论】:

    标签: user-interface properties jmeter


    【解决方案1】:

    我遇到了完全相同的问题。有一个单独的 jar 工件,其中包含几个 Functions,例如 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 存储库中工件的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 2012-03-16
      • 2011-11-25
      相关资源
      最近更新 更多