接口测试基础知识

一、接口测试简介

什么是接口测试?

接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点:

  • 检查数据的交换,传递和控制管理过程;
  • 检查系统间的相互逻辑依赖关系等。

为什么做接口测试?

什么是微服务

在这里插入图片描述

微服务的特点

复杂度可控
  • 服务边界清晰
  • 体积小、复杂度低
  • 开发、维护简单
容错性更高
  • 可以使故障隔离在单个服务中
技术选型更灵活
  • 可以结合业务特性自由选择技术栈
可扩展性更强
  • 根据每个微服务的性能要求和业务特点来对服务进行灵活扩展
  • 独立部署,使得发布更高效

接口测试的目的

  1. 控制住接口质量,终端问题会少很多
  2. 提高回归测试效率,保证质量
  3. 发现更底层的问题
  4. 更早的发现问题
  5. 缩短测试周期
  6. 基于接口层面实现脱离手工的方式高效执行测试
  7. 接口自动化目的是提升效率

二、HTTP请求与RESTful API

HTTP请求常见请求方法

请求方法GETPOSTPUTDELETEPATCH
CURDReadCreate/UpdateUpdate/CreateDeleteUpdate
意义请求指定的页面信息,并返回实体主体向指定资源提交数据进行处理请求,POST 请求可能会导致新的资源的建立和/或已有资源的修改从客户端向服务器传送的数据取代指定的文档的内容请求服务器删除指定的资源用来更新局部资源

HTTP请求—请求报文

一个HTTP请求报文由请求行、请求头、空行和请求体4个部分组成:

请求行由三部分组成:请求方法,请求URL,HTTP协议版本
请求头用来说明服务器要使用的附加信息
空行通知服务器请求头结束
请求体可以添加任意的其他数据

HTTP响应—响应报文

响应报文由 状态行、响应头、空行和响应体组成

响应行1)响应的协议和版本号(2)响应状态码(3)响应状态描述符
响应头类似请求头,告知客户端的附加信息,是一系列 key-value 值
空行类似请求,用来分隔响应头和数据。
响应体响应的数据

HTTP响应–常见状态码

状态码说明
200OK:客户端请求已被成功接收,理解,接受。
400Bad Request:客户端请求有语法错误,不能被服务器所理解。
401Unauthorized :请求未经授权,这个状态代码必须和WWW-Authenticate 报头域一起使用。
403Forbidden:服务器收到请求,但是拒绝提供服务。
404Not Found:请求资源不存在,举个例子:输入了错误的URL。
500Internal Server Error:服务器发生不可预期的错误。
503Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常

三、接口测试策略

接口功能测试

接口功能测试用例设计的重点,在于功能性的业务逻辑检查参数检查

(1) 针对输入,可参考参数类型进行设计;
(2) 针对接口处理,可按照逻辑进行用例设计;
(3) 针对输出,可根据结果进行分析设计;

接口测试用例设计应该满足需求文档,且对异常场景进行友好处理;且测试
这个接口是否按照接口文档进行开发。

接口文档测试

接口文档测试也就是接口文档规范。

通过文档获取接口的说明、请求参数、响应参数以及一些依赖关系。
一般包括接口名、接口描述、接口地址、请求方式、请求参数和格式、响应参数和格式等。

接口异常测试

  • 非法参数测试
  • 幂等测试
  • 并发测试
  • 事务测试
  • 环境异常测试
  • 大数据量时测试

接口安全测试

  • API十大安全风险:
  • 失效的对象级别授权
  • 失效的用户身份验证
  • 过度的数据暴露
  • 资源缺乏和速率限制
  • 失效的功能级授权
  • 批量分配
  • 安全配置错误
  • 注入
  • 资产管理不当
  • 日志和监视不足

接口性能测试

用户视角

感受到的网站响应速度的快和慢。

开发视角

主要关注包括系统吞吐量,并发处理能力,系统稳定性,响应延迟等。

运维视角

主要关注基础设施性能和资源利用率。

如何设计接口压力测试方案

确定并发数:

可以通过尝试的方式。第一次设置自己预期接口需要达到的并发数,进行压力测试。然后通过二分法进行调整。

确定总请求次数:

可以尝试用现有线上业务每天产生的数量乘以一定的天数,作为接口压力测试的总请求次数

选取压力测试数据:

通常随机选择数据。但是要注意重复进行压力测试对性能的影响。

四、接口测试流程

阶段功能测试接口测试
需求熟悉业务,业务问题沟通,测试范围讨论自动化可行性研究,潜在自动化技术问题讨论
设计功能测试范围,参与人员 计划排期技术选型、排期、范围
开发测试用例编写、评审和优化编写和调试接口自动化脚本以及自动化场景
测试测试执行、问题追踪、复测接口测试执行、CICD集成
运维生产环境验证、问题跟踪线上接口自动化巡检、服务可用性检查

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/209680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenTelemetry系列 - 第1篇 相关概念

目录 一、背景二、概念2.1 Traces & Span2.2 Metrics2.3 Logs2.4 Baggage2.5 OTel2.6 OTLP2.7 Resources2.8 Instrumentation Scope2.9 Sampling 三、核心组件 一、背景 OpenTelemetry是一个可观察性框架和工具包,旨在创建和管理遥测数据,如跟踪、指…

一个用c#瞎写的sftp工具

0.下载地址 https://wwus.lanzouj.com/iOZUv1gkgpze 密码:123456 1.能进行单个和批量下载, 没有弄上传 2.速度奇差,可能是某些地方没弄好.有一定的进度显示,但是不太准. 3.很多地方没弄好,有能力的自己弄一下 4.在app.config文件配置sftp

深度学习第4天:感知机模型

☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 ​ 文章目录 感知机模型介绍 神经网络搭建感知机 结构 准备训练数据 感知机的损失函数与优化方法 测试结果 完整代码 多层感知机 结语 感知机模…

火车头插件-最全火车头伪原创图片存储等插件

火车头插件。作为一个功能强大的工具,火车头插件以其众多特色引起了广大用户的关注。而其中,火车头采集器更是备受瞩目。我们将分享火车头插件的安装教程,还会深入了解火车头伪原创插件的应用。 火车头插件安装教程 我们来安装火车头插件&a…

JavaScript 内存泄漏的检测与防范:让你的程序更稳定

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

HT7713 3A同步降压变换器 快速瞬态响应

HT7713 是一款 3A 降压转换器,具有Z少的外部元件和低关断电流。HT7713具有快速瞬态响应的特点,输出电容器采用低 ESR (聚合物)或超低 ESR(陶瓷),无需外部补偿。 HT7713在轻载时以脉冲跳跃模式工…

Spring Security 6.x 系列(8)—— 源码分析之配置器SecurityConfigurer接口及其分支实现

一、前言 本章主要内容是关于配置器的接口架构设计,任意找一个配置器一直往上找,就会找到配置器的顶级接口:SecurityConfigurer。 查看SecurityConfigurer接口的实现类情况: 在 AbstractHttpConfigurer 抽象类的下面可以看到所有…

HT81298 集成免滤波器调制D类音频功放

HT81298是一款内置升压的立体声D类音频功率放大器,HT81298内部集成免滤波器调制技术, 能够直接驱动扬声器,内置的关断功能使待机 电流Z小化,还集成了输出端过流保护、片内 过温保护、输入电源欠压异常保护、升压电压 过压保护等功…

Docker 环境中 Spring Boot 应用的 Arthas 故障排查与性能优化实战

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

Guns快速开发平台 Shiro反序列化漏洞复现

0x01 产品简介 Guns是一个现代化的 Java 应用开发框架,基于主流技术Spring Boot 2 Vue3,Guns的核心理念是提高开发人员开发效率,降低企业信息化系统的开发成本。 0x02 漏洞概述 Guns v5.1 及之前的版本存在 shiro 反序列化漏洞,…

1.0 十大经典排序算法

分类 算法 本系列算法整理自:https://github.com/hustcc/JS-Sorting-Algorithm 同时也参考了维基百科做了一些补充。 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序&#…

Google Chrome 下载 (离线版)

1 访问网址 Google Chrome 网络浏览器 2 点击 下载Chrome 3 直接运行 ChromeStandaloneSetup64.exe 其他: ####################### 谷歌浏览器 (Google Chrome) 最新版离线安装包下载 https://www.iplaysoft.com/tools/chrome/#google_vignette Google Chrome …

SpringBoot整合Activiti7——消息事件(十)

文章目录 消息事件开始事件中间事件边界事件代码实现xml文件测试流程流程执行步骤 消息事件 消息事件只有一个接收者&#xff0c;消息具有名字与载荷。 信息会储存在 act_ru_event_subscr 表中。 <!-- 定义消息 --> <message id"msgId1" name"msgName…

触控板绘画工具Inklet mac功能介绍

Inklet mac是一款触控板绘画工具&#xff0c;把你的触控板变成画画的板子&#xff0c;意思是&#xff0c;你点在触控板的哪里&#xff0c;鼠标就会出现载相应的地方。例如&#xff0c;但你把手指移动到触控盘左下角&#xff0c;那么鼠标也会出现在左下角&#xff0c;对于用户而…

富文本内容回显

<el-card><h7>正文内容</h7><template><div v-html"inputForm.bulletinData"></div></template></el-card> 通过 v-html 来回显数据

MidJourney笔记(6)-Niji模式

Niji模式 回顾一下,在讲解settings命令时,我们可以看到一个Niji字眼。 而且是在Midjourney V4之后才有的,那Niji到底是什么? Niji是MidJourney中用于绘制二次元/动漫风格的模型,那Niji的V4和V5有什么区别呢?

Docker Compose及Docker 知识点整理

目录 1、Docker Compose 简介 2、为什么要使用Docker Compose 3、Docker Compose安装使用&#xff08;Linux&#xff09; 3.1 下载 3.2 mkdir docker 文件夹目录 3.3 上传docker-compose到docker文件夹 3.4 移动到 /usr/local/bin 目录下 3.5 添加执行权限 3.6 修改文…

spring boot 3.2.0 idea从零开始

spring boot 3.2.0 idea从零开始 最新的spring initilizer 不再支持低版本java&#xff0c;只能选择17、21 。 我也被迫尝试下最新版本的java。 jdk下载地址 自定义好artifact和group之后点击下一步。 在这里选择需要的组件&#xff0c;我准备做web项目所以只选择spring web …

阿里云开源通义千问720亿参数模型,性能超越大部分商用闭源大模型

12月1日&#xff0c;阿里云举办通义千问发布会&#xff0c;开源通义千问720亿参数模型Qwen-72B。Qwen-72B在10个权威基准测评创下开源模型最优成绩&#xff0c;成为业界最强开源大模型&#xff0c;性能超越开源标杆Llama 2-70B和大部分商用闭源模型。未来&#xff0c;企业级、科…

周报:浅谈对豆瓣网页实战的注意事项

制作整体网页时HTML代码和CSS代码的常用处理方法&#xff1a; 分开HTML代码和CSS代码&#xff0c;专门制作一个CSS文件专门来放置css代码&#xff0c;css文件里一般有作者样式(XXX.css)和通用样式(common.css)。这样会使代码更易维护&#xff0c;且整齐美观。 写代码前的注意…