我在Jmeter上有一个负载测试项目。我使用“ jmeter-maven-plugins”将项目放在应用程序目录旁边。我可以执行测试,但是未编写以下beanshell配置的某些ID:
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”文件具有填充线,但是我发现它为空。 Structure of the jmeter files. All "ids.csv" remain empty
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>
简而言之,我需要编写beanshell中要求的信息。