一.接口定义
1.软件不同部分之间的交互接口。通常就是所谓的API――应用程序编程接口。
二.接口的分类
1.HTTP接口:HTTP API接口走HTTP协议,通过路径来区分调用的方法,请求报文入参有多种形式,返回报文一般为json串,最常见的是get和post方法。
2.Webservice接口:WebService接口是走soap协议,请求报文和返回报文都是xml格式,通过SoapUI工具进行测试。
3.RESTful接口。
三.为何要进行接口测试
1.接口测试必要性
系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。同时接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。
接口持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。
2.接口测试原理
模拟客户端向服务器发送请求报文,服务器接收请求报文后对报文做处理并向客户端返回应答,客户端再接收应答的。
3.接口测试范围
接口的功能、性能、安全性。重点关注数据的交换,传递和控制管理过程,还包括处理的次数。
接口测试对象是接口,但随着系统复杂度越来越高,接口越来越多,完全覆盖是很困难的事情。
通常情况主要测试最外层的两类接口:数据进入系统的接口(调用外部系统的参数为本系统使用)、数据流出系统接口(验证系统处理后的数据是否正常)
四.接口文档示例
1.接口文档应该包括哪几部分?
接口说明
调用的url
请求方法(get、post)
请求参数,参数类型、请求参数说明
返回参数说明
返回示例
2.示例:
五.Postman工具
1.Cookies——管理cookie模式是通过点击cookie链接访问的。该特性允许管理与请求相关的cookie。
2.Code——生成的代码片段模式通过保存按钮下面的最右边的Code链接。该特性允许生成与请求相关的代码片段。
六.借助Postman完成HTTP请求接口测试
(1)Get 请求
https://postman-echo.com/get?foo1=bar1&foo2=bar2
HTTP GET请求方法是从服务器检索数据。
数据由惟一URI(统一资源标识符)标识。
GET请求可以使用“查询字符串参数”将参数传递给服务器。
例如http://example.com/hi/there?hand=wave,参数“hand”的值等于“wave”。
(2)POST:URI 传参
(3)POST:Form-data 传参
(4)POST:x-www-form-urlencoded传参
(5)POST:raw 传参
(6)POST:binary 传参
(7)Authentication Method——权限认证方法
GET Basic Auth
增加auth信息
DigestAuth
Hawk Auth
OAuth1.0(verify signature)
(8)Headers——添加header
七.单一接口测试流程
1.示例API:https://developers.douban.com/wiki/?title=book_v2#get_book
步骤一:使用Postman工具发送该Get请求
步骤二:添加测试
针对该API添加了3个测试
(1)要求响应时间小于200ms
(2)要求status code等于200
(3)要求Response body中包含字符串“金庸”
注:当然还可以增加更多的测试点