2014-09-23 52 views
0

如何从Java代码运行JMeter测试用例?如何从Java代码执行JMeter测试用例

我遵循了Blazemeter.com的例子Here

我的代码如下:

public class BasicSampler { 

public static void main(String[] argv) throws Exception { 
    // JMeter Engine 
    StandardJMeterEngine jmeter = new StandardJMeterEngine(); 

    // Initialize Properties, logging, locale, etc. 
    JMeterUtils.loadJMeterProperties("/home/stone/Workbench/automated-testing/apache-jmeter-2.11/bin/jmeter.properties"); 
    JMeterUtils.setJMeterHome("/home/stone/Workbench/automated-testing/apache-jmeter-2.11"); 
    JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level 
    JMeterUtils.initLocale(); 

    // Initialize JMeter SaveService 
    SaveService.loadProperties(); 

    // Load existing .jmx Test Plan 
    FileInputStream in = new FileInputStream("/home/stone/Workbench/automated-testing/apache-jmeter-2.11/bin/examples/CSVSample.jmx"); 
    HashTree testPlanTree = SaveService.loadTree(in); 
    in.close(); 

    // Run JMeter Test 
    jmeter.configure(testPlanTree); 
    jmeter.run(); 
} 

}

,但我不断收到在控制台下面的消息,我的测试从来没有执行。

INFO 2014年9月23日12:04:40.492 [jmeter.e]():04:监听器将被使能运行的版本 INFO 2014年9月23日12之后开始40.511 [jmeter.e] ():要恢复到以前的行为,定义jmeterengine.startlistenerslater =假

我也曾尝试注释掉jmeterengine.startlistenerslater =假从jmeter.properties文件

回答

2
  1. 你怎么知道你的“测试从不执行“?
  2. 什么是jmeter.log文件(它应该在您的项目的根目录中)。或可替换地评论JMeterUtils.initLogging()网上看到在STDOUT全力输出
  3. 有你在“获取用户信息” CSV数据集配置改变后的相对路径CSVSample_user.csv,因为它可能会解决到不同的位置,因为它在Using CSV DATA SET CONFIG
  4. 推荐的是CSVSample.jtl文件生成的任何地方(默认情况下它应该在你的项目的根目录中)?里边啥啊?

的代码看起来不错,我敢肯定,这个问题是与路径CSVSample_user.csv文件,你必须在你的日志类似java.io.FileNotFoundException。请仔细检查CSVSample.jmx文件是否包含有效完整路径到CSVSample_user.csv。

UPDATE解答默认

  • 展望CSVSample.jmx Eclipse工作区文件夹下的注释中质询

    1. jmeter.log文件应该有它~/CSVSample.jtl
    2. 下配置的存储结果 View Resulst in Table监听器
    3. 如果您想查看摘要消息和“经典”.jtl报告,请在jmeter.configure(testPlanTree);节之前添加接下来的几行

      Summariser summer = null; 
      String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary"); 
      if (summariserName.length() > 0) { 
          summer = new Summariser(summariserName); 
      } 
      
      String logFile = "/path/to/jtl/results/file.jtl"; 
      ResultCollector logger = new ResultCollector(summer); 
      logger.setFilename(logFile); 
      testPlanTree.add(testPlanTree.getArray()[0], logger); 
      
  • +0

    谢谢你,这是你怀疑,java.io.FileNotFoundException,它正在寻找在Eclipse的工作空间的CSV文件,项目文件夹。问题是没有创建jmeter.log,我能够看到一次注释掉JMeterUtils.initLogging()行的日志。 – 2014-09-25 09:20:59

    +0

    如何确保创建了jmeter.log? 结果存储在哪里?我看不到.jtl文件 – 2014-09-25 09:22:42