簡體   English   中英

通過程序運行 Jmeter 測試后,結果不會與列名一起存儲在 CSV 文件中(Java 代碼)

[英]Results are not stored with a column names in CSV file after running the Jmeter test through a program (Java Code)

我已經成功地使用一個程序運行了 Jmeter 測試,即用 java 代碼編寫的。 我也在此處分享該問題解決方案的鏈接 =>如何通過使用程序(Java 代碼)運行 Jmeter 測試來在 Java 代碼中設置 CSV 文件?

現在,我在我的 CSV 文件中得到了結果,但該文件中的問題是,它沒有顯示列名,它只是獲取結果並將其存儲到文件中。 請參考下圖了解更多信息。

在此處輸入圖片說明

任何人都可以幫助我如何將結果與其列名一起存儲?

我的Java代碼是:

package com.automation;
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.testbeans.gui.TestBeanGUI;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JMeterUtils;  
import org.apache.jorphan.collections.HashTree;  

import java.io.File;  
import java.io.FileInputStream;  

public class JMeterFromExistingJMX {  

  public static void main(String[] argv) throws Exception {  

    //Set jmeter home for the jmeter utils to load  
    String jmeterHomelocation = "D:/apache-jmeter-5.1.1";  
    String jmeterPropertieslocation = jmeterHomelocation + "/bin/jmeter.properties";  

    // JMeter Engine  
    StandardJMeterEngine jmeter = new StandardJMeterEngine();  


    // Initialize Properties, logging, locale, etc.  
    JMeterUtils.loadJMeterProperties(new File(jmeterPropertieslocation).getPath());  
    JMeterUtils.setJMeterHome(new File(jmeterHomelocation).getPath());  
    // 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  
    FileInputStream in = new FileInputStream(new File(jmeterHomelocation + "extras/slt_autoMa_Test.jmx"));  
    HashTree testPlanTree = SaveService.loadTree(in);  
    in.close(); */ 

    HashTree testPlanTree = SaveService.loadTree(new File("D:/test-root/SLT/JmeterFiles/slt_auto_test_java_blaze_script.jmx"));

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

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

    String logFile = "D:/test-root/SLT/JmeterFiles/resultss.csv";
    ResultCollector logger = new ResultCollector(summer);  
    logger.setFilename(logFile);
    testPlanTree.add(testPlanTree.getArray()[0], logger);  

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

打開D:/apache-jmeter-5.1.1/bin/jmeter.properties文件並查找jmeter.save.saveservice.print_field_names行。

為了在 .jtl 結果文件中有標題行,需要將該屬性設置為true例如:

jmeter.save.saveservice.print_field_names=true

確保在屬性聲明之前沒有# sing。

參考:

您將需要刪除D:/test-root/SLT/JmeterFiles/resultss.csv的先前實例,就好像它不是空的一樣 - JMeter 不會添加標題,它只會在那里附加新結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM