Jenkins中集成jmeter-maven插件
转自:http://my.oschina.net/u/1377774/blog/168969
目录[-]
- 第一步.先在maven工程中单独使用jmeter-maven插件
- 0.环境
- 1.在POM.xml文件加入
- 2.新建scr/test/jmeter目录(这是jmeter-maven插件默认找jmeter的jmx文件的位置,若要更改在POM中作配置),把已经测试好的jmeter文件如test1.jmx拷贝进去。
- 第二步.在Jenkins中集成使用jmeter-maven插件
- 0.环境
- 1.在安装Jenkins中安装Performance Plugin
- 2.在需要集成jmeter-maven插件的工程配置页面,构建后操作加入一个Publish Performance test result report,如图所示
- 3.在MAVEN Build的Goals中填入verify。
- 4.执行Jenkins构建,观察结果。
第一步.先在maven工程中单独使用jmeter-maven插件
0.环境
Windows7 64bit
SUN JDK 1.7 64bit
eclipse v3.7
m2e v1.0.100.20110804-1717
eclipse中外挂maven 3.02
注意: 由于jmeter-maven插件运行时自动会引入jmeter所需的类库,所以机器上不需要单独安装jmeter。
1.在POM.xml文件加入
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<build> ... <plugins> <plugin> <groupId>com.lazerycode.jmeter</groupId> <artifactId>jmeter-maven-plugin</artifactId> <version>1.8.2-SNAPSHOT</version> <configuration> <resultsFileFormat>xml</resultsFileFormat> <ignoreResultFailures>true</ignoreResultFailures> <testResultsTimestamp>false</testResultsTimestamp> </configuration> <executions> <execution> <id>jmeter-tests</id> <phase>verify</phase> <goals> <goal>jmeter</goal> </goals> </execution> </executions> <plugins> <span></span>...<build> |
如果出现找不到构件(artifact)的情况,考虑切换一下Maven Repository,最直接的方法是在POM中加入类似如下代码。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<pluginRepositories> <pluginRepository> <id>Codehaus repository</id> <url>http://repository.codehaus.org/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository></pluginRepositories> |
2.新建scr/test/jmeter目录(这是jmeter-maven插件默认找jmeter的jmx文件的位置,若要更改在POM中作配置),把已经测试好的jmeter文件如test1.jmx拷贝进去。
在Eclipse中Run Configurations -> Maven Build -> new中Goals输入框填入 verify,确定。
笔者在运行过程曾遇到异常
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
[ERROR] Failed to execute goal com.lazerycode.jmeter:jmeter-maven-plugin:1.8.1:jmeter (jmeter-tests) on project mytodo: Execution jmeter-tests of goal com.lazerycode.jmeter:jmeter-maven-plugin:1.8.1:jmeter failed. NullPointerException -> [Help 1]org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.lazerycode.jmeter:jmeter-maven-plugin:1.8.1:jmeter (jmeter-tests) on project mytodo: Execution jmeter-tests of goal com.lazerycode.jmeter:jmeter-maven-plugin:1.8.1:jmeter failed. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)Caused by: org.apache.maven.plugin.PluginExecutionException: Execution jmeter-tests of goal com.lazerycode.jmeter:jmeter-maven-plugin:1.8.1:jmeter failed. at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:116) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 moreCaused by: java.lang.NullPointerException at com.lazerycode.jmeter.JMeterAbstractMojo.setJMeterResultFileFormat(JMeterAbstractMojo.java:382) at com.lazerycode.jmeter.JMeterMojo.execute(JMeterMojo.java:43) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107) ... 20 more |
查找资料未解决后,找到com.lazerycode.jmeter.JMeterAbstractMojo类第382行中,setJMeterResultFileFormat中对应的代码:
|
1
2
3
4
5
6
7
8
9
10
|
protected void setJMeterResultFileFormat() { if (resultsFileFormat.toLowerCase().equals("csv")) { propertiesJMeter.put("jmeter.save.saveservice.output_format", "csv"); resultsOutputIsCSVFormat = true; } else { propertiesJMeter.put("jmeter.save.saveservice.output_format", "xml"); resultsOutputIsCSVFormat = false; }} |
断定是propertiesJMeter为null所致,为什么这个对象没初始化,答案目前不得而知。于是去github把jmeter-maven插件最新代码clone到本地,使用new初始化propertiesJMeter对象,在eclipse中重新打包,得到jmeter-maven-plugin-1.8.2-SNAPSHOT.jar,再把POM.xml中jmeter-maven-plugin插件版本从1.8.1更换为1.8.2-SNAPSHOT,再次运行mvn verify ,就看到打印出Build Success字样。
更多jmeter-maven插件帮助:https://github.com/Ronnie76er/jmeter-maven-plugin/wiki
第二步.在Jenkins中集成使用jmeter-maven插件
0.环境
CentOS Linux 6.0 x64
SUN JDK 1.7 64bit
Jenkins ver. 1.529
1.在安装Jenkins中安装Performance Plugin
2.在需要集成jmeter-maven插件的工程配置页面,构建后操作加入一个Publish Performance test result report,如图所示
说明:Performance report是指展现的报告种类,目前支持JMeter和JUnit
如果指定为JMeter需要指出JMeter测试结果集目录,**代表pom.xml所在目录
Performance threshold是指标记本次构建为Unstable和Failed时所需的最低测试错误百分比
3.在MAVEN Build的Goals中填入verify。

