接口测试基础知识

一、接口测试简介

什么是接口测试?

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

测试的重点:

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

为什么做接口测试?

什么是微服务

在这里插入图片描述

微服务的特点

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

接口测试的目的

  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.mzph.cn/news/190036.shtml

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

相关文章

『吴秋霖赠书活动 | 第五期』《Kubernetes原生微服务开发》

【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平…

企业加密软件有哪些(公司防泄密软件)

企业加密软件是专门为企业设计的软件,旨在保护企业的敏感数据和信息安全。这些软件通过使用加密技术来对数据进行加密,使得数据在传输和存储过程中不会被未经授权的人员获取和滥用。 企业加密软件的主要功能包括数据加密、文件加密、文件夹加密、移动设备…

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

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

优彩云采集器最新版免费下载,优彩云采集器免费

随着网络时代的发展,SEO(Search Engine Optimization,搜索引擎优化)已经成为网站推广和营销的关键一环。在SEO的世界里,原创内容的重要性愈发凸显。想要做到每天更新大量原创文章,并不是一件轻松的事情。优…

mybatis源码(五)springboot pagehelper实现查询分页

1、背景 springboot的pagehelper插件能够实现对mybatis查询的分页管理,而且在使用时只需要提前声明即可,不需要修改已有的查询语句。使用如下: 之前对这个功能一直很感兴趣,但是一直没完整看过,今天准备详细梳理下。按…

大数据湖项目建设方案:文档全文101页,附下载

关键词:大数据解决方案,数据湖解决方案,数据治理解决方案,数据中台解决方案 一、大数据湖建设思路 1、明确目标和定位:明确大数据湖的目标和定位是整个项目的基础,这可以帮助我们确定项目的内容、规模、所…

C语言--每日选择题--Day32

如果大家对读研究生和就业不知道如何抉择,我的建议是看大家的经济基础,如果家里不是很需要你们工作,就读研提升自己的学历,反之就就业;毕竟经济基础决定上层建筑; 第一题 1. 下面代码的结果是:…

springsecurity的NullPointerException产生

springsecurity的NullPointerException产生 01 异常发生场景 当我使用springsecurity请求后端数据时 以下是报错代码 02 问题的产生原因 发生空指针异常,无非就几种 类对象没有初始化,地址默认为null指向的数据为空查找到的数据为空与数据类型冲突 …

最长连续递增序列

最长连续递增序列 描述 : 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 …

92基于matlab的引力搜索算法优化支持向量机(GSA-SVM)分类模型

基于matlab的引力搜索算法优化支持向量机&#xff08;GSA-SVM&#xff09;分类模型&#xff0c;以分类精度为优化目标优化SVM算法的参数c和g&#xff0c;输出分类可视化结果及适应度变化曲线。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 92 引力搜索算法…

数据结构 / 队列 / 循环队列 / 概念

1. 定义 为充分利用向量空间&#xff0c;克服假溢出现象的方法是&#xff1a;将向量空间想象为一个首尾相接的圆环&#xff0c;并称这种向量为循环向量。存储在其中的队列称为循环队列&#xff08;Circular Queue&#xff09;。循环队列是把顺序队列首尾相连&#xff0c;把存储…

如何下载IEEE出版社的Journal/Conference/Magazine的LaTeX/Word模板

当你准备撰写一篇学术论文或会议论文时&#xff0c;使用IEEE&#xff08;电气和电子工程师协会&#xff09;的LaTeX或Word模板是一种非常有效的方式&#xff0c;它可以帮助你确保你的文稿符合IEEE出版的要求。无论你是一名研究生生或一名资深学者&#xff0c;本教程将向你介绍如…

OpenTelemetry系列 - 第3篇 OpenTelemetry Collector

目录 一、介绍Collector二、安装Collector2.1 Docker方式2.2 Windows系统安装 三、配置Collector四、exporter配置4.1 导出到Skywalking4.1.1 导出metrics、logs4.1.2 通过zipkin导出traces到Skywalking 4.2 导出到Jaeger4.3 导出到zipkin4.4 导出到Prometheus4.4.1 Prometheus…

【报名】2023产业区块链生态日暨 FISCO BCOS 开源六周年生态大会

作为2023深圳国际金融科技节系列活动之一&#xff0c;由深圳市地方金融监督管理局指导&#xff0c;微众银行、金链盟主办的“2023产业区块链生态日暨FISCO BCOS开源六周年生态大会”将于12月15日下午14:00在深圳举办。 今年的盛会将进一步升级&#xff0c;以“FISCO BCOS和TA的…

20231202将RK3399的挖掘机开发板在Andorid12系统下编译ENG模式

20231202将RK3399的挖掘机开发板在Andorid12系统下编译ENG模式 2023/12/2 10:21 百度搜索&#xff1a;RK3399 编译 ENG版本 RK3399 lunch ENG Z:\rk_android12_220722\device\rockchip\rk3399\AndroidProducts.mk # # Copyright 2014 The Android Open-Source Project # # Lice…

php5构造无字母数字的webshell实现任意命令执行

目录 引言 如果是在php7 如果是在php5 现在我们来上传文件 最后的结果&#xff1a; 看本篇前可以先看这一篇&#xff1a;利用异或、取反、自增bypass_webshell_waf-CSDN博客 引言 上一篇介绍了如何构造出一个无字母数字的webshell&#xff0c;但是如果后端的代码变成了这…

采购业务中的主数据

目录 一、维护BP主数据业务伙伴BP的概念业务伙伴涉及的表业务伙伴维护操作一次性客商数据 二、维护物料主数据三、维护采购信息记录四、与FI相关集成点物料主数据的价格控制评估类与科目确定 一、维护BP主数据 业务伙伴BP的概念 在S/4HANA中&#xff0c;SAP引入了BP(Business…

使用 Java 来完成高德地图开发平台解决定位和解析问题

三军可夺帅也&#xff0c;匹夫不可夺志也 1、高德开发平台&#xff1a;平台地址 2、注册高德开发平台账号 3、导入SDK J版 import java.net.URL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.alibaba.fastjson.JSONObject;public class main {priva…

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

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

聊聊什么是IO流

目录 Java IOIO 基础Java IO 流了解吗&#xff1f; IO 设计模式1、装饰器模式2、适配器模式适配器模式和装饰器模式有什么区别呢&#xff1f;3、工厂模式4、观察者模式 IO 模型有哪些常见的 IO 模型&#xff1f;BIO(Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous …