У меня есть проект нагрузочного теста на 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>
Короче говоря, мне нужна информация, запрошенная в бобовой оболочке, для записи.