接口测试基础
1. 什么是接口测试
接口测试是验证系统组件间接口数据交互的测试。重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试属于功能测试,
是通过接口文档上的调用地址、请求参数、拼接报文,然后发送请求,检查返回结果。
2. 接口测试必要性
可以发现页面操作发现不了的bug
检查系统的异常处理能力
检查系统的安全性、稳定性
前端发生变化,接口测试好了,后端无需再做改动
3. 接口测试流程
a 需求评审,熟悉业务和需求
b 开发提供接口文档
c 编写接口测试用例
d 用例评审
e 执行测试
f 提交测试报告
3.1 接口文档必备要素
接口说明
调用url
请求参数
请求方式
请求参数、参数类型、请求参数说明
返回参数说明
3.2 接口请求报文拼接方式
url拼接
url拼接规则为:Url?param1=value1¶m2=value2
问号前面是请求url,后面是请求参数和参数值,多个参数用&连接
如:https://api.douban.com/v2/book/search?q=邹伟伟
json串
需要测试工具完成,如postman、jmeter等。其传参方式符合json的组合规则。
3.3 接口类型
http api接口 : Http api 接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式,返回报文一般都是json串,请求方式有get、post等方式,这两种为最常用的请求方式。
webservice接口: Webservice 接口是走soap协议通过http传输,请求报文和返回报文都是xml格式,需要通过工具才能进行测试。
数据库访问接口: 数据库访问接口是走jdbc方式连接数据,对数据库进行增删改查操作,需要使用工具进行测试。
3.3.1 get、post区别
get使用url或cookie传参,post将数据存放在body中
get的url在长度上有限制,post数据可以很大
post比get更安全,因为数据在地址栏上不可见
一般get用于获取数据,post用于发送数据
3.3.2 http状态码
200 2开头表示请求发送成功
300 3开头表示重定向
400 4开头表示客户端发送请求有语法错误
401 访问页面未授权
403 无权访问
404 无此页面
500 5开头表示服务器异常
500 服务器内部异常
504 服务器端超时,未返回结果
4. 接口测试用例设计
4.1 接口测试用例设计规则
通过性验证(按照接口规范)
参数组合(多参数时)
安全验证
绕过验证(卖家传个普通用户id)
绕过身份授权(修改商品价格)
关键参数未加密
密码安全规则
异常数据(不按接口文档要求)
根据业务逻辑
4.2 接口测试用例模板要素
要至少要包含项目、模块、用例id、用例描述、请求url、请求方式、请求数据、预期结果、请求报文、返回报文、测试结果、测试人员等。如下图示: