什么是接口?为什么要做接口测试?
1.什么是接口?
接口是 外部系统与内部系统 或者 内部系统各子系统之间的交互点;这些交互点通过特定的协议进行数据交互。
2.接口都有哪些类型?
接口一般分为两类:
程序内部接口:方法与方法之间、模块与模块之间的交互,程序内部抛出的接口,如bbs系统有登陆模块、发帖模块等等,如果你要发帖就必须先登陆,那么这两个模块就得有交互,它会抛出一个接口,供内部系统进行调用。
系统对外接口:如果想要到其他公司的服务器上获取信息和资源,别人肯定不会把数据库共享给你,他们只能给你提供一个他们写好的接口让你来获取数据,以达到共享的目的;比如查询天气
接口的分类:
1、webservice 接口
webservice 接口走的是soap协议,通过HTTP协议传输,请求报文和返回报文都是xml格式的,我们在测试的时候都可以铜鼓哦工具进行调试、测试等。
2、http API
Http API接口走的是http协议,通过路径区分调用的方法,请求报文都是key-value形式,返回报文一般都是json串,有get和post方法,这也是最常用的两种请求。
3.接口的本质是什么?
接口本质就是数据交互,通过资源位置符url来获取接口地址,通过get或者post方法向服务器发送数据请求,得到响应。
4.什么是接口测试?
接口测试是测试系统组件间接口数据交互的一种测试。主要校验接口之间的数据交互是否符合协议规则。测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
5.为什么要做接口测试?
- 今早进行系统集成测试,暴露bug
- 结局系统测试复杂度
- 屏蔽UI层的不稳定性
- 价差系统安全性、稳定性
- 接口经过测试稳定了,前端页面可以随便改,减少bug产生
6.接口测试的原理?
- 原理:模拟客户端向服务器发送请求报文,服务器接收报文后对响应的报文做处理并向客户端返回响应,客户端再接收响应的一个过程。
- 接口测试属于黑盒测试。作为黑盒测试,基本的测试思路是通过输入和输出判断被测试系统或者对象的逻辑
7.接口测试点关注点?
- 注重系统架构的额业务逻辑层,不注重UI操作或者用户感官
- 检查数据的交换,传递和控制管理过程
- 注重系统间的相互逻辑关系调用
8.接口测试的范围?
按照测试类型分:功能测试、性能测试、和安全
按照数据的输入输出分:
1、进入系统的接口
2、流出系统的接口
9、接口测试和UI测试的异同点
- UI的操作实际上就是用另一种方式调用接口,那么接口有多少种参数组合就要用UI构造多少种操作进行调用。
- UI操作所需要的数据可以用接口来生成
- 接口测试可以保证数据和逻辑的准确性,UI测试要考虑交互和界面展示的逻辑正确性
- UI测试需要重视接口调用不成功或者接口异常情况下UI的呈现方式和用户体验
- UI中可能会有一些状态的缓存信息(这样就不需要每次频繁的调用接口获取了)比如鉴权信息等,需要重点关注这些缓存的更新策略
10、接口测试的三种形式
- 手动测试:辅助工具、Fiddler、Postman、HttpWath。。。
- 自动化测试:自己开发的工具、SoapUI、RobotFramework。。。
- 性能测试:自己开发的工具、Jmeter、LoadRunner。。。
11、如何开展接口测试
- 找开发或者开发主管索要接口说明文档(API文档)。作用:是开发测试脚本的依据
- 熟悉业务,设计测试用例,准备测试数据
- 根据接口说明文档开发接口测试脚本,执行脚本
- API文档
- 测试文档接口说明,参数,返回值,是否齐全
- 熟悉业务
- 设计测试用例,准备测试数据
- 开发接口测试脚本
- 执行脚本,调入数据
- 提交BUG
- 写报告
一份好的接口说明文档是什么样的?
在项目中,一份完整的接口文档应该包含以下的内容:
- 接口说明
- 请求方式(get\post)
- 请求地址
- 请求参数、参数类型、请求参数说明
- 返回参数说明
- 返回示例
参考文章链接:
https://www.sohu.com/a/254976978_100194747
https://www.cnblogs.com/duxf100/p/12196866.html