Jmeter接口测试自动化(持续集成)

Posted 快乐存储

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter接口测试自动化(持续集成)相关的知识,希望对你有一定的参考价值。

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

 

以上是关于Jmeter接口测试自动化(持续集成)的主要内容,如果未能解决你的问题,请参考以下文章

持续集成:jmeter+ant+jenkins搭建接口自动化测试环境

持续集成:JMeter+Ant+jenkins搭建接口自动化测试环境

接口自动化测试持续集成--Soapui接口测试

Jmeter接口自动化测试 (持续构建)

WEB接口测试之Jmeter接口测试自动化 (持续构建)

Jenkins+jmeter+HTML reports接口压力自动化持续集成(Linux篇)