Jmeter+Maven+Jenkins实现简单性能自动化
对一个需要长期进行性能监测的接口,最好在每次代码变更之后都能快速做一次性能回归,比较与之前的性能是否发生变化,若发生较大变化能够及时通知开发,方便定位引起性能变化的代码。若不进行这样的监控,在发现系统性能变化时开发可能已经很难定位引起性能变化的代码变更。
使用jmeter对一个新接口进行性能测试,通常需要执行以下几个步骤:
使用jmeter的GUI创建测试计划
将测试计划放到服务器并用命令行执行
结果用jmeter GUI打开,得到详细的性能数据、重复设置多组线程数,寻找性能拐点等。
但是对接口做性能回归时,接口的性能基线已知(拐点的并发线程数及相应的性能数据),这时只需要测试拐点并发线程下的性能即可。只有当性能数据较之前有很大变化时,才可能需要再做一次全量的性能测试,得到新的性能基线。
基于以上的应用场景,本文主要介绍使用Jmeter+Maven+Jenkins实现性能测试的自动化回归,提升工作的效率,降低维护成本。
1
用Maven执行Jmeter压测脚本
Jmeter-maven-plugin是maven里用于运行jmeter的插件,该插件运行时会自动引入jmeter运行所需的类库,所以机器上不需要安装jmeter。对于Jmeter生成的jtl结果文件的解析maven中也已经有了相应的插件jmeter-analysis-maven-plugin。
A:创建maven工程
新建src/test/jmeter目录,将需要执行的jmx文件放在该目录下。Jmeter-maven-plugin插件默认运行${basedir}/src/test/jmeter目录下的所有jmx脚本。其中${basedir} 是maven的内置变量,表示项目根目录,下文中会用到的${project.build.directory} 变量表示构建目录,缺省为target目录。
在pom文件中添加如下插件设置,插件相关的标签设置在后面会详细介绍。
B:运行maven工程
在pom文件所在目录运行命令:mvn verify,通过控制台可以看到如下日志输出:
从日志可以看出,maven执行了jmeter-maven-plugin:1.9.0插件的jmeter目标,通过jmeter命令行执行了指定的jmx文件。