一、接口
1. 定义
主要用于外部系统和系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。
2. 类型
按照划分形式,大致分为三类:
- 按照协议划分:
- HTTP
- TCP
- UDP
- IP
- FIP
- USB
- 按照语言划分:
- JAVA
- Python
- C++
- 按照范围划分:
- 系统间的接口
- 内部系统之间
多个内部系统之间的交互 - 内部系统和外部系统之间的交互
当需要从其他网站或服务器上获取资源信息,别人的网站肯定不会把数据库共享于你,只能提供一个写好的方法,让你调用此方法去获取数据,此时你引用他所提供的接口就能使用他写好的方法,从而达到数据共享的目的。
- 内部系统之间
- 程序内部的接口
方法与方法之间,模块与模块之间的交互
,程序内部抛出的接口
def bird():
something = '虫子'
eat(something)
def eat(something):
# print('小鸟在吃{something}')
print('小鸟在吃',something)
bird()
eg:比如 BBS系统 有登陆模块、发帖模块等,如果想要发帖,就必须先进行登录,那么这两个模块就得发生交互,它就会跑出一个接口,供内部系统进行调用。
3. 分类
-
webservice接口
webService接口是 soap协议 通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
-
http api接口
是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
4. 工作原理
可以简单的理解为接口就是一个URL,工作原理就会说URL通过get或post请求向服务器发送一些东西,然后得到一些相应的返回值,本质就是数据的传输与接收。
二、接口测试
1. 定义
所谓接口测试,就是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等
2. 原理
模拟客户端向服务器发送请求,服务器接收到请求后进行相应的业务处理,并向客户端返回响应数据,检查相应数据是否符合预期。
-
数据(预期结果)从哪里来:
- 根据用户需求
-
怎样校验:
- 借助工具、代码去模拟客户端,组织数据
3. 测试点
- 目的:测试接口的正确性和稳定性
- 重点:检查数据的交换、传递和控制管理过程
- 核心:持续集成
- 实现:
- 工具:Postman、Jmeter、Fiddler
- 代码:Python + UnitTest + requets
4. 特点
- 测试可以提前介入,提早发现 BUG ,符合质量控制前移的理念;
- 可以发现一些页面操作发现不了的问题;
- 接口测试地成本高效益,越底层发现bug,它的修复成本是越低的;
- 不同与传统的单元测试,接口测试是从用户的角度对系统进行全面的检测。
- 检查系统的安全性、稳定性
5. 知识点
-
了解系统及内部各个组件之间的业务逻辑交互
需求文档、流程图、思维导图、沟通等
-
了解接口的 I/O(input/output:输入输出)
《图解http》、《图解tcp、IP》
-
了解协议的基本内容,包括:通行原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见状态码、URL构成
-
数据库基础操作命令
-
常见的字符串类型