关于服务端接口知识的汇总
大家好,今天给大家分享一下之前整理的关于接口知识的汇总,对于测试人员来说,深入了解接口知识能带来诸多显著的好处。
一、为什么要了解接口知识?
接口是系统不同模块之间交互的关键通道。只有充分掌握接口知识,才能真正理解系统的架构和运行机制,从而更好地把握系统的整体质量。接口的稳定性直接影响着整个系统的性能和用户体验,测试人员作为质量的守护者,必须对接口有深入的认知,才能为系统的高质量交付保驾护航。
二、测试人员了解接口知识 可以带来哪些好处?
1、了解接口知识有助于更高效地发现和定位问题。当测试过程中遇到错误或异常时,凭借对接口的熟悉,能够迅速判断是前端还是后端的问题,从而精准地开展排查工作,大大缩短解决问题的时间。
2、它能让测试工作更具全面性和深度。能够设计出更完善、更有针对性的测试用例,覆盖接口的各种可能情况,包括正常场景、异常场景以及复杂的参数组合等,确保系统在接口层面的稳定可靠。
3、了解接口知识便于更好地与开发团队沟通协作。可以使用专业的术语和开发人员进行有效的交流,准确理解开发的意图和实现逻辑,提出有价值的建议和反馈。
三、什么是服务端接口?
服务端接口是服务器端提供给其他系统或客户端与之交互的特定访问点和规则集合。
具体来说,它具有以下特点:
服务端接口定义了客户端可以请求的具体操作和功能。这些操作可能包括数据的查询、添加、修改、删除等。它明确了请求的方式,如使用特定的 HTTP 方法(GET、POST、PUT、DELETE 等)。接口还规定了输入参数的要求,比如参数的类型、格式、必填项等。同时,也定义了返回数据的结构和内容,包括正常情况下的数据响应以及可能出现的错误信息和状态码。
通过服务端接口,客户端能够与服务器进行有效的通信和数据交互,以实现各种业务功能和数据处理任务。服务端接口是构建分布式系统和实现不同组件之间协作的重要桥梁。
四、接口的组成部分有哪些?
接口名称:用于标识该接口的独特名称。
请求方法:如 GET、POST、PUT、DELETE 等,规定了客户端与服务器交互的方式。
请求路径:明确具体的访问路径。
请求参数:包括参数名称、类型、是否必填等信息,用于传递数据给服务器。
响应格式:如 JSON、XML 等,定义了服务器返回数据的结构形式。
响应状态码:表明请求处理的结果状态,如 200 表示成功,404 表示未找到资源等。
错误处理说明:描述在出现各种错误情况时的提示信息和处理方式。
五、接口的请求方式都有哪些?
1、GET:用于从服务器获取指定资源,通常用于查询操作,数据会显示在 URL 中。
2、POST:向服务器提交数据,通常用于创建或更新资源,数据通常放在请求体中。
3、PUT:用于更新服务器上的资源,通常是全量更新。
4、DELETE:用于删除服务器上的指定资源。
5、PATCH:用于对资源进行部分更新。
6、HEAD:与 GET 类似,但只返回响应头信息,不返回响应体。
六、接口响应的网络状态码有哪些?
1xx:信息提示
● 100:继续。
2xx:成功
● 200:请求成功。● 201:已创建(资源创建成功)。● 202:已接受(请求已被接受,但可能尚未处理)。● 204:无内容(请求成功,但没有返回内容)。
3xx:重定向
● 301:永久移动(资源已永久转移到新位置)。● 302:临时移动(资源临时转移到新位置)。● 304:未修改(资源未发生变化,使用缓存即可)。
4xx:客户端错误
● 400:错误请求(请求存在语法错误或不合理)。● 401:未授权(需要认证才能访问)。● 403:禁止访问(有授权但禁止访问该资源)。● 404:未找到(请求的资源不存在)。● 405:方法不允许(请求方法不被允许)。● 408:请求超时。
5xx:服务器错误
● 500:内部服务器错误。● 502:错误网关。● 503:服务不可用(服务器暂时不可用)。● 504:网关超时。
七、http与https的区别是什么?
1、安全性:
HTTPS 是在 HTTP 的基础上通过 SSL 或 TLS 协议进行加密传输,安全性更高,可以防止数据在传输过程中被窃取或篡改;而 HTTP 是明文传输,安全性较低。
2、端口:
HTTP 默认使用 80 端口;HTTPS 默认使用 443 端口。
3、证书:
HTTPS 需要服务器配置数字证书来进行加密通信。
4、对搜索引擎排名的影响:
一些情况下,使用 HTTPS 可能对搜索引擎排名有一定积极影响。
5、性能开销:
由于需要进行加密和解密,HTTPS 相对 HTTP 会有一定的性能开销,但通常可以通过优化来缓解。
八、如果接口由http修改为https,需要增加哪些测试点?
1、证书验证:检查服务器证书的有效性、合法性,包括证书的颁发机构、有效期等。
2、加密通信测试:确保数据在传输过程中确实是加密的,无法被轻易解密和窃取。
3、连接建立测试:验证 HTTPS 连接的建立是否正常,是否存在连接失败或异常情况。
4、性能影响评估:对比更改前后的性能,查看是否有明显的延迟增加等问题。
5、兼容性测试:与不同的客户端(如各种浏览器、应用程序)进行兼容性测试,确保都能正常工作。
6、安全漏洞扫描:利用安全工具进行扫描,检查是否存在新引入的安全漏洞。
7、与其他系统交互:如果接口与其他系统有交互,要确保这种更改不会影响到交互的稳定性和正确性。
8、异常情况处理:测试在证书过期、吊销等异常情况下,系统的处理是否恰当。
9、重定向测试:检查从 HTTP 到 HTTPS 的重定向是否正确、及时。
10、恢复到 HTTP 测试:如果有需要,测试从 HTTPS 切换回 HTTP 的情况是否正常。
九、如何编写接口测试用例?
1、 明确接口信息:
深入理解接口的功能、参数、返回值等。
2、正常场景:
按照接口预期的正常使用方式设计用例,如传入合法的参数,验证返回正确的结果。
3、参数异常:
传入空参数、无效参数、类型错误的参数等,检查接口的错误处理。
4、边界值:
测试参数的边界情况,如最小值、最大值、边界值附近的值等。
5、多参数组合:
考虑不同参数的各种组合情况,验证接口的正确性。
6、数据量:
针对可能存在数据量限制的情况,测试大、小数据量的处理。
7、安全性:
尝试一些可能存在安全风险的操作,如越权访问等。
8、性能相关:
设计一些能测试接口性能的用例,如高并发请求。
9、与其他接口关联:
如果有相关联的接口,考虑它们之间的交互情况。
10、状态切换:
针对有状态的接口,测试不同状态之间的切换。
11、文档一致性:
确保用例与接口文档的描述相符。
12、详细描述:
对每个用例清晰地描述输入、预期输出和测试步骤。
十、如何判断一个BUG是前端还是服务端?
1、从现象分析:
如果界面显示异常、布局错乱、交互卡顿等,可能是前端问题;如果数据不正确、缺失或业务逻辑处理有误,可能是服务端问题。
2、检查请求和响应:
使用浏览器开发者工具等查看请求是否正确发出,参数是否准确传递,如果请求没问题但响应数据异常,很可能是服务端问题;如果请求本身就有问题,比如格式错误等,那可能是前端问题。
3、对比预期值:
明确正常情况下应该得到的数据或结果,与实际情况对比,看偏差出现在前端处理还是服务端处理阶段。
4、日志分析:
查看服务端的运行日志,看是否有错误信息提示服务端存在问题;前端也可能有一些日志可辅助判断。
5、在不同环境测试:
如果在其他类似环境中前端表现正常,而只有特定环境有问题,可能指向服务端;反之则可能是前端问题。
6、与其他功能对比:
看类似功能在前端的表现,如果其他正常,那出现问题的可能是这个功能相关的服务端逻辑。
相关文章:

