马上要国庆了,最近比较忙,但是感觉忙的效率很一般,之前写过ant的集成,这两天研究了下maven,其中核心的插件便是jmeter-maven-plugin,要想了解更多的朋友,可以自行去官网wiki学习,地址:https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki。下面是我实践的下记录,供参考。
jdk、jmeter、maven这些软件的安装以及环境变量的设置我这里不做介绍,只要在命令窗口分别输入jmeter -v 、java -version、mvn -v。能分别出来相应的版本说明环境没问题。
eclipse部分
1. 首先是打开eclipse,新建一个maven项目。
2. 依次在工程的src/test目录下新建jmeter文件夹和resources文件夹,然后将自己写的jmeter脚本放在jmeter文件夹下,生成报告的模版文件/meter.results.shanhe.me.xsl放在resources文件夹下
3. 如果properties文件有过更改,则把相关的propertie文件也复制到jmeter文件夹里,见上图,否自系统会使用默认的jmeter文件
maven部分
1.最好maven能连上公司的私服,这样下载jar会快点,下面是我maven的conf文件配置。
F:\mywork\apache-maven-3.0.4-m2\repository false myProfile myRepository Repository for me http://192.168.100.10/nexus/content/groups/public/ sonar jdbc:mysql://localhost:3306/sonar com.mysql.jdbc.Driver sonar sonar http://localhost:9000 jdk-1.7 true 1.7 1.7 1.7 1.7 myProfile sonar always
2. 下面是关键的部分,即maven的pom文件配置。
4.0.0 mavenjmeter maven2jmeter 0.0.1-SNAPSHOT jar maven2jmeter http://maven.apache.org UTF-8 ${env.WORKSPACE}/Report/${env.BUILD_ID}/jtl ${env.WORKSPACE}/Report/${env.BUILD_ID}/html com.lazerycode.jmeter jmeter-maven-plugin 2.1.0 com.jmeter.chajian:jmeter-plugins-json:2.6 com.smrz:smrz-utils:1.0 xml true false testmaven1.jmx testmaven2.jmx ${jmeter.result.jtl.dir} jmeter-tests verify jmeter org.codehaus.mojo xml-maven-plugin 1.0-beta-3 verify transform ${jmeter.result.jtl.dir} src\test\resources\jmeter.results.shanhe.me.xsl ${jmeter.result.html.dir} html net.sf.saxon saxon 8.7
这里需要对pom文件做几点说明。
1. jmeter-maven-plugin插件的版本号一定要和本地jmx文件生成的jmeter版本号对应,不然到时候会碰到com.thoughtworks.xstream.converters.ConversionException或者空指针异常。
2. testFilesIncluded提供了灵活的脚本执行选择方式,可以指定具体文件或目录,也可以使用正则表达式
3. 如果有多个jmx文件,会生成多个jtl日志文件,同时生成的html报告也会有多个,这点不如ant,ant会把多个jmx的文件汇总到一个html文件里面。
4. 如果有多个xsl报告模版文件,则可以配置多个transformationSet,maven会根据配置的transformationSet同时生成多个html报告,这点可以根据自己的需求选择5.增加jmeter官方第三方的扩展jar包,需要先将jar下载到本地,然后把该jar包注册到本地maven仓库,然后再调用即可,具体步骤是
- 下载插件到本地
- 解压后,将lib/ext中的jar包注册到本地maven仓库:命令为
mvn install:install-file -Dfile=D:\GIT\ZyzxAPIAutoTest\TXPTAPIAutoTest\plugns\jmeter-plugins-json.jar -DgroupId=com.jmeter.chajian -DartifactId=jmeter-plugins-json -Dversion=2.6 -Dpackaging=jar
- 在pom文件中,执行的时候将该文件复制到target的jmeter->lib->ext文件夹下,具体配置:
com.jmeter.chajian:jmeter-plugins-json:2.6 com.smrz:smrz-utils:1.0
- 自己写的jar包配置方法同上
执行部分
1. 打开命令窗口,进入到项目所在的路径,输入 mvn verify,或者在eclipse右键项目,run as->maven build…,输入verify命令。即可看到执行过程,最终build success后
2. 执行结果的所有文件,都会存放在target目录下,如:
jenkins集成部分
1. jenkins新建一个maven风格的项目,做如下配置,具体配置不再细说,和我之前的ant集成的文章类似,具体可以参考
1. 需要适当修改Root POM的pom文件位置,./代表jenkins的workspace的当前项目路径,因为我的maven2jmeter项目在git上还有上级目录,所以需要再加上maven2jmeter,如果从git拉取的直接是maven2jmeter项目,则不需要再加maven2jmeter,直接./pom.xml
2. html report路径是:Report/$BUILD_ID/html,$BUILD_ID代表动态根据每次的构建id,生成相应目录的文件夹,和pom文件的 <jmeter.result.html.dir>${env.WORKSPACE}/Report/${env.BUILD_ID}/html</jmeter.result.html.dir>对应
效果图
参考部分
1. 文中所用的的例子demo已上传至github:https://github.com/qiaoyeye/ApiautoTest.git
2. xsl转换报告插件官网:http://www.mojohaus.org/xml-maven-plugin/examples/transform-basic.html
3. jmeter-maven-plugin官网:https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki
4. 参考博客:http://blog.csdn.net/xujiamin123456/article/details/77451660