maven - 如何使用 jmeter.maven.plugin 使用多个输入文件运行多个 jmeter .jmx 测试
问题描述
我需要能够使用 mvn 和 jmeter-maven-plugin 从詹金斯运行 jmeter 测试。
这是文件设置:
test_dev.jmx
test_dev.txt
test_dev_regression.jmx
test_dev_regression.txt
这是 mvn 命令使用的 pom 文件(如下):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>JmeterTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>JMeter Example </name>
<properties>
<input.jmx.folder>${project.basedir}/src/test/jmeter</input.jmx.folder>
<input.jmx.file>test_${Environment}.jmx</input.jmx.file>
<input.csv>${project.basedir}/src/test/jmeter/test_${Environment}.txt</input.csv>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.9.0</version>
<configuration>
<propertiesUser>
<threadgroup00.dataFile>${input.csv}</threadgroup00.dataFile>
</propertiesUser>
<testFilesIncluded>
<!-- If spcified, only particular file will be processed. -->
<jMeterTestFile>${input.jmx.file}</jMeterTestFile>
</testFilesIncluded>
<testResultsTimestamp>false</testResultsTimestamp>
<!-- This will pick up all the jmx file at below folder. -->
<testFilesDirectory>${input.jmx.folder}</testFilesDirectory>
<generateReports>true</generateReports>
<resultsFileFormat>csv</resultsFileFormat>
</configuration>
<executions>
<execution>
<id>jmeter-tests</id>
<phase>test</phase>
<goals>
<goal>jmeter</goal>
<goal>results</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
这是我们用来运行测试的命令:
mvn verify -DEnvironment=$TEST_ENVIRONMENT
如您所见,目前没有运行回归测试。我想将回归测试和它的输入文件添加到这个 pom 中,以便两个测试一个接一个地运行。对我来说最重要的是<threadgroup00.dataFile>
财产。这里需要指定什么来使用另一个输入文件进行回归测试?或者有没有另一种方法可以使用这个框架运行多个输入的多个测试?
提前致谢!
解决方案
从 3.0.0 版开始,您现在应该能够执行此操作,显示设置的示例执行块是:
<executions>
<execution>
<id>configuration-one</id>
<goals>
<goal>configure</goal>
</goals>
<configuration>
<resultsFileFormat>xml</resultsFileFormat>
</configuration>
</execution>
<execution>
<id>configuration-two</id>
<goals>
<goal>configure</goal>
</goals>
<configuration>
<resultsFileFormat>csv</resultsFileFormat>
</configuration>
</execution>
<execution>
<id>performance test one</id>
<goals>
<goal>jmeter</goal>
</goals>
<configuration>
<selectedConfiguration>configuration-one</selectedConfiguration>
<testFilesIncluded>
<jMeterTestFile>test1.jmx</jMeterTestFile>
</testFilesIncluded>
</configuration>
</execution>
<execution>
<id>performance test two</id>
<goals>
<goal>jmeter</goal>
</goals>
<configuration>
<selectedConfiguration>configuration-two</selectedConfiguration>
<testFilesIncluded>
<jMeterTestFile>test2.jmx</jMeterTestFile>
</testFilesIncluded>
</configuration>
</execution>
</executions>
显示此行为的 IT 测试(上述执行示例取自)可在此处获得。
推荐阅读
- hsm - Thales HSM 中的 GC 和 FK 命令
- javascript - 如何根据不同的客户端更改json对象的键
- c# - 我如何在 mongodb 中对结果搜索进行排名
- php - 解析文件名,重命名文件,然后移动到另一个目录
- javascript - 在 componentDidMount 中设置状态时,React 应用程序不显示来自 api 的数据
- html - 选择小部件“折叠”下方的选项消失
- c - mov指令x86上的分段错误
- java - HTTP 状态 500 – 实例化 servlet 类 [NewServlet] 的内部服务器错误
- javascript - 在进度条上停止循环
- asp.net-core - openiddict-core refresh_token 使用遗留代码发布的令牌