jenkins接口测试

基于Jmeter 工具的接口测试

1、Jmeter 工具的安装

1.1安装步骤:

l安装环境:Windows XP

l安装包准备:

JDK1.7.0_09(具体见附件)具体可在官方网站下载

apache-jmeter -2.11(具体见附件)具体下载地址:

http://jakarta.apache.org/site/downloads/downloads_jmeter .cgi

1.2安装过程:

1.2.1 JDK安装

1)点击下载的jdk-7u9-windows-x64.exe,选择安装路径即可。

2)JDK环境配置

桌面上选择“我的电脑”(右键)/高级/环境变量, 在“系统变量”栏中点击“新建”, 在变量名中输入:CLASSPATH,变量值中输入:C:\JDK安装目录\lib\dt.JAR; C:\JDK安装目录\lib\TOOLS.JAR;点击确定即可。

再按“新建”,在变量名中输入:java_home,变量中输入:C:\JDK安装目录;修改PATH变量,添加% java_home %\bin;然后确定即可。

修改系统变量path的值,在前面增加%java_home%\bin;然后确定即可。

3)检查JDK安装是否OK

具体是:点击“开始”/“运行”,输入命令cmd进入dos操作界面,输入命令:java–version 查看java版本,如果显示为:1.7.0_09,则安装OK。

1.2.2 Jmeter 安装

解压apache-jmeter -2.11文件至c盘,本文解压至C:\

apache-jmeter -2.11目录下。

桌面上选择“我的电脑”(右键)/高级/环境变量, 在“系统变量”栏中点击“新建”, 在变量名中输入:JMETER _HOME,变量值中输入:C:\ apache-jmeter -2.11,点击确定即可。

再修改CLASSPATH变量,变量值中添加如下值:

%JMETER _HOME%\lib\ext\ApacheJmeter

_core.jar;%JMETER _HOME%\lib\jorphan.jar;%JMETER _HOME%\lib\logkit-2.0.jar; 然后确定即可。

检查jmeter 安装是否OK

具体是:进入jmeter 目录下的bin文件夹,双击jmeter .bat,查看页面显示,如果能显示jmeter操作页面则安装成功。

2、Jmeter 接口测试入门

2.1 接口的介绍

接口的概念从IT的角度出发,主要是子模块或者子系统间交互并相互作用的部分。从形式上来看各种应用程序的API(最著名的Windows 系统的API),硬件的驱动程序,数据库系统的访问接口,再到后来的Webservice接口,http rest接口。虽然接口的形式各有不同,但是从测试角度来说,需要测试的内容大致是相同的,功能,性能,安全。经历有限,本篇文章主要介绍http REST接口从功能角度出发,怎么做测试。

因为REST类型的接口已经越来越成为互联网行业通用的接口表现形式,它在使用过程中不受调用客户端语言的限制,在网络传输过程中不需要传递强类型的对象,仅仅通过网络传递字符串。基于上述特点,REST协议的接口成为了互联网中接口协议最为常用的接口方式。所以我们在这里主要介绍REST协议的接口测试。

首先来认识一下什么是REST 接口。REST Web 服务(也称为RESTful Web API)是一个使用HTTP并遵循REST原则的Web服务。它从以下三个方面资源进行定义:URI,比如:http://example.com/resources/。Web服务接受与返回的互联网媒体类型,比如:JSON,XML ,YAML 等。Web服务在该资源上所支持的一系列请求方法(比如:POST/提交数据,GET/查询,PUT/更新或DELETE/删除)。通过上面的定义我们就能准确的知道REST接口其实就是一个Web请求,和你访问一个Web页面请求是没有任何区别的。所以大家在认识接口的时候完全可以把REST接口当做是一个Web页面请求。

2.2 接口测试准备

从测试策略上来说我们测试接口是基于业务来测试,和从UI端做功能测试是一样的,都是测试功能业务,只不过我们更进一步使用接口来测试。测试实现上来说,REST接口是一个Http请求,所以对接口的测试主要是通过发送http请求,通过对比返回值来测试返回的结果是不是和我们期望的一致。

