2 接口测试基础
# 学习目标
理解什么是接口
了解接口测试的分类
理解接口测试流程
# 什么是接口?
首先,接口是一个广泛的概念(两个不同系统交接并通过它彼此作用的部分)。例如水管接口,电路接口,usb接口,网线接口
水管接口:连接不同口径的水管
提问:
怎么描述一个水管接口?
使用接口和线缆连接两台拥有不同接口的设备
备注:
绿线(正电压数据线),用于输出信号;
白线(负电压数据线),用来输入信号
提问:
假设现在使用这样一条数据线,进行电脑和手机连接。并且发送一个文件到手机。请对此设计测试用例
正向case:
usb端插到充电器上;检查红蓝电源线、usb引脚、micro引脚 正常
usb插到电脑上,传输文件到手机;检查micro 白线、数据-接口、usb白线端口
usb插到电脑上,传输文件到电脑;检查micro 绿线、数据+接口、usb绿线端口
负向case:
大数据量
电流方向
电流电压
线材物理强度(温度、湿度、韧性。。。)
# 软件工程里的接口
# 代码中的接口
在我们的软件系统之中,前端 与 后端 是两大重要的组成部分
前端主要用于与用户交互, 用户通过前端可以提交数据并查看响应的结果
后端主要处理用户提交的数据产生响应,比如: 搜索引擎搜索关键字实现,常见的注册操作.... 都是客户提交数据到服务器,服务器处理并产生响应。
显而易见的。前端 与 后端 使用不同的技术栈,由不同的开发来编写。
二者之间代码是独立的,但是有数据交互。
# 接口规则-API
软件开发是一个团队协作的过程,比如,前端会交由专门的 UI 设计师实现,后端交由 Java、 Python...程序员实现,不同模块之间的交互,其实就是不同岗位之间的交互。这时候,我们会提前制定一系列的交互规则,所有项目参与者按照既定规则来描述需求、实现编码、进行调试,以提高开发效率。
应用程序接口(英语:Application Programming Interface[1] (opens new window)),缩写为API,是一种计算机,它定义多个软件 (opens new window)中介 (opens new window)之间的交互 (opens new window),以及可以进行的调用 (opens new window)(call)或请求 (opens new window)(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。它还可以提供扩展机制 (opens new window),以便用户可以通过各种方式对现有功能进行不同程度的扩展[3] (opens new window)。一个API可以是完全定制的,针对某个组件的,也可以是基于行业标准设计的以确保互操作性。通过信息隐藏 (opens new window),API实现了模块化编程 (opens new window),从而允许用户实现独立地使用接口。
# WebAPI范例:
# 内部API范例:
介绍动画:https://youtu.be/zvKadd9Cflc
# 小结
不同单元或模块之间进行通信的管道,它是一套规范,一套标准
# 接口测试的流程
接口测试流程图
# 接口测试的场景(功能)
在工作中,由于业务划分、需求侧重。导致接口测试会从不同的角度来开展
接口测试的几个场景
# 1.验证服务器报文
操作客户端|验证服务端
特点:
模拟真实用户,需要尽可能的考虑异常
主要验证服务端的日志、响应报文
# 2.验证数据库记录
使用接口调用|验证数据库记录
特点:
验证后台的SQL逻辑
# 3.验证服务器读表
操作表记录|验证服务逻辑
特点:
一般来说,这种操作是mock手段。例如黑名单业务,可以通过修改表记录后快捷的检查接口结果
# 4.验证客户端响应
篡改服务器响应|验证客户端响应
特点:
一般是用mock手段,假装服务器返回异常数据。用来检查客户端的表现。
# 5.验证相关服务的逻辑
操作我方接口|检查相关系统
特点:
例如在申请业务中,终端API有“上传身份证”接口。上传之后,可以检查影像平台有相关的日志、表记录、接口响应
# 接口case的设计
# 开展接口自动化需要什么?
接口实现:了解基本的web接口编码,例如flask
接口实现逻辑:我们的业务需求,实际上经过抽象和编码才形成了接口服务。所以在测试接口的时候,我们要先了解代码的判断条件、循环规则、参数的意义。。。。
数据库操作:修改表记录,数据库检查点都需要了解基本SQL
项目的表设计:了解表字段的意义,关键字段。。。
网络协议:目前大部分web接口都使用http协议,关于协议字段的组成、异常代码
代码基础:面向对象设计、requests库、pytest库、分支判断、循环、基本数据处理。。。