注意事项:如果JMeter性能测试比较耗时,就不能把它放在这里执行,因为它会导致Jenkins构建时间过长。对此,可提前手工使用命令执行,例如:
$ jmeter -n -p user.properties -t my_test_plan.jmx -l my_results.jtl
也可把它做成Linux Crontab脚本。还有一种方式是,利用Jenkins的周期性构建功能,勾选Build periodically复选框,设定一个定时执行间隔。
4.执行Jenkins构建,观察结果。

maven-jmeter-plugin使用 2011-06-17 10:42:28
步骤1:下载maven-jmeter-plugin的jar包和依赖pom
download:http://jmeter-maven-plugin.googlecode.com/files/maven-jmeter-plugin-1.0.zip
步骤2:安装到本地仓库或远端仓库
【注意】需要先修改jmeter的位置,因为很可能公司仓库中的jmeter和maven中央仓库中的有变化。调整jmeter依赖为:
- <dependency>
- <groupId>com.alibaba.external</groupId>
- <artifactId>apache.jmeter</artifactId>
- <version>2.3</version>
- </dependency>
安装语法:
- mvn deploy:deploy-file -DgroupId=org.apache.jmeter -DartifactId=maven-jmeter-plugin -Dversion=1.0 -Dpackaging=jar -Dfile=maven-jmeter-plugin-1.0.jar -DpomFile=maven-jmeter-plugin-1.0.pom -Durl=file://<repo dir>
deploy: mvn deploy:deploy-file -DgroupId=org.apache.jmeter -DartifactId=maven-jmeter-plugin -Dversion=1.0 -Dpackaging=jar -Dfile=maven-jmeter-plugin-1.0.jar -DpomFile=maven-jmeter-plugin-1.0.pom -Durl=file://D:\maven.repository
或-Durl=file://"C:\Documents and Settings\username\.m2\repository"
步骤3:在本地工程中引用jmeter plugin
- <plugin>
- <groupId>org.apache.jmeter</groupId>
- <artifactId>maven-jmeter-plugin</artifactId>
- <version>1.0</version>
- <executions>
- <execution>
- <id>jmeter-tests</id>
- <phase>verify</phase>
- <goals>
- <goal>jmeter</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <includes>
- <!--
- <include>druid-delete.jmx</include>
- -->
- <include>druid-insert.jmx</include><!--
- <include>druid-select.jmx</include>
- --></includes>
- <reportDir>target/jmeter-reports</reportDir>
- <jmeterUserProperties> for user properites </jmeterUserProperties>
- </configuration>
- </plugin>
Jenkins中集成jmeter-maven插件的更多相关文章
- jenkins中集成commander应用
jenkins中集成commander应用 jenkins 集成测试 promotion 最近参加公司的集成测试平台的开发,在开发中遇到了不少问题,两个星期的迭代也即将完成,在这也用这篇博客记录下开发 ...
- [译]MVC网站教程(四):MVC4网站中集成jqGrid表格插件(系列完结)
目录 1. 介绍 2. 软件环境 3. 在运行示例代码之前(源代码 + 示例登陆帐号) 4. jqGrid和AJAX 5. GridSettings 6. ...
- 基于Metronic的Bootstrap开发框架经验总结(18)-- 在代码生成工具Database2Sharp中集成对Bootstrap-table插件的分页及排序支持
在我们开发系统界面,包括Web和Winform的都一样,主要的界面就是列表展示主界面,编辑查看界面,以及一些辅助性的如导入界面,选择界面等,其中列表展示主界面是综合性的数据展示界面,一般往往需要对记录 ...
- Jenkins中集成Gcov代码覆盖率报告
最近终于把gcov代码覆盖报告集成到jenkins中了,总算是完成工作,写篇博客总结下. 我循序渐进地用了三个工具:gcov, lcov, gcovr 这三个工具原理(其实gcovr依赖于GNU的gc ...
- jenkins中Email Extersion Plugin插件使用说明点
在jenkins中使用第3方邮件插件Email Extersion Plugin时,根据网上教程,发现每次都没有生成模板 再次查看,发现 $HOME_jenkins下没有templeate文件夹,查阅 ...
- Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken
Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins功能包括: ...
- eclipse中集成svn maven开发手册---maven编译打包
使用eclipse中maven进行打包. 打好的包在相应的workspace下面会有一个release的文件夹,如图
- eclipse中集成svn maven开发手册---导入项目
一,导入项目 二,创建提分支 三,maven编译打包 四,合并主干 一,导入项目 右键,import,选择从svn检出项目 点击next,如图 如果是第一次导入,选择创建新的资源库,点击next,输入 ...
- 解决Jenkins中执行jmeter脚本后不能发报告(原报告被覆盖、新报告无法保存)的问题
我没有找到根本原因,但是我用了个取巧的办法: 先将原来的报告移到别的文件夹,执行完jmeter脚本后,再把那些旧报告移回来(也可以不移回来,我这里是为了能从jenkins页面上看).
随机推荐
- 总是容易忘记:enum、int、string之间的快速转换
public enum Color { Red=, Green= } (1)Enum转换为String Color.Read.ToString() Convert.ToString(Color.Gre ...
- 【UOJ Round #1】
枚举/DP+排列组合 缩进优化 QAQ我当时一直在想:$min\{ \sum_{i=1}^n (\lfloor\frac{a[i]}{x}\rfloor + a[i] \ mod\ x) \}$ 然而 ...
- 奇怪吸引子---Bouali
奇怪吸引子是混沌学的重要组成理论,用于演化过程的终极状态,具有如下特征:终极性.稳定性.吸引性.吸引子是一个数学概念,描写运动的收敛类型.它是指这样的一个集合,当时间趋于无穷大时,在任何一个有界集上出 ...
- html table奇偶行颜色设置 (CSS选择器)
:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型.n 可以是数字.关键词或公式. 下面的例子, 设置表格的奇偶行背景颜色不同:单独设置表格的第1列背景颜色不同. & ...
- 从 SVM 到多核学习 MKL
SVM是机器学习里面最强大最好用的工具之一,它试图在特征空间里寻找一个超平面,以最小的错分率把正负样本分开.它的强大之处还在于,当样本在原特征空间中线性不可分,即找不到一个足够好的超平面时,可以利用核 ...
- 从item-base到svd再到rbm,多种Collaborative Filtering(协同过滤算法)从原理到实现
http://blog.csdn.net/dark_scope/article/details/17228643 〇.说明 本文的所有代码均可在 DML 找到,欢迎点星星. 一.引入 推荐系统(主要是 ...
- NVIDIA安装显卡提示你必须先安装Intel怎么办
无法安装驱动程序 计算机管理中查看当前的Intel的显卡驱动是否已经安装成功,如果显示的是标准VGA,则没有安装驱动,先要把Intel的显卡驱动装好(有时候360驱动大师这种工具并不能自动帮你装好 ...
- android中使用WebView请求本地网页
使用WebView的方式请参考我的上一篇文章:android中使用WebView请求网页 这里说一下请求本地网页的方法: 本地网页应该把网页保存在src/main/assets目录下: webView ...
- gdbserver 移植与多线程调试
在嵌入式linux平台使用gdb调试进行远程调试需要安装gdbserver,gdbserver工作在目标板上,通过串口或者网线与主机上的gdb互联实现远程调试. Gdbserver需要根据不同的嵌入式 ...
- vsphere产品下载列表
https://my.vmware.com/cn/web/vmware/info/slug/datacenter_cloud_infrastructure/vmware_vsphere_with_op ...