有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

gradle JMeter函数${u_time()}在运行时不工作。在Java中使用StandardJMeterEngine的jmx

HTTP请求体中嵌入的JMeter函数${u_time()}在运行时不起作用。jmx通过java。在JMeter GUI中运行测试时,它工作得非常好。有人能提供一些建议吗? 我甚至尝试将这个函数分配给JMeterGUI中的一个变量,然后在json正文中使用该变量,但它在GUI中工作,但在运行时不工作。jmx文件通过Java,我的API响应400个错误的请求意味着不正确的正文

Jmeter GUI中的HTTP请求Json正文:

{"UniqID" : ${__time()}}

我的Java代码:

JMeterUtils.loadJMeterProperties("../bin/jmeter.properties");
JMeterUtils.setJMeterHome("../jMeter");
JMeterUtils.initLocale();
SaveService.loadProperties();
File jmxFile = new File(".../test.jmx");
HashTree testPlanTree = SaveService.loadTree(jmxFile);
StandardJMeterEngine jMeterEngine = new StandardJMeterEngine();
jMeterEngine.configure(testPlanTree);
jMeterEngine.
jMeterEngine.run();
jMeterEngine.exit();

更新:

我复制了ApacheJMeter_函数。来自gradle本地文件夹的jar。。\用户\。gradle\caches\modules-2\files-2.1\org。阿帕奇。jmeter\ApacheJMeter_函数\to/jMeter/lib/ext,这是我在上面的代码中设置的jMeter主路径中的一个子目录,它起作用了

但现在的问题是,我如何通过gradle依赖实现这一点,而不是通过向jMeter home添加实际的jar,因为我无法将jar文件上传到git


共 (1) 个答案

  1. # 1 楼答案

    我在jmeter中遇到了一个路径变量search_path。属性文件,需要设置为jmeter_函数jar的路径,但随后出现了一个新问题:如何将gradle dependency下载为java。班path只给了我一条薄薄的罐子路径。因此,在花了很多天寻找解决方案后,终于能够创建以下解决方案:

    task myTest(type: JavaExec) {
        ...someCode...
    
        doFirst {
            args = [sourceSets.test.runtimeClasspath.filter {File f ->
                f.name.matches("(.*)ApacheJMeter_functions(.*)")}.asPath]
        }
    }
    

    然后我在java代码中使用上述参数值来设置seach_路径,如下所示

    JMeterUtils.loadJMeterProperties("../bin/jmeter.properties");
    JMeterUtils.setJMeterHome("../jMeter");
    
    String jMeterClassPath = args[0];
    JMeterUtils.setProperty("search_paths",jMeterClassPath);
    
    JMeterUtils.initLocale();
    SaveService.loadProperties();
    File jmxFile = new File(".../test.jmx");
    HashTree testPlanTree = SaveService.loadTree(jmxFile);
    StandardJMeterEngine jMeterEngine = new StandardJMeterEngine();
    jMeterEngine.configure(testPlanTree);
    jMeterEngine.
    jMeterEngine.run();
    jMeterEngine.exit();