一、接口
广义的接口(API):系统与系统之间进行通讯的协议,它既可以是抽象的,也可以是可见的。比如,user插口,库中提供的类及方法,web网站提供的数据接口。
狭义的接口(web数据接口):后端服务器,通过http形式,接受请求,返回响应数据。比如前后端分离的B/S和C/S架构接口,第三方接口等。
二、接口的数据类型
xml:相对来说xml比较古老,但也有不少现存系统在使用xml。主流技术标准是SOAP、ESDL、UDDI等。
json:目前相对主流的方案,具有相同含义到信息传输信息量比较小。
为什么会有接口?
可以进行深度定制化数据。
接口的优缺点:
优点:统一设计标准,前后端开发相对独立,扩展性灵活,前后端都可以使用自己熟悉的技术。
缺点:研发标准不统一,研发周期长,可扩展性差。
三、接口测试
接口测试是测试系统组件间数据交互的一种方式;是通过测试不同情况下的输入参数和与之对应的输出结果来判断接口是否符合或满足相应的功能性、安全性要求;是代替前端或者第三方来验证后端实现是否符合接口规范。
接口测试的作用:
通过接口测试,测试接口的正确性和稳定性,能快速定位bug,提高测试效率;能为项目平台带来高效的缺陷监测和质量监督能力;平台越复杂,系统越庞大,接口测试的效果越明显。
接口测试的原理:
模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收相应数据后进行判断。请求:是否正确,默认请求成功是返回200,假如请求错误返回400,404,500等状态码。检查:返回数据的正确性与完整性。安全性:接口一般不会暴露在网上任意被调用,需要做一些限制,比如必须登录或者请求次数、频率限制。
接口测试的流程:
分析接口文档和需求文档、编写接口测试计划、编写接口测试用例、接口测试执行、输出接口测试报告。
接口测试的分类:
web接口测试:服务器接口测试,是测试浏览器与服务器的接口,是B/S架构;外部接口测试,是测试的第三方接口。
模块接口测试:单元测试的基础,主要测试模块的调用与返回。
接口测试的要点:
接口的功能性实现:检查接口返回的数据与预期结果的一致性。
测试接口的容错性:例如传递的数据类型是错误的能否处理。
测试接口参数的边界值:例如传递的数据足够大或者为负数时能否处理。
测试接口性能:接口处理和响应数据的时间也是测试的一个方面,这牵扯到代码实现的优化。
测试接口的安全性:特别是第三方接口,比如登录的用户名密码第三方是否是通过密文传输的。
四、接口测试规范Restful
REST即表述性状态传递,在三种主流的web服务实现方案中,因为REST模式更加简洁,越来越多的web服务开始采用REST风格设计和实现。
URL:代表资源,应该包含名词,可在url中放置资源的id
请求方式:GET 查,POST 增,UPDATE/PATCH 改,DELETE 删
响应码:200成功,201创建成功,203删除成功,400请求失误,401未授权,403权限拒绝,404url或者资源不存在,405请求方式不支持,406请求所需的响应格式不支持,500服务器内部出错。
标准处理:查询200,单个资源url中包含资源主键,多个资源返回列表;增201返回完整的资源;改200返回完整的资源;删204无响应体。
请求响应格式