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

一、什么是接口测试
  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
  接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
  接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
  基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。
   二、接口测试的流程
  1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档
  2、 获取接口测试文档后,就可以进行接口用例的编写和调试
  3、 接口用例编写调试完成后,部署到持续集成的测试环境中,
  4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控
  5、 每日进行接口脚本的维护更新,接口异常的处理
   三、编写接口测试脚本
  大部分性能工具都可以用来进行接口测试,jmeter就是一个好用的 性能测试工具,他也同样可以用来进行接口测试,jmeter比较适用于CGI、webservice、DB等类型的接口测试。下面以websevice api接口为例说明如何编写接口测试用例(本文侧重于接口测试平台的搭建,对于具体工具是使用只进行简单介绍,对于工具不了解的,可以自行 百度):
  jimter接口脚本的编写步骤如下:
  1、 编写接口请求
  通过录制或者查看接口文档,编写接口请求,进行调试,确保接口调试通过
  对于http的请求来说,就是正确的填写域名,查询字符串,查询参数等信息
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第1张图片
  2、 对接口的返回结果进行断言
  断言的目的是对输出结果进行判断,确认接口测试结果是否有异常
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第2张图片
  这些 工作完成后,接口测试脚本就准备好了

   四、生成接口测试报告
  接口测试脚本运行后生成的是JTL(xml)格式的文件,这些文件不具备可读性,因此我们要把他转化为可以阅读的html格式报告。
  转化的步骤如下:

              首先,为了能够在ant中使用jmeter task,必须将“ant-jmeter-1.1.1.jar”这个jar包放到ant的classpath中去。这个jar包位置 jmeter的安装目录下的 extras 目录中。或者可直接将这个jar拷贝至ant安装目录下的lib目录中去就可以了。


  1、 安装ant工具
  Ant是一个功能强大的打包编译工具。我们使用他的目的是将xml文件转化为html格式的文件
  2、 找到jmeter自带的xsl文件
  Xml文件要转化为html文件,需要编写xsl文件,实际上,jmeter已经自带了xsl文件,如果你不想自己定义格式的话,可以直接使用自带的格式,这样可以省不少事情。这些文件的位置位于jmeter的extras文件夹下,只需要简单修改一些文件路径配置就可以正常使用。
  3、 编写ant的buildfile文件
buildfile是一个xml文档,默认命名为build.xml,在Ant的buildfile中,我们可以设定属性[property]、任务[task],每个buildfile中可以设定多个任务[task],这些任务可以是编译源码、生成Doc文档、程序测试等;通常会将这些任务组织为一个目标[target]。

看一个简单的build.xml,大概了解一下

< project  name ="addressbook"  default ="compile"  basedir ="." >


   < property  name ="tomcat.home"  value ="C:/jakarta-tomcat"   />
   < property  name ="app.home"           value ="."   />
   < property  name ="src.home"           value ="${app.home}/src" />
   < property  name ="lib.home"           value ="${app.home}/WEB-INF/lib" />
   < property  name ="classes.home"        value ="${app.home}/WEB-INF/classes" />


   < target  name ="compile"    >
     < javac  srcdir ="${src.home}"  destdir ="${classes.home}"  debug ="yes"   >
         < classpath  refid ="compile.classpath" />
     javac >
   target >
project >

可以看到build.xml中,project作为根元素(每个buildfile中都会有一个project),然后是定义了两个属性以及一个target。

project元素和target元素的属性,可以看下面的表。

标签 属性   描述 必需的
project name 项目名称 No
default 没有指定target时,缺省使用的target Yes
basedir 作为计算其它路径的基路径。该属性可以被basedir property覆盖,当覆盖时,该属性被忽略。如果属性和basedir property都没有设定,就使用buildfile文件的父目录 No
target name target的名字 Yes
depends 用逗号隔开的target名字列表,设定些属性,就意味着本target将依赖于depends设定的target No
if 执行target所需设定的属性名 No
unless 执行target所需要清除设定的属性名 No
description 关于target的描述 No

在使用
D:\>Ant
执行时,会先进入到"complie"目标(上面的Ant没有指定target,所以会使用project的default值),编译源码(javac task)

提示:我们可以在ant后面指定想要执行的target,缺省情况下会使用默认的(即:project元素default属性设定的target)。  

通常,要运行一个程序,首先得要编译它的源码,生成可执行文件,然后才运行这个可执行文件。 可以看到这是由两个任务组成,而且运行可执行文件任务依赖编译源码任务。Ant的buildfile中可以定义多个target,同时一个target的执行可以依赖于另一个target,表描这种依赖关系可以通过target元素的depends属性,depends可以设定多个target(以逗号间隔),如:
< target  name ="run"  depends ="mkdir,complie" >
   
target >
"run"目标依赖"mkdir"和"complie"目标,也就是运行程序之前,要先建立相关文档目录,编译源码生成可执行文件。
depends属性设定的依赖是按左到右的顺序执行,执行命令 Ant run ,会先执行"mkdir"目标,执行完后,再到"complie",最后才执行"run"目标。

元素,主要是设置一些常用的属性,每个属性都会有一个名称(name),以后再做详解。

有关Ant的buildfile,就说到这,下篇说说Ant的常用任务[task]标签。

  Ant自带了把XML转化为html的lib库,因此,这个转化也是相当简单的,示例如下:
classpathref="xslt.classpath"
force="true"
in="${resultpath}/${test}-${TODAY}.jtl"
out="${resultpath}/${test}-${TODAY}.html"
style="${jmeter.extras}/jmeter-results-detail-report${style_version}.xsl">
  完整的buildfile文件,请自行百度
JMeter 分区的 extras 目录包含一个示例 build.xml 脚本,说明了 JMeter Ant 任务的用法。
  4、 运行ant命令,生成html文件
  Cmd运行ant –buildfile xsl文件,你就可以生成html报告了
D:\apache-jmeter-2.9\extras>ant -buildfile build.xml
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第3张图片
  生成的测试报告如下:
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第4张图片
   五、部署到持续集成平台
  部署到持续集成平台可以实现脚本的定时运行,这是接口测试的核心。
  这里我们选用了jenkins,,jenkins是一个强大的持续集成系统,使用起来也很简单。
  使用步骤如下:
  1、 安装jenkins
  Jenkins的安装是非常简单的
  注意:请将jenkins安装到一个空间比较大的系统盘中。因为jenkins运行起来,生成的文件比较占空间。
  2、 安装完成后,配置一个项目
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第5张图片

 3、 配置item参数
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第6张图片
  旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天使和保持构建的最大个数两个参数。
  注意:三个设置必须同时设置,否则无效
  4、 设置定时运行间隔,这里,设置间隔时间为10分钟运行一次
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第7张图片
  5、设置invoke ant
Jenkins+Ant+Jmeter搭建持续集成的接口测试平台_第8张图片
  通过设置invoke ant,就可以调用ant,执行打包过程。在这里,也就是执行生成测试报告的步骤
  通过以上步骤,我们就成功搭建了一个简单的持续集成的接口测试平台,当然,你也可以根据自己的需要添加其他更强大的功能
Bulid File是你build.xml文件的目录

你可能感兴趣的:(jmeter)