使用Jenkins和Jmeter搭建性能测试平台
参考文档:http://blog.csdn.net/liuchunming033/article/details/52186157
jenkins的性能测试结果展现插件:https://wiki.jenkins-ci.org/display/JENKINS/Performance+Plugin
maven执行使用的jmeter插件:https://github.com/jmeter-maven-plugin/jmeter-maven-plugin
Jmeter-maven-plugin高级配置之选择测试脚本
在pom.xml文件中可以指定运行哪些jmx脚本。
运行所有的测试脚本
Jmeter默认运行${project.base.directory}/src/test/jmeter文件夹中的所有脚本,下面是示例。
1 <project> 2 [...] 3 <build> 4 <plugins> 5 <plugin> 6 <groupId>com.lazerycode.jmeter</groupId> 7 <artifactId>jmeter-maven-plugin</artifactId> 8 <version>1.9.0</version> 9 <executions> 10 <execution> 11 <id>jmeter-tests</id> 12 <phase>verify</phase> 13 <goals> 14 <goal>jmeter</goal> 15 </goals> 16 </execution> 17 </executions> 18 </plugin> 19 </plugins> 20 </build> 21 [...] 22 </project>
运行mvn verify
即可。
使用<testFilesIncluded>指定运行的脚本文件
我们可以通过<testFilesIncluded>这个标签来手动指定jmx文件。样例如下:
1 <plugin> 2 <groupId>com.lazerycode.jmeter</groupId> 3 <artifactId>jmeter-maven-plugin</artifactId> 4 <version>1.9.0</version> 5 <executions> 6 <execution> 7 <id>jmeter-tests</id> 8 <phase>verify</phase> 9 <goals> 10 <goal>jmeter</goal> 11 </goals> 12 <configuration> 13 <testFilesIncluded> 14 <jMeterTestFile>test1.jmx</jMeterTestFile> 15 <jMeterTestFile>test2.jmx</jMeterTestFile> 16 </testFilesIncluded> 17 </configuration> 18 </execution> 19 </executions> 20 </plugin>
当我们执行mvn verify
时,只有${project.base.directory}/src/test/jmeter文件夹中的test1.jmx、test2.jmx会执行。
在<testFilesIncluded>中使用正则表达式
<testFilesIncluded>标签支持正则表达式,下面的示例,指定以foo开头的所有jmx文件。
1 <plugin> 2 <groupId>com.lazerycode.jmeter</groupId> 3 <artifactId>jmeter-maven-plugin</artifactId> 4 <version>1.9.0</version> 5 <executions> 6 <execution> 7 <id>jmeter-tests</id> 8 <phase>verify</phase> 9 <goals> 10 <goal>jmeter</goal> 11 </goals> 12 <configuration> 13 <testFilesIncluded> 14 <jMeterTestFile>foo*.jmx</jMeterTestFile> 15 </testFilesIncluded> 16 </configuration> 17 </execution> 18 </executions> 19 </plugin>
使用<testFilesExcluded>标签反向指定jmx文件
我们还可以使用排除法,来指定不要运行${project.base.directory}/src/test/jmeter文件夹中的文件。样例:
1 <plugin> 2 <groupId>com.lazerycode.jmeter</groupId> 3 <artifactId>jmeter-maven-plugin</artifactId> 4 <version>1.9.0</version> 5 <executions> 6 <execution> 7 <id>jmeter-tests</id> 8 <phase>verify</phase> 9 <goals> 10 <goal>jmeter</goal> 11 </goals> 12 <configuration> 13 <testFilesExcluded> 14 <excludeJMeterTestFile>test3.jmx</excludeJMeterTestFile> 15 <excludeJMeterTestFile>test4.jmx</excludeJMeterTestFile> 16 </testFilesExcluded> 17 </configuration> 18 </execution> 19 </executions> 20 </plugin>
当我们运行mvn verify
时,${project.base.directory}/src/test/jmeter文件夹中除了test3.jmx和test4.jmx,其他的jmx文件都会执行。
<testFilesExcluded>标签使用正则表达式
反向指定jmx文件时,也可以使用正则表达式,样例:
1 <plugin> 2 <groupId>com.lazerycode.jmeter</groupId> 3 <artifactId>jmeter-maven-plugin</artifactId> 4 <version>1.9.0</version> 5 <executions> 6 <execution> 7 <id>jmeter-tests</id> 8 <phase>verify</phase> 9 <goals> 10 <goal>jmeter</goal> 11 </goals> 12 <configuration> 13 <testFilesExcluded> 14 <excludeJMeterTestFile>*bar.jmx</excludeJMeterTestFile> 15 </testFilesExcluded> 16 </configuration> 17 </execution> 18 </executions> 19 </plugin>
运行时,以bar结束的jmx文件都会排除在外。
<testFilesDirectory>标签指定jmx文件夹
我们还可以自定义jmx文件的位置(默认是${project.base.directory}/src/test/jmeter)。
1 <plugin> 2 <groupId>com.lazerycode.jmeter</groupId> 3 <artifactId>jmeter-maven-plugin</artifactId> 4 <version>1.9.0</version> 5 <executions> 6 <execution> 7 <id>jmeter-tests</id> 8 <phase>verify</phase> 9 <goals> 10 <goal>jmeter</goal> 11 </goals> 12 <configuration> 13 <testFilesDirectory>/scratch/testfiles/</testFilesDirectory> 14 </configuration> 15 </execution> 16 </executions> 17 </plugin>
各个配置含义及解读:https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/Advanced-Configuration