目录
1、接口是什么?
2、接口的类型
3、接口测试初识
3.1、什么是接口测试
3.2、原理
3.3、特点
3.4、什么是自动化接口测试
4、接口测试流程
5、传统风格接口与RESTful风格接口
6、接口文档
6.1、什么是接口文档
6.2、接口文档作用
6.3、展现形式
6.4、结构
7、接口用例设计
7.1、为什么要编写接口用例
7.2、接口测试用例文档的10要素
7.3、接口测试的测试点(测试维度)
7.4、接口测试用例设计与手工测试设计不同之处
1、接口是什么?
接口其实就是系统与系统之间、组件与组件之间,数据传递交互的通道。
我们结合下图来看:
2、接口的类型
- 按协议划分:http、tcp、ip....
- 按语言划分:java、c++、php .....
- 按范围划分:系统之间、程序之间
说明:什么是系统之间:
系统之间就是内部系统与内部系统之间 或 内部系统与外部系统之间。内外之间,举例说明:我们现在支付大部分都是微信支付宝了,所以在涉及到支付相关时,都需要与微信或支付宝建立一个连接,能够支持用户支付,如下:
说明:什么是程序之间:
程序之间,其实就是方法与方法之间的、函数与函数之间的、模块与模块之间的~
3、接口测试初识
3.1、什么是接口测试
接口测试:就是对系统或组件之间的接口进行测试,校验传递的数据正确性和逻辑依赖关系的正确性。
3.2、原理
- 接口测试,主要针对的测试目标——服务器
- 怎么测:模拟客户端,向服务器发送请求
- 用什么测:工具(postman、fiddler、jmeter)、代码:Python / Java
- 测试什么:测试 服务器针对客户端请求,回发的响应数据是否与预期结果一致【观察 或 断言】
小结:接口测试就是通过模拟客户端与服务器之间的通信,验证接口的功能、性能、安全性。
3.3、特点
- 符合质量控制前移的理念
- 可以发现一些页面操作发现不了的问题
- 接口测试低成本高效益
- 接口测试是从用户的角度对系统进行检测
3.4、什么是自动化接口测试
自动化接口测试:就是我们借助工具、代码,来模拟客户端发送请求给服务器,借助断言自动判断预期结果和实际结果是否一致~
4、接口测试流程
- 分析需求,产品会给一个需求文档
- 开发后续会写一个接口文档
- 测试人员根据接口文档来编写接口测试用例
- 执行测试用例
- 提交、跟踪缺陷
- 生成测试报告
- 接口自动化持续集成【不一定都有这一步】
5、传统风格接口与RESTful风格接口
对http不熟悉的伙伴,可以先看看这篇文章,回顾一下:http://t.csdnimg.cn/QfDsv
传统风格接口的特点:
- 请求方法,只使用get和post方法
- URL不唯一。同一个操作可以对应不同的URL
- 状态码的使用比较单一。最常见:200
例如:
RESTful风格接口的特点:
- 每一个URL代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层(表现层:数据的不同表现形式,如:图片、文字表现同一个数据对象)
- 客户端通过4个HTTP动词(get、post、delete、put),对服务器端资源进行操作,实现“表现层状态转化”
- 接口之间传递的数据最常用格式为JSON
例如:
6、接口文档
6.1、什么是接口文档
由开发人员编写,描述接口信息的文档。
开发团队按接口文档进行开发工作,并要一直遵守
6.2、接口文档作用
- 能够让前端开发与后端开发人员更好的配合,提高工作效率
- 项目迭代或者项目人员更迭时,方便后期人员查看和维护
- 方便测试人员进行接口测试
6.3、展现形式
- word文档
- Excel表格
- pdf文档
6.4、结构
(1)、基本信息
- 资源路径(协议和域名在“系统信息”中)
- 请求方法
- 接口描述
(2)、请求参数
- 请求头----例:Content-Type 描述请求体的数据类型
- 请求体------实现该接口使用的数据及对应类型
(3)、返回数据
- 状态码200
- 错误码(自定义状态码) 【码值 + 描述信息】
7、接口用例设计
7.1、为什么要编写接口用例
- 防止测试点漏测。条理清晰
- 方便分配工作,评估工作量和时间
7.2、接口测试用例文档的10要素
- 编号
- 用例名称
- 模块
- 优先级
- 预置条件
- 请求方法
- URL
- 请求头
- 请求体
- 预期结果
7.3、接口测试的测试点(测试维度)
说明:
- 接口——功能测试——单接口功能:1.手工测试中的单个业务模块,一般对应一个接口,例如:登录业务对应登录接口;支付业务对应支付接口; 2.借助工具、代码。绕开前端界面,组织接口所需要的数据,展开接口测试
- 接口——功能测试——业务场景功能:1.先按照用户实际使用场景,来梳理接口业务场景;2.组织业务场景时,一般是只需要做正向测试即可(正向测试设计就是试图验证软件是工作的,即软件的功能是按照预先设计的执行的,以正向思维,针对系统的所有功能,逐个验证其正确性;反向测试设计就是认为软件有错的情况下去测试这个软件。);3.一般建议是使用最少的用例覆盖最多的业务场景
- 性能测试:可看这篇文章:http://t.csdnimg.cn/kBGxd ,也可继续关注博主,后面会更新性能测试更详细的知识及使用~
- 安全测试——攻击安全:这个不需要咱们来做,一般是由专业的安全工程师来做~
- 安全测试——业务安全:1.敏感数据是否加密 ;2.SQL注入相关
7.4、接口测试用例设计与手工测试设计不同之处
接口测试用例设计与手工测试设计相同之处:需要设计的功能点与手工测试对应的功能是完全一致的~
不同之处:
- 手工测试是测写入到输入框中的数据是否正确;接口测试是测 参数对应的参数值是否正确
- 接口测试不单可以对参数值进行检查,还可以针对参数本身进行测试(可设计正向参数,也可反向参数~)
好啦,本期先到这里了,关于接口的如何使用工具操作,如何使用代码实现自动化,后面会持续更新~