关于服务端接口知识的汇总
大家好,今天给大家分享一下之前整理的关于接口知识的汇总,对于测试人员来说,深入了解接口知识能带来诸多显著的好处。 一、为什么要了解接口知识? 接口是系统不同模块之间交互的关键通道。只有充分掌握接口知识,才能…...

树(数据结构)
树的定义 一个根结点,其余结点分为 m 个不相交的集合, 其中每个集合本身又是一棵树,并且称为根的子树。 树的根结点没有前驱,其他结点有且仅有一个前驱。 所有结点可以有0个或多个后继。 基本术语 结点的度 树的度 : 树…...

Spring底层入门(十一)
1、条件装配 在上一篇中,我们介绍了Spring,Spring MVC常见类的自动装配,在源码中可见许多以Conditional...开头的注解: Conditional 注解是Spring 框架提供的一种条件化装配的机制,它可以根据特定的条件来控制 Bean 的…...

优质资料:大型制造企业等级保护安全建设整改依据,系统现状分析,网络安全风险分析
第1章 项目概述 XX 大型制造型企业是国内一家大型从事制造型出口贸易的大型综合企业集团,为了落实国家及集团的信息安全等级保护制度,提高信息系统的安全防护水平,细化各项信息网络安全工作措施,提升网络与信息系统工作的效率&am…...

