目录
本章节将介绍利用Spider Proxy APP重放功能进行一些接口测试。
一、前言
数据重放,又称数据回放、是指复制与重新发送已经发送过的数据包给服务端来绕过验证,由于是服务端收到过的合法包,如果服务端未验证或验证不全面就可以顺利通过验证。
二、常用测试场景
测试过程中,发送短信接口、生成订单接口、支付接口等,可使用重放测试。接口重放后可多次生成有效的业务或数据,则可判断为存在接口重放问题。也可以利用重放次数对接口进行简单的性能测试。
重放测试是一种重要的安全测试,可以帮助测试人员确保系统的安全性。及时发现可能存在的安全漏洞,及时采取有效的应对措施,防止接口重放攻击。
三、重放测试工具
APP Store搜索下载“Spider Proxy”手机端抓包APP,以下主要介绍重放功能,如何复制接口参数执行重放、设置接口依赖、与设置响应断言。
四、重放示例
1. 复制接口数据执行重放
重放的过程主要为抓包截取、数据重放、服务端执行。
重放可以帮助我们批量造一些简单的测试数据,以商城项目为例,比如给系统刷商品点击量,重放100次,来刷100次商品点击量。
打开Spider Proxy APP开启抓包,获取商品详情接口后,将接口新建到重放。
如下图,将接口新建到重放时,会将接口所有请求参数完整的复制过来。
保存接口参数,设置重放时间。重放方式可以设置为Cron表达式、按次执行、自定义时间区间执行。如下图,重放时间设置为按次执行,每间隔1秒,向服务器请求100次查看商品详情的接口。开启重放和抓包,即可执行重放。
执行重放,可以查看重放请求数量统计,以及详情的请求记录。
重放任务执行完成后,该商品的浏览点击数增加了100次。
2. 接口依赖处理
接口测试过程中,经常会碰到接口依赖,即接口之间存在请求参数依赖,这时可以使用重放的存储功能。接口依赖的数据获取格式如下:
/// 获取响应状态码:$response.status
/// 获取响应头内容:$response.header.xxx
/// 获取响应体内容:$response.body.xxx.xxx
常见的场景如:如下图,购物车接口需要登录接口返回的参数token作为自己的请求参数。操作实例:
打开Spider proxy启动抓包,先获取登录接口、购物车接口。
将登录与购物车接口添加到同个重放任务,先对登录接口进行编辑:开启“存储”,添加键值对:键:token、值:$response.body.data.token,填写完后保存内容
再对购物车接口进行编辑:点击请求参数“token”,将值修改为变量“$token”,将所有内容全部保存即可。
接口参数修改保存后,执行重放任务,可以查看重放请求记录,登录接口会显示存储的token,购物车接口的请求参数可以正常获取到最新的token进行访问。
3. 设置响应断言
以下图接口响应数据为例,来添加响应断言。
与之前相同的操作,将接口添加到重放任务,进行接口编辑,打开“断言”,如下图添加两个断言,针对接口响应状态码为200、且响应体data.levelName为“萌新铜度”时,断言通过。
键:$response.status、值:200
键:$response.body.data.levelName、值:萌新铜度
保存断言及重放任务后,执行重放任务,查看请求记录及详情,如下图是断言通过。
将断言status改为其它的状态码,测试断言不通过时,会如下图展示