Jmeter接口测试(简单http接口测试及结果分析)
接口测试主要分为两类:代码层接口测试和Web HTTP接口测试,代码层接口测试更接近单元测试一些,而web接口主要表现为两类: 1、浏览器和服务器之间的接口 2、外部接口(第三方提供的接口)
1、打开Jmeter
开源版本和可执行版本均可在Apache官方网站上下载到,解压后打开bin目录下的jmeter.bat文件,即打开了用户界面:
2、添加相关组件
2.1、新建线程组
2.2、添加http请求
2.3、右键线程组--添加监听器--查看结果树
2.4、设置http请求相关参数
(1)相关说明
-
服务器名称或IP填你的服务器名或IP地址:192.168.96.8。
-
端口号填接口所用的端口号:如:8081
-
connect表示连接时间,比如10000毫秒;response表示响应时间,比如10000毫秒。(可以不写)
-
Implementation选HttpClient4;(可以不写)协议填http;Content encoding填utf-8。
-
路径填接口地址,如登录口/api/user/mobileLogin.jsp、/safe/0.0.1/JFFW/urlGenerate?access_token=f4fa6e9d-4302-4b68-b365-8539c06eca3f
注:填IP后面的接口地址,截止到“?”,“?”后面的是相应的参数。
路径填:/gis-web-api/assignController/list
-
添加参数,比如名称为username值为13246767401,名称为:password值liang521(或者填写你需要的请求报文)
(2)参数区域
①parameters:在这个中可以分开写,名称写参数名称 值就写参数需要请求的报文。
里面是键值的格式,如:
globalInfo {"fwsid":"credentials-client","fwid":"fe07501238e84f7a967036eba3480abe","qyid":"110101MXB6CK9617","jrfs":"app"}
data [{"fp_dm":"11001571071","fp_hm":"53744125","jshj":"3998.00"}] (数组的格式)
②BodyData :在这里可以把所有的报文写到一起,中间用逗号分开。如globalinfo和data参数。
1.如果使用Body Data进行参数化,一定要加上http请求头信息管理器(线程组->添加->配置元件->http请求信息管理器)的json格式类型:如 Content-Type: application/json
2.请求报文如:
{
"data":[{
"fp_dm":"111001571071",
"fp_hm":"53744125"
}],
"globalInfo":{
"fwsid":"credentials-client",
"fwid":"fe07501238e84f7a967036eba3480abe",
"qyid":"110101MXB6CK9617",
"jrfs":"app"
}
}
3、执行测试查看结果
也可右击HTTP请求添加--监听器--用表格查看结果
返回状态码200,表示请求成功,若请求失败则会返回400、404、500等
4、脚本优化完善
以下是三个最常用的配置元件
4.1 为线程组添加HTTP信息头管理器
发送http请求需要加入信息头时用此元件,如线程组中的所有请求均需要信息头,则可将此管理器升级为整个线程组共享或者整个测试计划共享。
4.2 添加http请求默认值
测试用例中每个接口的共同值可以用“HTTP 请求默认值”元件统计设置,省去每次请求都要填写的麻烦,它的值被整个线程共享(也可以被整个测试计划共享)。
一般将服务器的ip、端口等公用的信息设置在请求默认值中
4.3 添加响应断言
发送请求后,需要通过比对响应结果来判断测试结果是否ok,通过人为判断是可行的,但是当请求数量较大时,人为判断效率低下,添加“响应断言” 能够提高效率(判断基准有多个时,可以添加多个断言)。
4.4 添加其他元件
因测试用例较多时,基本的元件就很难有效的执行用例,我们常常还会用:正则表达式提取器、CSV DATA SET CONFIG、if条件控制器、循环控制器、用户定义变量等控制元件
6、简单分析结果树
测试结果可通过结果树监控器查看结果
-
取样器结果:返回值报200,表示执行接口调试成功
-
请求:发送的数据
-
响应数据:返回的数据
-
Thread Name:线程组名称
-
Sample Start: 启动开始时间
-
Load time:加载时长
-
Latency:等待时长
-
Size in bytes:发送的数据总大小
-
Headers size in bytes:发送数据的其余部分大小
-
Sample Count:发送统计
-
Error Count:交互错误统计
-
Response code:返回码
-
Response message:返回信息
-
Response headers:返回的头部信息