几种监控工具学习
在Linux上有很多监控工具,比如Zabbix、Prometheus、APM和ELK 监控工具是确保系统稳定运行的关键组件之一,它可以帮助系统管理员和开发人员及时发现并解决问题。 以下是几种流行的监控工具的简要介绍: Zabbix: Zabbix 是一个企…...

树莓派python开发
树莓派自带thonny 点亮LED灯 import RPi.GPIO as GPIO import time# 设置GPIO模式为BCM GPIO.setmode(GPIO.BCM)# 设置LED引脚 led_pin 18# 设置LED引脚为输出 GPIO.setup(led_pin, GPIO.OUT)# 点亮LED GPIO.output(led_pin, GPIO.HIGH)# 延时2秒 time.sleep(2)# 关闭LED GPI…...

纯血鸿蒙APP实战开发——首页下拉进入二楼效果案例
介绍 本示例主要介绍了利用position和onTouch来实现首页下拉进入二楼、二楼上划进入首页的效果场景,利用translate和opacity实现动效的移动和缩放,并将界面沉浸式(全屏)显示。 效果图预览 使用说明 向下滑动首页页面超过触发距…...

苹果cms:开启高速缓存加快访问速度
由于苹果cms采集的影片数据过多,如果不设置缓存,可能会造成网站访问缓慢,或者CPU消耗过高。随着用户访问量的上升,添加缓存设置是有这个必要的。目前cms提供了四种缓存方式 1)file:以文件形式,通俗说直接访问Mysql,要达…...

实时数据推送——长轮询,短轮询,长连接
短轮询 短轮询是最简单的一种数据推送方式,客户端在固定的时间间隔(例如每隔5秒)向服务器发送请求,询问是否有更新的数据。服务器立即处理请求并返回数据,不论数据是否真的已经更新。 长轮询 长轮询是对短轮询的改进…...

七.音视频编辑-创建视频过渡-应用
引言 在上一篇博客中,我们已经介绍了创建视频过渡的实现方案,步骤非常繁琐,在生成AVMutableVideoCompositionInstruction和AVMutableVideoCompositionLayerInstruction的计算也十分复杂,但其实还有一个创建视频组合的捷径。不过我…...

Android11 InputManagerService启动流程分析
InputManagerService在systemserver进程中被启动 //frameworks\base\services\java\com\android\server\SystemServer.java t.traceBegin("StartInputManagerService"); inputManager new InputManagerService(context);//1 t.traceEnd(); //省略 //注册服务 Servi…...

【计算机网络篇】数据链路层(8)共享式以太网的退避算法和信道利用率
文章目录 🛸共享式以太网的退避算法🥚截断二进制指数算法 🍔共享式以太网的信道利用率 🛸共享式以太网的退避算法 在使用CSMA/CD协议的共享总线以太网中,正在发送帧的站点一边发送帧一边检测碰撞,当检测到…...

wordpress主题 7B2 PRO主题5.4.2免授权直接安装
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 WordPress 资讯、资源、社交、商城、圈子、导航等多功能商用主题:B2 PRO 其设计风格专业且时尚,功能十分强大,包括多栏布局、自定义页面、强大的主…...

Dubbo基本使用
Dubbo基本使用 1.项目介绍2.开发步骤2.1 启动注册中心2.2 初始化项目2.3 添加 Maven 依赖2.3.1 父pom.xml2.3.1 consumer模块和provider模块pom.xml 2.4 定义服务接口2.5 定义服务端的实现2.6 配置服务端 Yaml 配置文件2.7 配置消费端 Yaml 配置文件2.8 基于 Spring 配置服务端…...

JS解密之新js加密实战(二)
前言 上次发了一篇关于新加密的,只解了前边两层,这中间家里各种事情因素影响,没有继续进一步研究,今天百忙之中抽空发布第二篇,关于其中的一小段加密片段,我认为分割成多个小片段是更容易被理解的。逻辑相…...

