maven+jmeter+jenkins集成

马上要国庆了,最近比较忙,但是感觉忙的效率很一般,之前写过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。能分别出来相应的版本说明环境没问题。

maven+jmeter+jenkins集成_第1张图片

 

eclipse部分

1. 首先是打开eclipse,新建一个maven项目。

maven+jmeter+jenkins集成_第2张图片

2. 依次在工程的src/test目录下新建jmeter文件夹和resources文件夹,然后将自己写的jmeter脚本放在jmeter文件夹下,生成报告的模版文件/meter.results.shanhe.me.xsl放在resources文件夹下

maven+jmeter+jenkins集成_第3张图片

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仓库,然后再调用即可,具体步骤是

maven+jmeter+jenkins集成_第4张图片

  • 下载插件到本地
  • 解压后,将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后

maven+jmeter+jenkins集成_第5张图片

2. 执行结果的所有文件,都会存放在target目录下,如:

maven+jmeter+jenkins集成_第6张图片

 

jenkins集成部分

1. jenkins新建一个maven风格的项目,做如下配置,具体配置不再细说,和我之前的ant集成的文章类似,具体可以参考

ant+jmeter+jenkins+git持续集成以及邮件报告展示

 maven+jmeter+jenkins集成_第7张图片

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文件的  ${env.WORKSPACE}/Report/${env.BUILD_ID}/html对应

效果图

maven+jmeter+jenkins集成_第8张图片

maven+jmeter+jenkins集成_第9张图片

参考部分

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

你可能感兴趣的:(maven+jmeter+jenkins集成)