Ранее я задавал вопрос о том, как регистрировать результаты после запуска теста jmeter с помощью программы java, а затем я получил это сам, поэтому я собираюсь поделиться ссылкой на этот вопрос с ответом для будущих ссылок. , Итак, вот ссылка ... Как сохранить набор результатов после запуска Jmeter Test с помощью программы (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, тогда сценарий работает нормально.