tsconfig 备忘清单
前言 ❝ Nealyang/blog0 使用 ts 已多年,但是貌似对于 tsconfig 总是记忆不清,每次都是 cv 历史项目,所以写了这篇备忘录,希望能帮助到大家。 本文总结整理自 Matt Pocock 的一篇文章3,加以个人理解,并做了…...

jmeter后置处理器提取到的参数因为换行符导致json解析错误
现象: {"message":"JSON parse error: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Ill…...

栈与队列的实现
前言 本次博客将要实现一下栈和队列,好吧 他们两个既可以使用动态数组也可以使用链表来实现 本次会有详细的讲解 栈的实现 栈的基础知识 什么是栈呢? 栈的性质是后进先出 来画个图来理解 当然可不可以出一个进一个呢,当然可以了 比如…...

线性集合:ArrayList,LinkedList,Vector/Stack
共同点:都是线性集合 ArrayList ArrayList 底层是基于数组实现的,并且实现了动态扩容(当需要添加新元素时,如果 elementData 数组已满,则会自动扩容,新的容量将是原来的 1.5 倍),来…...

llama3 发布!大语言模型新选择 | 开源日报 No.251
meta-llama/llama Stars: 53.0k License: NOASSERTION llama 是用于 Llama 模型推理的代码。 提供了预训练和微调的 Llama 语言模型,参数范围从 7B 到 70B。可以通过下载脚本获取模型权重和 tokenizer。支持在本地快速运行推理,并提供不同规格的模型并…...

SpringBoot 具体是做什么的?
Spring Boot是一个用于构建独立的、生产级别的、基于Spring框架的应用程序的开源框架。它的目标是简化Spring应用程序的开发和部署过程,通过提供一种快速、便捷的方式来创建Spring应用程序,同时保持Spring的灵活性和强大特性。 1. 简化Spring应用程序开…...

Debian常用命令
Debian是一个开源的Unix-like操作系统,提供了大量的软件包供用户安装和使用。在Debian系统中,命令行界面(CLI)是用户与系统进行交互的重要工具。以下是Debian中一些常用的命令及其详细解释: 文件和目录操作命令&#x…...

常见的前端框架
常用的前端框架有以下几种: 模型 React:由Facebook开发的一款前端框架,采用虚拟DOM的概念,可高效地更新页面。Vue.js:一款轻量级的前端框架,易学易用,支持组件化开发和双向数据绑定。AngularJ…...

初学者如何选择ARM开发硬件?
在开始前我有一些资料,是我根据网友给的问题精心整理了一份「ARM的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!如果你没有ARM开发经验࿰…...

Mysql 多表查询,内外连接
内连接: 隐式内连接 使用sql语句直接进行多表查询 select 字段列表 from 表1 , 表2 where 条件 … ; 显式内连接 将‘,’改为 inner join 连接两个表的 on select 字段列表 from 表1 [ inner ] join 表2 on 连接条件 … ; select emp.id, emp.name, …...

【C语言】函数
目录 一、函数的概念 二、库函数 2.1 ❥ 标准库 2.2 ❥ 库函数的使用方法 三、自定义函数 四、形参和实参 4.1 ❥ 实参(实际参数) 4.2 ❥ 形参(形式参数) 五、return语句 六、函数的调用 6.1 ❥ 传值调用 6.2 ❥ 传址调…...

【LeetCode】每日一题 2024_5_13 腐烂的橘子(经典多源 BFS)
文章目录 LeetCode?启动!!!题目:找出不同元素数目差数组题目描述代码与解题思路 每天进步一点点 LeetCode?启动!!! 好久没写每日一题题解了,今天重新起航 干…...

【Linux系统编程】第十七弹---进程理解
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、进程的基本概念 2、描述进程-PCB 2.1、什么是PCB 2.2、为什么要有PCB 3、task_ struct 3.1、启动进程 3.2、创建进程…...

【网络安全入门】你必须要有的学习工具(附安装包)零基础入门到进阶,看这一篇就够了!
工欲善其事必先利其器 在新入门网络安全的小伙伴而言。这些工具你必须要有所了解。本文我们简单说说这些网络安全工具吧! Web安全类 Web类工具主要是通过各种扫描工具,发现web站点存在的各种漏洞如sql注入、xss等。从而获取系统权限,常用的…...

【解决】:git clone项目报错fatal: fetch-pack: invalid index-pack output
象:之前一直使用gitee将个人学习和工作相关记录上传到个人gitee仓库,一直没出现过问题。直到有一天换电脑重新拉取代码发现出了问题,具体如下图: 原因分析: 经过查询发现主要原因是因为git clone的远程仓库的项目过大…...