脱离页面呈现,前段页面尚未完成,直接测试接口功能。重点是检查数据的交换、传递的正确性。通常包括测试接口参数检查、接口的参数传入及接口返回值是否正确。
目的是验证接口正确性和稳定性(压测)。
侧重接口本身,cs/bs均有接口测试。
一、测试方法
get:从服务器上获取数据,在数据查询时,一般用这个。
post:向服务器上传数据,在数据添加、修改或删除时,一般用。
put:和post相似,向服务器发送数据,但指定资源存放的位置。
接口类型:API、GUI、Dubbo(远程调用接口,阿里研发)
二、接口分类:
1、功能分类
系统中功能模块(一般同一个服务器,同一个数据库【黑盒】);
系统间接口(不同服务器不同数据库,数据库类型不一样【灰/白盒】)。
2、类型分类
业务接口:(黑盒)又称联机接口,系统或功能间有业务逻辑关系。测试方法注重逻辑间控制,以及反向操作;
数据接口:(白盒)数据上下游接口,涉及加密问题。
3、层级分类
直接接口:联机接口;
间接接口:通过第三方中转后,才进行连接。(APP验证码)
三、测试范围:
1、业务测试:正常场景、异常场景
2、参数测试:等价类、边界值(业务规则边界、输入参数边界)、其他(必填项、特殊符号、空格、特殊值、数据库或开发语言特殊语句)
3、性能测试:响应时间、吞吐量、最大并发数、服务器硬件资源(CPU、memory、io输入输出、network网络在用)
4、安全性测试:数据信息参数加密、绕过验证(提交订单传递参数价格时修改价格,看下后端有没有验证或者支付时订单抓包,修改支付金额,能否以支付金额支付)
5、逻辑接口测试
a.接口请求参数分析:
*请求参数必填项、可选项
*输入合法、非法参数
*请求参数边界值
b.接口响应结果:
*对异常请求的处理
*请求头的处理
*存在业务关联
*涉及数据库交互的
*结构
*节点值有效性
*列表结构排序
c.接口测试用例编写要点:
* 测试每个参数类型不合法的情况(类型不合法容易遗漏NULL型)
* 测试每个参数取值范围不合法的情况
* 测试参数为空的情况
* 测试参数前后台定义的一致性
* 测试每个参数的上下限(这里容易出致命的BUG,如果程序处理不当,可能导致崩溃)
* 如果两个请求有严格的先后顺序,需要测试调转顺序的情况