当前位置:网站首页>接口测试概念
接口测试概念
2022-08-09 07:10:00 【HDLaZy】
1:接口测试概念
接口:
将内部实现的细节进行封装,对外提供交流的入口,就是接口
- 操作系统:用户和硬件交互的接口
- 硬件接口:网口,USB接口
- 软件接口:微信支付接口,支付宝支付接口
软件接口:
- 从功能上看,可以将接口当作一个黑匣子,上游负责输入参数,下游负责输出数据
- 从数据流看,接口就是前端和后端数据库交互的纽带,用于数据传输,处理数据
- 从本质看,接口就是方法或者函数
按照协议划分接口:
- WebService:基于SOAP协议,请求报文和响应报文都是XML格式
- WebSocket:全双工的长链接,基于CS架构
- 长链接:一旦链接,如果客户端和服务端不主动退出链接,则一直存在(心跳信息保活)
- 全双工:双发都可以同时发送/接收消息
- HTTP:基于TCP协议,无连接,单向通讯,基于BS架构
- 单向通信:浏览器发起请求,服务器响应请求
- 无连接:只有服务器处理请求时,才知道改请求报文是谁发送的,响应后服务器不会保存浏览器信息
按照调用方式划分接口:
- 系统间的接口:支付接口,聚合数据接口
- 服务间的接口:前后端接口
- 系统内的接口:微服务中系统内部相互调用服务的接口
- 分布式:多台服务器功能不一致
- 集群:多台服务器功能一致
自动化测试金字塔:
越靠近塔底,收益越高
自动化接口测试由于WebUI自动化的原因:
- 前后端分离的项目,后端开发会快于前端开发,接口测试可提前进行,达到测试前移的目的,尽早地发现问题,降低了成本,提高收益
- 对于多前端的系统,前端分为电脑Web,手机Web,手机App,小程序等,WebUI自动化测试脚本维护难度大,而后端的自动化接口测试脚本只有一套,维护方便,即使存在改动,也会向前兼容
- 自动化接口测试可以测试到WebUI自动化无法测试的内容
- 前端有信息校验,而接口测试可以测试异常数据
- 接口测试可以跳过某个执行流程(不按照页面正常流程执行)
- 一个用户只能抢购一个商品(界面的时候,抢购以后,按钮就是灰色了),可以通过接口进行多次抢购
接口测试原理:
通过代码或者工具向服务器模拟浏览器发送请求,服务器接收请求后,进行业务逻辑处理并将响应的数据发送给代码或者工具,代码或者工具收到响应后和预期结果进行比较。通过构造不同的参数对返回值进行检查。
2:接口测试流程
1:需求分析
- 接口文档包含的系统接口
- 接口的入参和返回值
- 接口间的依赖
- 接口的功能
- 接口的请求地址(相对路径,方便不同环境切换)
- 接口的请求方式(post/get/put/delete)
2:用例设计
- 参数:
- 参数的等价类划分,边界值分析
- 默认值参数判断默认值是否正确,合理
- 必选和非必选的组合设计
- 测试非法值:空格,特殊字符等
- 多参数,少参数,错位参数情况
- 返回值:
- 用例覆盖所有返回值
- 考虑数据库的数据量(可能由于数据多而超时)
- 状态转换的接口需要覆盖所有状态
- 图标类接口,查看图像走向
- 业务逻辑:
- 存在操作时序的接口,打破时许测试
- 状态转换的接口,打破正常的转换流程测试
- 约束性接口,打破约束测试
- 接口设计:
- 接口合理性
- 接口名风格一致性
- 接口参数设计合理性
- 性能:
- 接口响应时间
- 并发请求接口
- 安全:
- SQL注入
- DDOS攻击(同一个IP短时间内大量访问该接口)
- 用户权限问题
- 操作日志录入
口测试工具:
- python+pytest (轻量)
- java+HttpClient(重量)
- jmeter(专业)
- postman(简单)
边栏推荐
- 【ROS2原理8】节点到参与者的重映射
- SIGINT, SIGKILL, SIGTERM signal difference, summary of various signals
- way of thinking problem-solving skills
- P6 ali machine test of 2020 Fibonacci number
- P1505 [National Training Team] Tourism Tree Chain Breakdown
- list and string conversion
- 分布式事务的应用场景
- Lottie系列三 :原理分析
- 一站制造项目及Spark核心面试 ,220808,,,
- list与string转换
猜你喜欢
随机推荐
P1505 [国家集训队]旅游 树链剖分
【转载】Deep Learning(深度学习)学习笔记整理
way of thinking problem-solving skills
SAP ALV data export many of the bugs
分布式事务产生的原因
c语言位段
排序第一节——插入排序(直接插入排序+希尔排序)(视频讲解26分钟)
【Shell】查找进程的pid并根据pid获取该进程所占用的端口号以及该进程在系统中所下达的指令名称
先序遍历,中序遍历,后序遍历,层序遍历
信息反馈平台的设计与实现(一、项目设计)
2019南昌网络赛 C题,Hello 2019
【Docker】Docker安装MySQL
Singleton DCL (double check the lock) full han mode and the hungry
failed (13: Permission denied) while connecting to upstream
Lottie系列二:高级属性
Mysql实操
【nuxt】服务器部署步骤
细谈VR全景:数字营销时代的宠儿
The AD in the library of library file suffix. Intlib. Schlib. Pcblib difference
The maximum validity period of an SSL certificate is 13 months. Is it necessary to apply for multiple years at a time?