2014-09-23 49 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