【发布时间】:2020-01-21 12:35:42
【问题描述】:
我之前曾问过如何在使用 java 程序运行 jmeter 测试后记录结果的问题,然后我自己得到了这个,所以我将分享该问题的链接和答案以供将来参考。所以这里是链接...How can I save a result set after running the Jmeter Test using a program (JAVA CODE)?
但现在我有另一个问题,如何设置 CSV 文件 这里有多个登录,我尝试了一些代码,但没有 如我所愿发生。谁能帮我解决这个问题?和 请查看我尝试过的以下代码。
package com.solitera.automation.controller;
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();
HashTree testPlanTree = SaveService.loadTree(new File("D:/apache-jmeter-5.1.1/extras/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);
}
CSVDataSet csvDataSet = new CSVDataSet();
csvDataSet.setName("CSV Data Set Config");
csvDataSet.setProperty("delimiter",",password,submitLogin,userName");
csvDataSet.setProperty("filename", "D:/apache-jmeter-5.1.1/extras/CSVData.csv");
csvDataSet.setProperty("ignoreFirstLine", false);
csvDataSet.setProperty("quotedData", false);
csvDataSet.setProperty("recycle", true);
csvDataSet.setProperty("shareMode", "shareMode.all");
csvDataSet.setProperty("stopThread", false);
csvDataSet.setProperty("variableNames", "foo");
csvDataSet.setProperty(TestElement.TEST_CLASS, csvDataSet.getClass().getName());
csvDataSet.setProperty(TestElement.GUI_CLASS, TestBeanGUI.class.getName());
String logFile = "D:/apache-jmeter-5.1.1/extras/resultss.xml";
ResultCollector logger = new ResultCollector(summer);
logger.setFilename(logFile);
testPlanTree.add(testPlanTree.getArray()[0], logger);
// Run JMeter Test
jmeter.configure(testPlanTree);
jmeter.run();
}
}
下面是我使用 Blazemeter 录制脚本并将其添加到 Jmeter GUI 的图像,请参阅相同的图像以了解我的 TestPlan 的实际外观。
CSVData.csv 文件:
注意: 我试图通过上面共享的 Java 代码运行整个脚本,如果我在没有 CSV 文件的情况下运行,只有一个用户登录并设置线程数 = 3然后脚本运行良好。
【问题讨论】:
-
你的 CSVData.csv 是什么样子的?
-
您好,上面已经添加了CSVData.csv文件图片,请参考。
标签: java jmeter jmeter-plugins jmeter-5.0 jmeter-maven-plugin