使用Maven Jenkins和JMeter自动化测试

  有两个插件能够实现在Maven build集成Jmeter测试, jmeter-maven-plugin 和 chronos-maven-plugin. 选择哪一个取决于情况,下面是一些判断标准:

  1. 该插件不应该依赖于本地JMeter的安装。
  2. 它必须能够从命令行启动JMeter测试(无GUI)。
  3. JMeter的图形用户界面也应该通过插件(例如,通过一个单独的Maven目标)直接实现。
  4. 它包含JMeter的插件。
  5. 该插件应该产生有意义的报告。

第一第二条两个都满足,jmeter-maven-plugin可以在无图形情况下使用一个简单的附加依赖项kg.apc:jmeter-plugins直接使用使用JMeter,这点是 jmeter-chronos-maven-plugin没有的。

下面是一段来自 jmeter-maven-example的配置:

<plugin>
  <groupId>com.lazerycode.jmeter</groupId>
  <artifactId>jmeter-maven-plugin</artifactId>
  <version>1.8.1</version>
  <configuration>
    <!--
       By default the test results are saved in a file 
       /target/jmeter/results/<testname>-<timestamp>.jtl
       Further processing is easier without timestamp though.
    -->
    <testResultsTimestamp>false</testResultsTimestamp>
 
    <!--
       To simplify debugging, it is advisable to adapt the loglevel.
       The jmeter logs are written to the file jmeter.log.
    -->
    <overrideRootLogLevel>DEBUG</overrideRootLogLevel>
 
    <!--
       By default, the console output during a jmeter test run is suppressed.
       We want to display the progress using the listener "Generate Summary Results"
       (which periodically prints stats to stdout). Therefore we have to make sure,
       that the jmeter output is not suppressed.
    -->
    <suppressJMeterOutput>false</suppressJMeterOutput>
 
    <!--
       If tests fail (e.g. a http-request running into a timeout), the corresponding maven
       goal also fails (and subsequent goals aren‘t executed anymore). We want to create graphs
       from test-results, no matter if some requests failed or not, so we ignore jmeter failures.
    -->
    <ignoreResultFailures>true</ignoreResultFailures>
  </configuration>
  <dependencies>
    <dependency>
      <groupId>kg.apc</groupId>
      <artifactId>jmeter-plugins</artifactId>
      <version>1.0.0</version>
      <exclusions>
         <!--
            Unfortunately some transitive dependencies cannot be found on mvncentral
            and we have to explicitly exclude them.
            For a complete list, see https://github.com/mlex/jmeter-maven-example/
        -->
        <exclusion>
            <groupId>kg.apc</groupId>
            <artifactId>perfmon</artifactId>
        </exclusion>
        <!-- ... -->
 
        <!--
            Because of a bug in the jmeter-maven-plugin (see
            https://github.com/Ronnie76er/jmeter-maven-plugin/issues/77) we have to
            exclude jmeter dependencies here, too.
        -->
        <exclusion>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>jorphan</artifactId>
        </exclusion>
        <!-- ... -->
      </exclusions>
    </dependency>
  </dependencies>
</plugin>

这个测试文件必须放在 /src/test/jmeter,您可以编辑和执行测试。

测试环境可以是各种,这里结合 Jenkins中创建一个Job,允
许一次点击就可以执行JMeter的测试,首先要使用Maven的属性和配置文件。下面示例项目中定义了两种不同的Maven配置文件,一个用于本地执
行,一个用于从jenkins执行。 Maven的特性是通过userProperties选项传递到JMeter的。

<profiles>
  <profile>
    <id>local</id>
    <properties>
      <performancetest.webservice.host>localhost</performancetest.webservice.host>
      <performancetest.webservice.port>8080</performancetest.webservice.port>
    </properties>
  </profile>
  <profile>
    <id>jenkins</id>
    <properties>
      <performancetest.webservice.host>my.test.system</performancetest.webservice.host>
      <performancetest.webservice.port>80</performancetest.webservice.port>
    </properties>
  </profile>
  <build>
    <plugins>
      <plugin>
        <groupId>com.lazerycode.jmeter</groupId>
        <artifactId>jmeter-maven-plugin</artifactId>
        <version>1.8.1</version>
        <configuration>
          <propertiesUser>
            <webservice.host>${performancetest.webservice.host}</webservice.host>
            <webservice.port>${performancetest.webservice.port}</webservice.port>
          </propertiesUser>
        </configuration>
      </plugin>
    </plugins>
  </build>
</plugin>

使用Jenkins-CI进行JMeter tests

  现在,我们已经为各种环境下制作了不同的Maven配置文件,一个合适的jenkins作业的配置仅仅需要一小步。参数化的构建版
本是jenkins的另一个不错的功能,针对JMeter的测试非常有用。参数可用于例如,允许用户定义负载测试的大小(即:线程数和迭代的次数)。

报表

使用jmeter-graph-maven-plugin集合Jmeter的CMDRunner工具,可以让我们在Maven Build中输出图形结果。

https://github.com/codecentric/jmeter-graph-maven-plugin

时间: 2024-11-10 19:52:19

使用Maven Jenkins和JMeter自动化测试的相关文章

Jenkins+Ant+Jmeter自动化测试平台

        持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快的发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. jenkins是基于java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布.测试项目,监控外部条用执行的工作. 项目构建 通过构建工具对多个项目文件进行

Jmeter +Maven+jenkins+eclipse 接口自动化测试

背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,这样一来性能测试的job配置完成.接着,把性能测试的job配置成开发job的下游job,一旦开发有了新的代码提交运行开发自己的job后,就会自动触发我们性能测试的job.这样我们就实现了接口性能测试的全自动化,我们只需要关注测试失败的邮件! 1 环境搭建 下载安装 jdk &eclip

Jmeter+Maven+Jenkins+Git接口自动化流程

最近在实现 Jmeter+Maven+Jenkins+Git 接口自动化,研究不到两周,实现了 Jmeter+Maven+Jenkins+Git  接口自动化 的整体流程. 仅以此博客简单记录下自己实现的过程. 一. 职责.角色明确 Jmeter: 执行者,录制接口测试脚本,运行脚本,得到结果,生成报告,统计数据: Maven,Git :管理者, Maven 主要负责项目的依赖管理,Git 主要负责项目的代码管理: Jenkins:调度者,持续集成(CI)工具:构建.部署自动化:可以持续编译,运

Jmeter+maven+Jenkins构建云性能测试平台(mark 推荐)

转自:http://www.cnblogs.com/victorcai0922/archive/2012/06/20/2555502.html Jmeter+maven+Jenkins构建云性能测试平台(一) 最近在利用Jmeter来做一套自动化性能测试框架,做自动化性能测试框架的目的 是希望能够针对系统做一个benchmark的性能测试,能够快速的在每个版本发布后,对该版本进行benchmark性能测试,以比较与上一个版本的性 能是否发生变化,若发生变化便可以快速的通知开发人员以确定性能发生变

性能测试四十八:Jenkins+Ant+Jmeter系统部署

工作步骤: 1.开发提交代码SVN/Git 2.代码编译.打war包 3.上传war包到服务器 4.重启web服务器 5.开始测试/自动化测试 6.发测试结果 Jenkins工作: 1.开发提交代码Git 2.Jenkins拉取代码,自动化编译,打包 --  插件 3.Jenkins自动上传war包  --  插件/sh.bat脚本 4.Jenkins自动重启tomcat  --  sh脚本 5.Jenkins自动执行自动化脚本  -- sh脚本 6.Jenkins自动化发送测试报告  -- 

Jenkins+Ant+JMeter集成

Tomcat是jenkins运行的容器,jenkins实际上是依赖于Tomcat才能启动的.Jenkins可以调度ant的脚本. Ant和maven类似,maven是执行pom文件,ant是执行build文件. Jenkins强大之处就是有很多插件. 一.Jenkins安装 1.Tomcat下载,解压.D:\software\apache-tomcat-8.0.28\webapps目录下的东西无用可删除. 2.官网(https://jenkins.io/download/)下载jenkins.w

Jenkins+Ant+Jmeter 自动化性能测试平台

一.前言 持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作, 通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目,监控外部调用执行的工作. 项目构建 通过构建工具对多个项目文件进行统一

jenkins+ant+jmeter自动化性能测试平台

jenkins+ant+jmeter自动化性能测试平台 Jmeter是性能测试的工具,java编写.开源,小巧方便,可以图形界面运行也可以在命令行下运行.网上已经有人使用ant来运行,http://www.programmerplanet.org/projects/jmeter-ant-task/,既然可以使用ant运行,那和hudson.jenkins集成就很方便了,而且jenkins上也有相应的插件Performance Plugin,可以自动收集jmeter的测试结果,展示出来. 首先去下

Jenkins+Ant+Jmeter接口自动化集成测试实例

Jenkins+Ant+Jmeter接口自动化集成测试实例 一.Jenkins安装配置 1.安装配置JDK1.6+环境变量: 2.下载jenkins.war,放入C:\jenkins目录下,目录位置随意: Jenkins启动方法: cmd进入Jenkins目录下,执行java -jar jenkins.war 浏览器输入:localhost:8080可以访问Jenkins表示配置成功: 二.Ant安装配置 1.下载apache-ant-1.9.6:放入E盘,如E:\apache-ant-1.9.