-
一、了解
1、什么是接口(API)?
内部接口:开发人员自行开发,对自己的系统提供模块之间数据交互。
用户接触不到,对安全性的要求不高。
外部接口:
- 系统对外提供的服务接口(银行:提供接口给微信等应用);
对安全非常重视,所以测试的覆盖率需达到极致。
- 开发系统调用外部的接口(电商项目:使用微信、支付宝的接口)。
只需要测试正例即可。
总结:软件提供给外部的一种服务,主要用于交互数据。
2、为什么需要接口?
能够让内部的数据被外部进行修改(银行---微信)。
3、为什么要做接口测试?
①项目前后端分离(mock server---前端)。
②基于安全考虑:前端js认证容易绕过,直接攻击后端接口,所以需要在接口层面对安全性做考虑 。(身份证、银行卡)=>使用鉴权码接口鉴权=>token、access-token、csrf-token、key。
③测试左移。(在开发阶段,尽早发现问题)
-
二、本质(函数---动作、方法)
接口协议:http/https、webservice、dubbo
接口测试的本质—>测试接口(函数)是否能够正常实现数据交互、异常场景提示、权限控制(token)
-
三、接口返回的数据格式
1、json:http、dubbo
返回数据常见规则:{error_code:错误码,message:错误码的中文说明,data:[]}
json数据详解:是一种数据格式,两种数据类型:
①键值对{key:value}
②列表[value1,value2,value3]
2、html:http
3、xml:webservice
-
四、接口架构
1、SOAP:webservice协议,接口地址:http://......?wsdl
- 轻量级的、简单的、基于XML协议的规范。
2、RPC:
- 远程调用,它像调用本地服务一样去调用远程服务器的接口服务。
- dubbo协议,阿里RPC架构,接口地址:dubbo://......;适用于数据量少的情况下的高并发。
- 基于SpringCloud的服务,微服务技术。
- thrift、RMI、Hessiasn。
3、RestFul(最主流)&#