zoukankan      html  css  js  c++  java
  • Jmeter接口测试自动化(jmeter+ant+jenkins持续集成)

    Jmeter是压力测试、接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具。将这三者结合起来可以搭建一套webservice接口测试的持续构建环境。

      1、安装JDK,配置java环境变量

     1 通过Xftp将下载下来的jdk上传到指定虚拟机上传到/usr目录下

      2 通过Xshell连接到虚拟机,执行如下命令,解压文件:

            $ tar zxvf jdk-8u121-linux-x64.tar.gz

       3 使用Vi编辑器,设置环境变量

            $ sudo vi /etc/profile

            在文件最后,添加如下内容:       

    #Java Env
    export JAVA_HOME=/usr/jdk1.8.0_121
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

     4 退出vi编辑器,使环境变量设置立即生效

           $ source /etc/profile

      5 查看JDK版本

    $ java -version
    java version "1.8.0_121"
    Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

      2、安装Jmeter,这里用到的版本是2.12(安装过程略过)

    然后给它赋予权限chmod 777 jmeter.sh

    检验jmeter是否可以运行:jmeter -v

      3、安装 ANT

        3.1 下载安装

          下载地址 http://ant.apache.org/bindownload.cgi,下载后解压到指定位置即可,

          比如:D:/program files/apache-ant-1.9.0

        3.2 配置环境变量

          

        3.3 安装验证

          验证安装结果,命令行输入ant -v ,出现版本信息则安装成功

          

      4、ANT中配置Jmeter   

              4.1、配置库文件

                      将jmeter extras目录下的ant-jmeter-1.1.1.jar 文件拷贝到ant安装目录下的lib文件夹中

           copy from:

           

           paste to:

           

        4.2  配置ANT与Jmeter的配置文件

                     4.2.1 配置ant 编译文件 build.xml

           拷贝下面的内容与新建的txt文件中,并将此文件改名为:build.xml      

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project name="ant-jmeter-test" default="run" basedir=".">
        <tstamp>
            <format property="time" pattern="yyyyMMddhhmm" />
        </tstamp>
        <!-- 需要改成自己本地的 Jmeter 目录-->  
        <property name="jmeter.home" value="C:\apache-jmeter-2.12" />
        <!-- jmeter生成jtl格式的结果报告的路径--> 
        <property name="jmeter.result.jtl.dir" value="C:\apache-jmeter-2.12\bin\test\smoke_report\jtl" />
        <!-- jmeter生成html格式的结果报告的路径-->
        <property name="jmeter.result.html.dir" value="C:\apache-jmeter-2.12\bin\test\smoke_report\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}.html" />
        
        <target name="run">
            <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="C:\apache-jmeter-2.12\bin\test\冒烟测试" includes="*.jmx" />
    
                 <property name="jmeter.save.saveservice.output_format" value="xml"/>
            </jmeter>
        </target>
        
         <path id="xslt.classpath">
            <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
            <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
         </path>
            
        <target name="report">
            <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>    
            <xslt               
                  classpathref="xslt.classpath"
                  force="true"
                  
                  in="${jmeter.result.jtlName}"
                  out="${jmeter.result.htmlName}"
                  style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />  
            
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 
            <copy todir="${jmeter.result.html.dir}">
                <fileset dir="${jmeter.home}/extras">
                    <include name="collapse.png" />
                    <include name="expand.png" />
                </fileset>
            </copy>
        </target>    
        
    </project>

          

           如下按实际情况修改build.xml文件

                     

           

       4.2.2 配置jmeter.properties

           配置jmeter报告输出格式为xml在jmeter根目录下jmeter.properties文件中修改jmeter.save.saveservice.output_format=csv 为

                   jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#

                    

                              

       

      4.3 验证配置,执行构建测试

        4.3.1 准备测试脚本数据

            build配置文件放在与测试脚本同目录

            

        4.3.2 执行测试      

              命令行cd到build.xml文件所在目录,输入ant run ,执行测试

             

          看到build successful 则说明构建测试成功

         4.3.3 报告输出路径下查看测试结果报告

            按build.xml文件中设置的测试报告地址找到html版测试报告

            

            打开看看:测试结果展现了用例数、成功率、用例执行时间等结果参数

            

      4.4、 测试报告优化

    参考:http://shanhe.me/2011/06/07/new-xsl-stylesheet-for-jmeter-command-line-results-report

          用jmeter自带的测试报告得到的测试报告信息并不是很全,这里参考网上的方法,做一个优化

          4.4.1、下载优化模板 jmeter-results-shanhe-me.xsl,拷贝到jmeter的extras目录中,

               如C:\apache-jmeter-2.12\extras

                              

                4.4.2、设置测试输出报告要输出的内容

              同样在jmeter.properties中,设置需要输出的内容为true,并去掉前面的注释符号#,这里全部设置成true

                                 

                                    

    #
    jmeter.save.saveservice.data_type=true
    jmeter.save.saveservice.label=true
    jmeter.save.saveservice.response_code=true
    # response_data is not currently supported for CSV output
    jmeter.save.saveservice.response_data=true
    # Save ResponseData for failed samples
    jmeter.save.saveservice.response_data.on_error=true
    jmeter.save.saveservice.response_message=true
    jmeter.save.saveservice.successful=true
    jmeter.save.saveservice.thread_name=true
    jmeter.save.saveservice.time=true
    jmeter.save.saveservice.subresults=true
    jmeter.save.saveservice.assertions=true
    jmeter.save.saveservice.latency=true
    jmeter.save.saveservice.connect_time=true
    jmeter.save.saveservice.samplerData=true
    jmeter.save.saveservice.responseHeaders=true
    jmeter.save.saveservice.requestHeaders=true
    jmeter.save.saveservice.encoding=true
    jmeter.save.saveservice.bytes=true
    jmeter.save.saveservice.url=true
    jmeter.save.saveservice.filename=true
    jmeter.save.saveservice.hostname=true
    jmeter.save.saveservice.thread_counts=true
    jmeter.save.saveservice.sample_count=true
    jmeter.save.saveservice.idle_time=true

                 

                          4.4.3  设置build文件的报告模板为优化后的模板jmeter-results-shanhe-me.xsl

                            

                   4.4.4、按前面的方式再次用ant构建测试,查看优化后的测试报告

                         

              5、配置jenkins

                  5.1 、jinkins.war的下载与安装,下载后放到d盘根目录

                 5.2 、配置环境变量,设置JENKINS_HOME

                                          

                   5.3 、解压并启动jenkins

                             命令行输入java -jar jenkins.war,浏览器中输入url:jenkins所在主机IP 端口:8080 ,打开jenkins,

            配置用户名、密码及插件,这里需要配置invoke ant插件、HTML测试报告展示的插件

         5.4、新建并配置一个JOB

            

            设置项目名称:

            

           配置构建:

           

            配置构建:invoke ant

             

      

    配置build文件路径: 

                     

     

     配置测试报告插件,workflow-step-api-14.hpi和htmlpublisher-1.6.hpi

    用于打开测试结果报告

      

    基本配置完成

          5.5、JOB主页,点击立即构建,执行测试,构建完成即可通过HTML_Report来查看测试结果

              

                          继续构建基本完成,另外还 可以配置邮件插件来发送测试报告,设置构建时间来定时自动执行测试       

    http://blog.csdn.net/qi_lin7/article/details/52045713

  • 相关阅读:
    219. Contains Duplicate II
    189. Rotate Array
    169. Majority Element
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    119. Pascal's Triangle II
    118. Pascal's Triangle
    88. Merge Sorted Array
    53. Maximum Subarray
    CodeForces 359D Pair of Numbers (暴力)
  • 原文地址:https://www.cnblogs.com/kaola8023/p/6895985.html
Copyright © 2011-2022 走看看