接口测试基础知识

news2024/10/6 12:34:59

一、接口测试简介

什么是接口测试?

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

测试的重点:

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

为什么做接口测试?

什么是微服务

在这里插入图片描述

微服务的特点

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

接口测试的目的

  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集成
运维生产环境验证、问题跟踪线上接口自动化巡检、服务可用性检查

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能对我们的生活影响有多大?

一、标题解析 本文标题为“人工智能对我们的生活影响有多大?”,这是一个典型的知乎风格SEO文案标题,既能够吸引读者,又能够体现文章的核心内容。 二、内容创作 1. 引言:在开头,我们可以简要介绍人工智能…

PVE系列-LVM安装MacOS的各个版本

PVE系列-LVM安装MacOS的各个版本 环境配置大概过程:详细步骤:1.建立安装环境和下载安装工具2. 重启后,执行osx-setup配置虚拟机3. 安装到硬盘,4.设定引导盘,以方便自动开机启动5.打开屏幕共享和系统VNC最后的结果 引子…

【Node.js】基础梳理 6 - MongoDB

写在最前:跟着视频学习只是为了在新手期快速入门。想要学习全面、进阶的知识,需要格外注重实战和官方技术文档,文档建议作为手册使用 系列文章 【Node.js】笔记整理 1 - 基础知识【Node.js】笔记整理 2 - 常用模块【Node.js】笔记整理 3 - n…

第三节:提供者、消费者、Eureka

一、 提供者 消费者(就是个说法、定义,以防别人叭叭时听不懂) 服务提供者:业务中被其他微服务调用的服务。(提供接口给其他服务调用)服务消费者:业务中调用其他微服务的服务。(调用…

java基于springboot框架的中小企业人力资源管理系统的设计及实现+jsp

(1)员工信息管理:员工的基本信息,人员编制,岗位管理,人员流动管理(老员工转出,辞职,退休等),职工业绩考核归公管理,工人工种管理。 &…

负电源电压转换-TP7660H

负电源电压转换-TP7660H 简介引脚说明典型应用电路倍压与反压的应用电路 简介 TP7660H 是一款 DC/DC 电荷泵电压反转器专用集成电路。芯片能将输入范围为 2.5V~11V 的电压转换成相应的-2.5V~-11V 的输出,电压转换精度可达99.9%,电…

【矩阵论】Chapter 2—内积空间知识点总结复习

文章目录 内积空间1 内积空间2 标准正交向量集3 Gram-Schmidt正交化方法4 正交子空间5 最小二乘问题6 正交矩阵和酉矩阵 内积空间 1 内积空间 内积空间定义 设 V V V是在数域 F F F上的向量空间,则 V V V到 F F F的一个代数运算记为 ( α , β ) (\alpha,\beta) (α…

VS安装QT VS Tools编译无法通过

场景: 项目拷贝到虚拟机内部后,配置好相关环境后无法编译,安装QT VS Tools后依旧无法编译,查找资料网上说的是QT工具版本不一致导致的,但反复试了几个版本后依旧无法编译通过。错误信息如下: C:\Users\Ad…

Gee教程5.中间件

鉴权认证、日志记录等这些保障和支持系统业务属于全系统的业务,和具体的系统业务没有关联,对于系统中的很多业务都适用。 因此,在业务开发过程中,为了更好的梳理系统架构,可以将上述描述所涉及的一些通用业务单独抽离…

1.2 Ubauntu 使用

一、完成VMware Tools安装 双击 VMwareTool 打开 Ubuntu 终端快捷键 AltControlT 切换汉语的快捷键是Alt空格 ls 打印出当前所在目录中所有文件和文件夹 cd 桌面 进入桌面文件夹 sudo ./vmware-install.pl 安装tool,输入之前设置的密码。 地址默认,按…

matlab simulink 永磁同步电机PI调速控制

1、内容简介 略 27-可以交流、咨询、答疑 2、内容说明 永磁同步电机调速控制 永磁同步电机PI调速控制 永磁同步电机PI调速控制、PMSM 3、仿真分析 略 4、参考论文 略 链接:https://pan.baidu.com/s/1AAJ_SlHseYpa5HAwMJlk1w 提取码:rvol 路…

程序猿无烦恼:让养生专家来写代码!!!

自己的经验,也是看旁边焦虑的开发总结的一些经验,讲道理不一定有用,但是道理本身一定是对的。 文章目录 持续学习少烦恼明确需求少问题少盯荧幕多冥想少吃奶茶多锻炼亲近自然要放空 持续学习少烦恼 C、JAVA、python、数据库…… 唯有持续学…

HarmonyOs 4 (三) ArkTS语言

目录 一 认识ArkTs语言1.1 ArkTs1.2 基本结构 二 基本语法2.1 声明式UI2.1.1 创建组件2.1.1.1 无参数2.1.1.2 有参数2.1.1.3 组件样式2.1.1.4 组件方法2.1.1.5 组件嵌套 2.1.2 自定义组件2.1.2.1 基本结构2.1.2.2 成员函数/变量2.1.2.3 自定义组件的参数规定2.1.2.4 Build函数2…

Android RatingBar实现五星好评

属性 isIndicatorRatingBar 是否为指示器,为true时,用户将无法交互操作,默认为false。 numStars 显示的星型数量,必须是一个整形值,像“50”,虽然可以设置很大,但一般…

每日一题:NowCower-JZ64.求1+2+3+...+n

每日一题系列(day 10) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

Git——分支应用进阶

主要内容包括以下几个方面: 长期分支和短期分支的类型以及用途。多种分支模型,其中包括基于工作流的主题分支。不同分支模型的发布流程。在多个预览版程序中使用分支修复安全问题。远程跟踪分支和refspecs规范,以及默认远程版本库配置。拉取…

人工智能基础创新的第二增长曲线

编者按:2023年是微软亚洲研究院建院25周年。借此机会,我们特别策划了“智启未来”系列文章,邀请到微软亚洲研究院不同研究领域的领军人物,以署名文章的形式分享他们对人工智能、计算机及其交叉学科领域的观点洞察及前沿展望。希望…

C陷阱与缺陷——第8章建议

不要说服自己相信”皇帝的新装“,有些看上去正确的语句实际是有问题的直接了当地表明意图,当你写的代码有可能被误解成其他含义时,可以通过加注释等方式让你的意图更加清晰;有些错误可以做到事先预防 4. 考察最简单的特例&#xf…

Hdoop学习笔记(HDP)-Part.11 安装Kerberos

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

牛客小白月赛82(A~C)

目录 A.谜题:质数 输入描述 输出描述 输入 输出 解析 B.Kevin逛超市 2 (简单版本) 输入描述 输出描述 输入 输出 思路 C.被遗忘的书籍 题目描述 输入描述 输出描述 输入 输出 输入 输出 思路 比赛链接 牛客小白月赛82_ACM/NOI/CSP/CCPC/ICPC算…