Как установить файл CSV в коде java, запустив тест Jmeter с помощью программы (код Java)? - PullRequest
2 голосов
/ 21 января 2020

Ранее я задавал вопрос о том, как регистрировать результаты после запуска теста 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.

enter image description here

enter image description here

enter image description here

Файл CSVData.csv:

enter image description here

ПРИМЕЧАНИЕ: Весь этот сценарий я пытаюсь выполнить с помощью кода Java, который я предоставил выше. Если я запускаю без файла CSV только с одним логином пользователя и задаю № потоков = 3, тогда сценарий работает нормально.

1 Ответ

0 голосов
/ 21 января 2020

Просто удалите все из раздела «Имена переменных» Конфигурации набора данных CSV:

enter image description here

, и ваша установка должна начать работать, как ожидалось. Если для «Ignore first line» установлено значение False, а первая строка вашего CSV-файла - это заголовок, а не данные, которые вам не нужны для установки имен переменных, JMeter сделает это автоматически.

Вам также не нужно это CSVDataSet объявление / конфигурация в коде, потому что:

  1. Он не настроен правильно
  2. Это не не добавляйте никаких значений, поскольку вы не добавляете их в План тестирования

Дополнительная информация: Использование CSV DATA SET CONFIG

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...