从项目角度来说,接口测试的第一步是要了解清楚和项目相关的信息。这里所说的项目信息包括以下几个方面:接口开发人员是谁、接口开始开发和结束的时间、测试环境信息、数据库相关信息、需求文档,接口API文档;除了要获取信息外,还需要和开发人员,产品达成一些共识,这些共识包括:第一次提测接口的时间、可测接口的提交频率、 Bug解决方式等。

 我们来说说这些信息,对我们来说有什么用处。开发人员,项目开始结束时间这些信息从项目角度来说,是必须的。你需要知道在测试过程中和谁交互沟通,你需要根据项目开始结束时间来安排资源。测试环境,数据库信息这些是我们接口测试的基础。需求文档,API文档这是我们接口测试的依据。第一次提测时间,是我们开始投入资源测试的时间,接口提交频率决定了我们能否在开发完成的同时完成测试。(这里说的同时是指开发在提交最后一批接口时完成了前面所有接口的测试)。开发提交可测接口的频率过低,会导致测试介入过晚。从而不能完成测试。提测频率过高,有可能会影响开发的效率。

2.3 接口测试流程【GUI】(结合【公共服务平台项目】实例进行介绍)

2.3.1 接口API文档

上面章节中说到过接口API文档是我们接口测试的依据。开发会将接口API文档上传到项目的SVN中,通过该接口API文档,我们可以获取业务中各个接口URL、请求方式、请求参数、返回参数

jenkins接口测试_第1张图片
jenkins接口测试_第2张图片

2.3.2 理解业务逻辑

从图1中的API文档,我们可以得到定义该接口的目的是通过请求该URL,返回业务中活动列表信息、以及结果标识和返回结果说明。请求方式为GET,请求的参数包括:当前页和每页大小。

从图2中的API文档,我们可以得到定义该接口的目的是通过请求该URL,返回业务中的医生列表信息、以及结果标识和返回结果说明。请求方式为POST,请求的参数为jason串形式。

2.3.3 编写测试用例

我们再从测试的角度来说说在测试开始前应该做哪些事情。我们从开始就一直说的是接口测试,而且也说明白了接口测试其实是在做业务的测试。所以接口测试要想做好,有一项工作是基础。我们必须设计测试用例。设计测试用例的依据对于接口测试来说,主要是根据需求文档和接口API文档,通过以下测试要点编写测试用例。

参数(合法/不合法、必填/非必填、null、超长、特殊字符)

功能逻辑(正常请求、错误逻辑)

异常情况处理(400/404/500)

这里我们根据上一节中的接口文档,结合测试要点,编写这两个接口对应的测试用例。

jenkins接口测试_第3张图片
jenkins接口测试_第4张图片

2.3.4 执行测试用例

双击打开apache-jmeter -2.11\bin路径中的jmeter .bat文件,注意启动后的dos窗口不能关闭,在弹出的jmeter 操作页面中进行接口测试。

【步骤1】添加一个线程组

    在左侧“测试计划”中右键,选择添加-Threads(Users)-线程组(见下图)。

jenkins接口测试_第5张图片

【步骤2】在刚添加的线程组中创建一个Sampler/Http请求(见下图)。

jenkins接口测试_第6张图片

【步骤3】选择新建的http请求,设置服务地址、端口、请求uri、请求参数等。

(1)GET请求

 对GET的请求类型,我们将请求的参数PIN在请求路径的后面即可(见下图),表示请求从第1页开始,每页返回10条数据;

jenkins接口测试_第7张图片

(2)POST请求

对于POST的请求类型,我们将请求的参数写入到Body Data中(见下图)。

jenkins接口测试_第8张图片

由于该服务接口仅接受json格式数据,需要设定header信息。此时我们在线程组中添加Http信息头管理器(见下图)。

jenkins接口测试_第9张图片

添加Content-Type参数,值为application/json,如下图:

jenkins接口测试_第10张图片

【步骤4】添加察看结果树。

添加“察看结果树”用来展示API请求结果及响应断言验证结果(见下图)。

jenkins接口测试_第11张图片

【步骤5】发送http请求。

2.3.5 察看返回结果

点击左侧的查看结果树,即可进入查看结果树页面(如下图)。

jenkins接口测试_第12张图片
jenkins接口测试_第13张图片

对于返回的数据,我们不能仅仅根据返回的结果标识来判断是否正确,还需结合业务内容来判断返回的数据信息是否正确。

