zoukankan      html  css  js  c++  java
  • Jmeter+ant+Jenkins接口自动化测试框架

                                                                                                                                                                  作者:windfall

    背景:

    Jmeter是基于Java开发的性能测试工具,也可以用于接口测试,对比LR来说,jmeter的操作简单并且是一款开源软件;

    Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台方便快速打包与编译,就像是蚂蚁搬家一样,Jenkins是持续集成工具;

    将这三者结合起来可以搭建一套Web HTTP接口测试的持续构建环境,实现接口自动化测试,搭建环境是Windows

    一、环境配置

    1、Java环境配置

    1.1、下载安装包(我使用的是jdk1.8版本,自行下载)

    1.2、配置环境变量

          JAVA_HOME 为 C:Program Files (x86)Javajdk1.8.0_20(注意:java我是默认装的C盘)
      CLASSPATH为  .;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar;
      PATH为  %JAVA_HOME%in;%JAVA_HOME%jrein;
    1.3、安装验证
    在命令窗口中输入java -version 回车,能出现java版本则说明配置成功

     2、jmeter环境配置

    2.1、下载安装包(过程略过,自己找安装包,随便装在哪个目录下)

    2.2、配置环境变量

          JMETER_HOME 为 jemter安装路径;
      CLASSPATH为 %JMETER_HOME%lib;
      PATH为%JMETER_HOME%in;
    2.3、安装验证
    在命令窗口中输入jmeter -v回车,能出现jmeter版本则说明配置成功

     

     3、ant环境配置

    3.1、安装包下载

    下载地址 ,下载后解压到指定位置即可

    3.2、配置环境变量

          ANT_HOME 为 ant解压位置
      CLASSPATH为 %ANT_HOME%lib;
      PATH为%ANT_HOME%in;
    3.3、安装验证
    验证安装结果,命令行输入ant -v,出现版本信息则安装成功

     二、jmeter+ant生成测试报告

    1、事先准备好jmeter的测试脚本,f放置在一个新的文件夹里;

    2、apache-jmeter-5.0extras目录下的ant-jmeter-1.1.1.jar文件复制到apache-ant-1.10.9-binapache-ant-1.10.9lib目录下;

    3、找到jmeter.properties文档,在jmeter/bin目录下,打开该文档并编辑,修改jmeter报告输出格式为xml:

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

    4、 刚刚放置jmeter脚本的文件夹中新建一个build.xml文件,build.xml文件内代码如下,可自行复制

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project name="ant-jmeter-test" default="run" basedir=".">
     3     
     4     <property name="jmeter.home" value="E:veri_report_ora_dmapache-jmeter-5.0apache-jmeter-5.0" />
     5     <property name="report.title" value="JMeter测试报告"/>
     6   
     7     <property name="jmeter.result.jtl.dir" value="E:ant_study
    eportjtl" />
     8    
     9     <property name="jmeter.result.html.dir" value="E:ant_study
    eporthtml" />
    10   
    11     <property name="ReportName" value="APITestReport" />
    12     <tstamp> <format property="time" pattern="YYYYMMDD HHmmss" /></tstamp>
    13     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName} ${time}.jtl" />
    14     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName} ${time}.html" />
    15 
    16     <target name="run">
    17         <antcall target="test" />
    18         <antcall target="report" />
    19     </target>
    20     
    21     <target name="test">
    22         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
    23         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
    24            
    25             <testplans dir="E:ant_study" includes="*.jmx" />
    26             
    27             <property name="jmeter.save.saveservice.output_format" value="xml"/>
    28         </jmeter>
    29     </target>
    30         
    31     <path id="xslt.classpath">
    32         <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
    33         <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    34     </path>
    35 
    36 
    37     <target name="report">
    38         <tstamp> <format property="report.datestamp" pattern="YYYY/MM/DD HH:mm" /></tstamp>
    39         <xslt 
    40               classpathref="xslt.classpath"
    41               force="true"
    42               in="${jmeter.result.jtlName}"
    43               out="${jmeter.result.htmlName}"
    44               style="${jmeter.home}/extras/test.xsl">
    45               <param name="dateReport" expression="${report.datestamp}"/>
    46               <param name="titleReport" expression="${report.title}:${report.datestamp}"/>
    47 
    48        </xslt>
    49 
    50               
    51         <copy todir="${jmeter.result.html.dir}">
    52             <fileset dir="${jmeter.home}/extras">
    53                 <include name="collapse.png" />
    54                 <include name="expand.png" />
    55             </fileset>
    56         </copy>
    57     </target>
    58 
    59 </project>
    View Code

     以上代码有四处需要根据实际情况进行修改,

    (其中第4点是一个报告模板,原始的是jmeter-results-detail-report_21.xsl,可以从网上下载新模板,然后直接在xml里面改名即可)

    如下图所示:

     

     5、运行ant命令

    直接在命令行中进入build.xml所在文件夹中输入ant,即可运行脚本,看到success代表运行成功

     6、查看报告

    在刚刚i配置好的放置报告的文件夹里可以直接查看html格式的报告,简易版报告如下:

     三、结合jenkins进行接口自动化测试

    1、配置jenkins和salve负载机的教程请参考https://www.cnblogs.com/big-white/p/12307607.html

    2、新建job任务:

    首先配置Java/ant工作路径:打开jenkins,进入系统管理-全局工具管理

     

     

     然后创建一个job任务,在general中勾选已经连接好的运行节点,然后在构建中选择invoke ant,填写对应的ant版本,build file中填写build.xml所在路径;

     最后直接一键启动任务,点击build now,运行完成之后,可以在控制台中查看运行结果。

  • 相关阅读:
    深入MVC模式概念
    Asp.NET MVC and Asp.NET WebForms Features
    JavaScript实现简单进度条
    数据分页技术(学习笔记)
    sql行列转换<转>
    全自动静态网页生成器(三)——发布第一个可用版本
    ASP.NET AJAX进度条
    不能远程访问Win7系统上的Sql 2005数据库
    水印及缩略图的C#实现
    无任何网络提供程序接受指定的网络路径解决方法
  • 原文地址:https://www.cnblogs.com/big-white/p/14514491.html
Copyright © 2011-2022 走看看