使用Jmeter测试接口
一、接口工具的分类
接口测试工具:这类工具提供的功能相对比较简单,可以模拟和发送HTTP请求,并显示返回接口数据,如HttpRequester、Postman、Fiddler等。接口自动化测试工具:相比接口测试工具,功能更加强大,一般提供用例的批量执行、接口返回结果的断言以及测试报告的生成等,如JMeter、Robot Framework、soapUI等。接口性能测试工具:主要用于测试接口的性能测试,验证接口处理并发的能力,如JMeter、LoadRunner、soapUI等工具。
二、使用Jmeter测试接口
1案例
测试获得城市天气情况的接口:http://wthrcdn.etouch.cn/weather_mini?city=省或直辖市名脚本规划 1、服务器名称或IP:wthrcdn.etouch.cn 2、端口:80或不填 3、方法:get 4、路径:/weather_mini 5、Parameters:city:省或直辖市名 6、响应数据
"status":1000,"desc":"OK"
"status":1002,"desc":"invilad-citykey"
...
2环境
Jre+Jmeter
复杂业务需要录制脚本:badboy复杂业务自定义脚本:Eclipse测试接口性能 1、硬件资源监控 2、可以配置负载机
3编写脚本
在测试计划下添加线程组→添加sampler→添加HTTP请求
服务器名称或IP:不要填http://端口号协议 1、http 2、https方法 1、get 2、postContent encoding 1、内容的编码方式,默认值为iso8859 2、一般不在此修改,而是修改文件jmeter\bin\jmeter.properties 3、支持中文:sampleresult.default.encoding=utf-8路径 1、目标URL路径(不包括服务器地址和端口) 2、开头的/不能省略自动重定向:如果选中该选项,那么发送HTTP请求后得到的响应就是302/301时,JMeter自动重定向到新的页面。跟随重定向:沿用之前的sessionidUse keep Alive:当该选项被选中时,JMeter 和目标服务器之间使用Keep-Alive方式进行HTTP通信,默认选中。Use multipart/from-data for HTTP POST:当发送HTTP的POST请求时,使用Use multipart/from-data方法发送,默认不选中。同请求一起发送参数 1、在请求中发送URL参数,对于带参数的URL,JMeter提供了一个简单的参数化方法。 2、用户可以将URL中的所有参数都设置在该表格中,表格的每一行是一个参数值。
在测试计划下→线程组→监听器→察看结果树
4增强脚本
4.1 断言
添加响应断言
4.2 正则表达式提取
本质是在响应中查找字符串可以解决关联问题。后置处理器→正则表达式提取器 1、获得省或直辖市的名称:ws.webxml.com.cn/WebServices/WeatherWS.asmx/getRegionProvince (1)属于B/S形式,使用SOAP协议 (2数据是xml形式 2、正则表达式:匹配数字"-1"表示取所有项
4.3 参数化
配置元件→CSV Data Set Config:测试能否成功获得全国各省或直辖市的天气情况
5运行测试
接口测试:一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。接口性能测试:修改线程数。