有时我们需要对验证返回的结果进行断言,验证返回的json数据中包含xxx。此时我们可以通过添加断言来处理。具体操作如下:

(1)添加断言

在添加的线程组右键,选择添加-断言-响应断言。如下图:验证请求的医生接口中返回的json数据是否包含”李敏“。

jenkins接口测试_第14张图片

(2)添加断言结果

     在添加的线程组右键,选择添加-监听器-断言结果(如下图),点击运行,如果返回的结果包含“李敏”信息,则返回定义线程组名称-医生查询。

jenkins接口测试_第15张图片

 如果返回的结果不包含“李敏”信息,此时我们修改要测试的模式中数据为:李敏656565。在查看结果树中看以看到断言结果:Assertion failure message: Test failed: text expected to contain /李敏656565。

jenkins接口测试_第16张图片



使用jmeter 工具注意点:

使用jmeter 工具是有时会遇到jmeter 应答体(应答要素)乱码,可通过如下办法进行解决。

(1)   修改apache-jmeter -2.11\bin路径下的jmeter .properties文件;

(2)把ISO-8859-1修改为utf-8格式;

(3)保存jmeter .properties 并重新启动jmeter .bat即可;

2.4 【非GUI】命令行方式

使用非 GUI 模式,即命令行模式运行Jmeter 测试脚本能够大大缩减所需要的系统资源。具体操作如下:

(1)进入apache-jmeter -2.11\bin目录下;

(2)执行jmeter –n –tsmartXY_Demo.jmx –l logfile.jtl –H 192.168.57.177 –P18080

jenkins接口测试_第17张图片

(3)执行结果可以使用 GUI 模式下的聚合报告查看

     打开 Jmeter GUI界面 -> 测试计划 -> 添加线程组 -> 添加聚合报告 -> 点击"所有数据写入一个文件"下的 "浏览..." 按钮找到你刚生成的 jtl 文件就可以对执行结果进行直观分析了。

Tips

jmeter 默认去当前目录寻找脚本文件,并把日志记录在当前目录。比如你在 C:\tools\apache-jmeter-2.11\bin 目录下执行以上命令,jmeter 会去该目录下寻找smartXY_Demo.jmx脚本并把执行结果放在该目录。如果你的脚本在其他目录,而且想要把执行结果放在另外文件夹,可以使用绝对路径告诉 Jmeter,比如:

各参数含义如下:

 -n非 GUI 模式 -> 在非 GUI 模式下运行Jmeter

-t 测试文件 -> 要运行的Jmeter 测试脚本文件

-l 日志文件 -> 记录结果的文件

-r 远程执行 -> 启动远程服务

-H 代理主机 -> 设置Jmeter 使用的代理主机

-P 代理端口 -> 设置Jmeter 使用的代理主机的端口号

2.5 压力测试

【步骤1】启动jmeter.bat,添加一个线程组。

【步骤2】设置线程组中各参数值。如下图:

jenkins接口测试_第18张图片

其中,线程数是指要启动多少个线程进行测试,Ramp-Up Period指的是在10秒内平均启动这些线程,即一秒钟启动10个线程,循环次数是循环多少次这样的测试,选中永远的话需要强制终止测试。调度器主要是一些启动时间上的设置。

【步骤3】选择新建的http请求,设置服务地址、端口、请求uri、请求参数等。

【步骤4】添加图表分析监听器。(添加-断言-图形结果)

【步骤5】执行压力测试。(点击执行后,选择图形结果)执行结果见下图:

jenkins接口测试_第19张图片

图表底部参数的含义如下:样本数目是总共发送到服务器的请求数。最新样本是代表时间的数字,是服务器响应最后一个请求的时间。吞吐量是服务器每分钟处理的请求数。平均值是总运行时间除以发送到服务器的请求数。中间值是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。

也可通过表格查看结果,选择添加-监听器-用表格查看结果,然后设置“用表格查看结果”的主要参数,点击“Configure”按钮,在弹出的窗口中选中“Save Response Data” 项,以保存响应数据。

jenkins接口测试_第20张图片
jenkins接口测试_第21张图片

你可能感兴趣的:(jenkins接口测试)