本文主要针对http接口进行测试,使用Jmeter工具实现。
Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,笔者使用Jmeter工具从对Http接口的测试进行入手。
本节主要介绍如何通过录制的方法对http接口进行测试,下节将介绍如何通过.jmx脚本的方式对接口进行测试。

1.介绍什么是接口
现在最常用的2种接口就是webservice和http api接口,webservice 接口是走soap协议通过http传输,请求报文和返回报文都是xml格式,可以通过jmeter、soapui工具进行测试;http api接口是走http协议通过路径来区分调用的方法,请求报文格式都是key-value形式,返回报文一般是json串,常见的请求方式有get、post请求等;
2.介绍http协议常见的2种请求方式的区别
get和post请求:
get请求:从指定的服务器中获取数据,直接在浏览器里输入就可以获取信息;
post的请求:提交数据给指定的服务器处理,可以向服务器发送修改请求,从而修改服务器的,需要借助测试工具;
get请求特点:
(1)get请求能够被缓存
(2)get请求会保存在浏览器的浏览记录中
(3)以get请求的url能够保存为浏览器书签
(4)get请求有长度限制
(5)get请求主要用以获取数据
post请求特点:
(1)post请求不能被缓存
(2)post请求不会保存在浏览器浏览记录中
(3)以post请求的url无法保存为浏览器书签
(4)post请求没有场地限制

3.录制脚本的方式(本文以测试平台为例进行讲解)
3.1利用badboy进行录制
badboy录制的优点在于:不会产生大量无用请求,且具有可视化的能力。
实现步骤如下:
3.1.1
(1)首先打开badboy,这里以测试平台为例"http://10.0.0.113:81/index/",这边可以输入你需要录制的域名或ip
图中标1的是录制开关按钮,录制状态
标2的地方输入域名或IP
标3的地方在请求的时候会出现录制的脚本信息

(2)点击开始录制,域名链接成功后,右侧框内会出现测试平台的界面

(3)在界面内进行想要录制的操作,左侧的脚本栏中会自动生成录制过程,将你所进行的操作以及结果录制下来,简单的做一个小demo

(4)录制完成后点击结束按钮,可以右键点击工程进行回放某一步操作或者回放整个操作(badboy还具有打断点,多次执行脚本等很多的功能,此处不做详细讲解)。
(5)录制完成之后,可以通过badboy将脚本导出在jmeter中进行使用,首先先把刚才录制的脚本导出来
工具栏:File——Export To Jmeter 导出为Jmeter格式,保存到桌面
(6)接下来使用jmeter打开录制成功的脚本
通过打开bin文件夹下的jmeter文件打开jmeter

(7)导入脚本后打开

左侧能够看到刚刚录制的脚本内容:

(8)接下来就要在jmeter中执行刚刚录制的脚本了,但是执行之前需要添加一个监听器-查看结果树来查看运行状况

(9)在查看结果树中能够查看每个请求的状态以及响应数据


(10)添加一个简单的断言:响应断言

响应断言设置为包含http响应码为200

添加断言监听器,打印满足响应码为200的请求并保存

(11)再次执行脚本,查看查看结果数和断言监听器中打印的结果
查看结果树的结果:

断言监听器的结果(打印了成功的请求):

网友评论