【问题标题】:How to run a JMeter JMX file in Java code?如何在 Java 代码中运行 JMeter JMX 文件?
【发布时间】:2019-05-20 19:15:50
【问题描述】:

我正在尝试通过我的 Spring Boot 应用程序从 Java 代码运行 JMeter MS SQL 数据库测试计划,但它显示以下错误:

我已经在 J​​Meter 中加载了插件管理器并将其放入 jmeter/lib/ext 文件夹并安装了所有必需的插件。

运行JMeter测试用例的Java代码:

package com.example.demofin;

import java.io.File;

import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.reporters.ResultCollector;
import org.apache.jmeter.reporters.Summariser;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

import com.example.demofin.config.Properties;

@Component
public class Demofin implements CommandLineRunner {

    @Autowired
    private Properties properties;

    private Summariser result;

    @Override
    public void run(String... args) throws Exception {
        for(String i : args)
            System.out.println(i);
          // String j = properties.getPropertyByKey("JMETER_HOME");
           String j="D:\\apache-jmeter-4.0";
//         System.out.println(j);
           //System.out.println("Jmeter home path: " + properties.getPropertyByKey("JMETER_HOME"));

               StandardJMeterEngine jmeter = new StandardJMeterEngine();       
//           // Initialize Properties, logging, locale, etc.        
             JMeterUtils.setJMeterHome(j);
             JMeterUtils.loadJMeterProperties(j+"/bin/jmeter.properties");
//          
//           // you can comment this line out to see extra log messages of i.e. DEBUG level  
             JMeterUtils.initLogging();  
             JMeterUtils.initLocale();  

             // Initialize JMeter SaveService  
             SaveService.loadProperties();  

             // Load existing .jmx Test Plan  
             HashTree testPlanTree = SaveService.loadTree(new File("D:\\apache-jmeter-4.0\\" + "bin\\JDBC Connection Configuration.jmx"));  

             Summariser summer = null;  
             String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary");  

             if (summariserName.length() > 0) {  
               summer = new Summariser(summariserName);  
             }  

         ResultCollector logger = new ResultCollector(summer);  
         testPlanTree.add(testPlanTree.getArray()[0], logger);  
             // Run JMeter Test  
             jmeter.configure(testPlanTree);  
         jmeter.run();  
         result = summer;
    }
}

【问题讨论】:

  • 如果您想执行您的测试,您也可以查看 jmeter-maven。

标签: java spring-boot jmeter jmeter-plugins


【解决方案1】:

通常我们将java代码编译成jar,然后push到jmeter/lib/ext,在Jmeter中使用。

如果您尝试在java中使用Jmeter,我建议您下载JMeter的源代码并合并到您的项目中。

【讨论】:

  • 但其他测试计划并非如此,它唯一引发此类问题的 mssql 测试计划,所有其他测试计划都可以通过提供的 java 代码完美运行。同样的测试计划也可以正常工作如果我通过 jmeter GUI 运行它。它只是引发 mssql 测试计划问题的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-19
  • 2014-12-31
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多