首页 > 其他 > 详细

Jmeter+Ant+Jenkins搭建持续集成的接口测试

时间:2015-10-13 00:22:19      阅读:533      评论:0      收藏:0      [点我收藏+]

前置条件:首先我们默认Jmeter脚本已经录制好了,并测试通过,存在如下脚本

 

    技术分享

 

一、Ant转换xml格式的聚合报告

前期条件:存在Jmeter聚合测试报告TestReport201510100244.jtl

    1Ant安装

                 下载ant地址

                 配置环境变量

                 技术分享

                 命令行窗口输入ant

                 技术分享

                安装成功

   2、将Jmeter保存的xml格式的聚合报告TestReport201510100244.jtl,放到相应的文件夹中

            文件夹目录结构:

            D:\jemeterTest

            技术分享

    3、编辑build.xml文件

         <?xml version="1.0" encoding="UTF-8"?>
        <project name="JmeterTest" default="all" basedir="."> 
        <!-- 需要改成自己本地的 Jmeter 目录--> 
        <property name="jmeter.home" value="D:\soft\apache-jmeter-2.9" /> 
        <!-- jmeter生成jtl格式的结果报告的路径--> 
        <property name="jmeter.result.jtl.dir" value="D:\jemeterTest\resultLog\jtl" /> 
        <!-- jmeter生成html格式的结果报告的路径--> 
        <property name="jmeter.result.html.dir" value="D:\jemeterTest\resultLog\html" /> 
        <!-- jtl文件--> 
        <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/TestReport201510100244.jtl" />
        <!-- 生成HTML文件 --> 
        <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/TestReport201510100244.html" />
        <target name="all"> 
        <antcall target="report" />
        </target> 
        <target name="report"> 
        <xslt in="${jmeter.result.jtlName}" 
        out="${jmeter.result.htmlName}"
        <!-- Jmeter自带的XSLT样式表在目录extras下面--> 
        style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /> 
        </target>
        </project>

  4、切换到D:\jemeterTest目录下,输入ant查看运行结果,在D:\jemeterTest\resultLog\html目录下生成TestReport201510100244.html文件

    

            技术分享

            技术分享

5、打开TestReport201510100244.html文件

        技术分享

6、发现Min TimeMax Time尽然没有显示出来显示的Nan

            这个问题比较奇葩,我的初步定为思路如下

            1)首先我先看一下Jmeter自带的XSLT样式表问题

                  将TestReport201510100244.jtl文件的第二行加入

                    <?xml-stylesheet type="text/xsl" href="D:/soft/apache-jmeter-2.9/extras/jmeter-results-detail-report_21.xsl"?>

                    用浏览器打开显示正常,初步排除了XSLT样式表问题

                            

                    技术分享

        2)编写java程序,用程序去调取jmeter-results-detail-report_21.xsl,运行,发现报错,提示

                致命错误: "无法编译样式表", 

         从网上找到了解决方案,要下载一个XALAN.Jar包放到项目中即可解决这个问题

        

        

        3)将这两个jar包入antlib包中再次切换到D:\jemeterTest目录下,输入ant查看运行结果,在D:\jemeterTest\resultLog\html目录下生成TestReport201510100244.html文件,使用浏览器查看,OK,显示了!

            技术分享

7、拓展显示功能

        我们发现在界面上没有显示,90%line,这个性能指标项,在这里我们需要修改XSLT样式表,jmeter-results-detail-report_21.xsl增加部分内容后的文件如下:


        注:90%Line逻辑(网上找的释疑)

                一组数由小到大进行排列,找到他的第90%个数(假如是10),那么这个数组中有90%的数将小于等于120

                用在性能测试的响应时间也将非常有意义,也就是90%用户响应时间不会超过12 

    1)修改build.xml文件中的内容style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" 然后切换到D:\jemeterTest目录下,输入ant查看运行结果,在 

           D:\jemeterTest\resultLog\html目录下生成TestReport201510100244.html文件,成功了!

 技术分享

二、Jmeter+ant

        主要逻辑思路:运行D:\jemeterTest\script下面的.jmx脚本,生成.jtl文件放入D:\jemeterTest\resultLog\jtl文件中,ant在将相应的文件转换为对应的html文件放入D:\jemeterTest\resultLog\html中

        Note: As of JMeter 1.9RC2(?), the default results output format is now csv. It must be changed to xml in order to use the xslt task to create the html report:

        jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,保存

jmeter.save.saveservice.output_format=xml

        build.xml文件中的内容如下:

 <?xml version="1.0" encoding="UTF-8"?>  
  
<project name="JmeterTest" default="all" basedir=".">  
    <tstamp>  
        <format property="time" pattern="yyyyMMddhhmm" />  
    </tstamp>  
    <!-- 需要改成自己本地的 Jmeter 目录-->  
    <property name="jmeter.home" value="D:\soft\apache-jmeter-2.9" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->  
    <property name="jmeter.result.jtl.dir" value="D:\jemeterTest\resultLog\jtl" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="D:\jemeterTest\resultLog\html" />  
    <!-- 生成的报告的前缀 -->  
    <property name="ReportName" value="TestReport" />  
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />  
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    
    <!-- 接收测试报告的邮箱 -->
    <property name="mail_to" value="LIUCHAO448@pingan.com.cn"/>
     <!-- 电脑地址 -->   
    <property name="ComputerName" value="jkqsh-l0285"/>
      
    <target name="all">  
        <antcall target="test" />  
        <antcall target="report" />  
    </target>  
      
    <target name="test">  
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />  
        <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
   <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 -->
            <testplans dir="D:\jemeterTest\script" includes="*.jmx" />  
        </jmeter>  
    </target>  
          
    <target name="report">  
        <xslt in="${jmeter.result.jtlName}"  
              out="${jmeter.result.htmlName}"  
              style="${jmeter.home}/extras/jmeter-results-detail-report_90Line.xsl" />
          
  <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">  
            <fileset dir="${jmeter.home}/extras">  
                <include name="collapse.png" />  
                <include name="expand.png" />  
            </fileset>  
        </copy>  
    </target>
    
    <!-- 发送邮件 -->
      
</project>

        

        切换到D:\jemeterTest目录下,输入ant查看运行结果

        技术分享

         

         运行前

                                                             

        

        技术分享

        

        

        运行后

        技术分享

        浏览器打开HTML文件,显示正确

 

   技术分享

 

三、Jmeter+ant+Jenkins

        1下载Jenkins安装

        2、命令行切换到jenkins.war的根目录,输入 java -jar jenkins.war

            技术分享

    3、浏览器输入地址http://localhost:8080/显示界面,安装成功

            技术分享

4、新建一个任务并配置

    技术分享

 

5、配置参数

        技术分享

  旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天使和保持构建的最大个数两个参数。

  注意:三个设置必须同时设置,否则无效

6设置定时运行间隔,这里,设置间隔时间为15分钟运行一次

            技术分享

7、设置invoke ant,完成后点击保存

                技术分享

8、点击立即构建,就可以调用ant,执行打包过程。在这里,也就是执行生成测试报告的步骤

 

        技术分享

    

 

Jmeter+Ant+Jenkins搭建持续集成的接口测试

原文:http://my.oschina.net/hellotest/blog/516079

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!