Как написать в CSV-файл с помощью jmeter-maven-plugin - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть проект нагрузочного теста на Jmeter. Я поместил проект рядом с каталогом приложения, используя «jmeter-maven-plugins». Я могу выполнить тест, но некоторые идентификаторы, настроенные с помощью следующей оболочки, не записываются:

import java.io.FileWriter;
import java.util.Arrays;
import java.io.Writer;
import java.util.List;

//Default separator
char SEPARATOR = ',';

//function write line in csv
public void writeLine(FileWriter writer, String[] params, char separator)
{
   boolean firstParam = true;

   StringBuilder stringBuilder = new StringBuilder();
   String param = "";

   for (int i = 0; i < params.length; i++)
   {
      //get param
      param = params[i];
      log.info(param);

         //if the first param in the line, separator is not needed
       if (!firstParam) 
       {
           stringBuilder.append(separator);
       }

         //Add param to line
       stringBuilder.append(param);

       firstParam = false;
   }

   //prepare file to next line
   stringBuilder.append("\n");

   //add to file the line
   log.info(stringBuilder.toString());
   writer.append(stringBuilder.toString());

}
if(vars.get("idProcesso_1") != null) {
    //get path of csv file (creates new one if its not exists)
    String csvFile = vars.get("testPlanFileDir") + "/ids.csv"; // for example '/User/Downloads/blabla.csv'

    String[] params = {vars.get("idProcesso_1")};

    FileWriter fileWriter = new FileWriter(csvFile, true);
    writeLine(fileWriter, params, SEPARATOR);

    //proper close to file
    fileWriter.flush();
    fileWriter.close();

    vars.put("idProcesso_1", null);
}

После запуска теста я ожидал, что файл "ids.csv" будет иметь заполненную строку, но я нахожуэто пусто. Структура файлов jmeter. Все «ids.csv» остаются пустыми

Конфигурация профиля jmeter:

<profile>
            <id>jmeter</id>
            <properties>
                <maven.javadoc.skip>true</maven.javadoc.skip>
                <jmeter-tests-dir>${project.build.directory}/jmeter/</jmeter-tests-dir>
                <log-configs>${project.build.directory}/configs/logs/</log-configs>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>br.gov.capes</groupId>
                    <artifactId>capes-servicos-projeto-dependencies</artifactId>
                    <exclusions>
                        <exclusion>
                            <groupId>org.springframework.cloud</groupId>
                            <artifactId>spring-cloud-starter-eureka</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>
            </dependencies>
            <build>
                <testResources>
                    <testResource>
                        <directory>${project.basedir}/src/test/resources</directory>
                        <filtering>true</filtering>
                        <targetPath>${jmeter-tests-dir}</targetPath>
                        <includes>
                            <include>*.jmx</include>
                            <include>*.csv</include>
                        </includes>
                    </testResource>
                    <testResource>
                        <directory>${project.basedir}/src/test/resources</directory>
                        <filtering>false</filtering>
                        <targetPath>${log-configs}</targetPath>
                        <includes>
                            <include>logback-test.xml</include>
                            <include>application.properties</include>
                        </includes>
                    </testResource>
                </testResources>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skipExec>true</skipExec>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <configuration>
                            <skipExec>true</skipExec>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>com.lazerycode.jmeter</groupId>
                        <artifactId>jmeter-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>executar-jmeter</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>jmeter</goal>
                                </goals>
                                <configuration>
                                    <generateReports>true</generateReports>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>com.lazerycode.jmeter</groupId>
                            <artifactId>jmeter-maven-plugin</artifactId>
                            <version>2.9.0</version>
                            <configuration>
                                <jmeterVersion>5.1.1</jmeterVersion>
                                <testFilesDirectory>${jmeter-tests-dir}</testFilesDirectory>
                                <jmeterExtensions>
                                    <artifact>kg.apc:jmeter-plugins-json:2.7</artifact>
                                    <artifact>kg.apc:jmeter-plugins-table-server:2.4</artifact>
                                    <artifact>kg.apc:jmeter-plugins-casutg:2.9</artifact>
                                </jmeterExtensions>
                                <excludedArtifacts>
                                    <exclusion>commons-pool2:commons-pool2</exclusion>
                                    <exclusion>commons-math3:commons-math3</exclusion>
                                    <exclusion>org.slf4j:slf4j-nop</exclusion>
                                    <exclusion>logkit:logkit</exclusion>
                                    <exclusion>avalon-logkit:avalon-logkit</exclusion>
                                    <exclusion>jdom:jdom</exclusion>
                                    <exclusion>log4j:log4j</exclusion>
                                    <exclusion>commons-logging:commons-logging</exclusion>
                                    <exclusion>excalibur-logger:excalibur-logger</exclusion>
                                </excludedArtifacts>
                                <downloadExtensionDependencies>true</downloadExtensionDependencies>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>

Короче говоря, мне нужна информация, запрошенная в бобовой оболочке, для записи.

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