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