接口
概念
接口是指系统或组件之间进行交互的交互点,通过这个交互点可以实现数据的交互(数据交互的通道)
接口就是数据交互的通道,在系统或组件之间,完成数据的传递
接口的类型
按划分形式。大致分为三类
1、按协议分。协议不同,接口类型不同。HTTP、TCP、UDP、IP、FTP、USB...
2、按语言分。Java、Python、C++、Php...
3、按范围分。系统之间、程序内部
1)系统之间:内部系统之间、内部系统与外部系统之间
2)程序内部:方法(函数)和方法(函数)之间,类和类之间。模块和模块之间
接口测试
接口测试:是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系
-
测试系统或组件之间交互的数据的正确性,以及逻辑以来关系的正确性
接口测试原理
模拟客户端向服务器发送请求,服务器接受请求后进行响应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期
-
数据(预期结果)从哪儿来:
根据用户需求
-
怎样校验
借助工具、代码模拟客户端。组织数据
用工具或代码模拟客户端,向服务器发送请求,校验服务器回发的响应数据是否与预期结果一致
特点
-
测试可以提前介入,提早发现Bug,符合质量控制迁移的理念
-
可以发现一些页面操作发现不了的错误
-
接口测试低成本高效益(底层的一个Bug能够引发上层8个左右的Bug,接口测试可以实现自动化)
-
不同于传统的单元测试,接口测试是从用户的角度对系统进行全面的检测
1.提早介入,符合测试的质量控制前移原则
2.接口测试可以发现也页面操作发现不了的问题。
3.低成本高收益(接口的一个bug,可能对应上层界面 N 个 bug)
4.接口测试不同于传统的单元测试,它是站在用户的角度展开测试
实现方式
-
工具实现
-
Postman、fiddler、jmeter
-
-
代码实现
-
Python + UnitTest + requests
-
什么是自动化接口测试
-
利用工具、代码代替人工,自动判断 响应结果和预期结果 是否一致。依赖断言
接口自动化测试的技术栈
-
基于工具的接口自动化
Postman + newman + git + Jenkins
Jmeter + Ant + git + Jenkins
Apifox == Postman + Swagger + Jmeter + Mock
-
基于代码的接口自动化
Python + requests + pytest + yaml + 热加载 + allure + logging + jenkins
Java
-
基于平台的接口自动化
测试开发
HTTP协议
HTTP协议简介
概念
-
协议:一种标准,一种规则,要求使用的双方必须严格遵守
HTTP:是一个基于请求与响应模式的、应用层的协议
HTTP协议的特点
1.支持客户端/服务器模式
2.简单快速
3.灵活
4.无连接
5.无状态
URL
URL:统一资源定位符,是互联网上标准资源的地址。HTTP使用URL来建立连接和传输数据
URL格式
<span style="background-color:#f8f8f8"><span style="color:#333333"> http://www.bilibili.com/video/BV1h54y1L7kz/?p=10&spm_id_from=pageDriver&vd_source=b66905727bc1f7f535a96fc90e82162d
协议与域名(ip)之间的分割符是 ://
域名与端口号之间的分割符是 :
资源路径与查询参数之间的分隔符是 ?
查询参数内,各个参数之间的分隔符是 &
'http' (协议)
'www.bilibili.com' (域名)
'/video/BV1h54y1L7kz' (资源路径)
'/?p=10&spm_id_from=pageDriver&vd_source=b66905727bc1f7f535a96fc90e82162d' (查询参数)</span></span>
HTTP 协议的默认端口:80
HTTPS 协议的默认端口