如何做接口测试?
今天来聊聊接口测试,现在是2024年了,打开招聘网站随便点开一个招聘帖子,几乎都可以看到岗位JD要求写着有接口测试经验优先。其重要性可见一斑!
目前,凡是好一点稍具规模的公司哪怕是大厂外包也几乎都要求会接口测试,接口测试已经成为测试工程师的必备基础技能。
但是,还是了解到不少小伙伴所在的公司不做接口测试验证,只做web,app UI层面的校验。甚至,有些公司测试人员数据库都不需要校验,只是纯粹的黑盒测试,俗称点点点。这些公司都不建议久待,短时间做个跳板还行。
接口测试本质上也是功能测试的一种,属于后端服务器测试。但是它的影响范围要远广于web,app层面。原因很简单,因为目前很多公司,服务架构都是多端公用一套接口。
也就是说,和用户直接交互的UI界面,web,app,小程序,H5,它们有可能都是公用一套接口逻辑。后端如果服务器挂了,或者出bug了,这些终端可能都会出问题。所以,做接口测试就非常有必要了!
因为一个软件大部分的校验逻辑都在后端,前端仅仅是用来向用户展示数据以及输入数据。这就可以用来解释为什么公司的CTO一般都是后端程序猿出身。因为,后端远比前端要为复杂,需要考虑架构设计,并发,数据库架构存储......
由于关注小牛公众号的不少读者都是转行过来的,之前完全没IT基础,所以接口理解起来就是个很抽象的东西,不像前端页面那样直观。先来聊聊什么是接口?
简单来说,比如电脑的USB接口,你插上U盘就能拷贝数据,完全不需要关注电脑内部是如何实现的,USB接口就像一个桥梁一样将U盘和电脑连接到了一起,用来传输数据。
具体回到软件上来说,接口其实就是连接前端页面和后端的桥梁,主要就是用来传输数据,数据格式一般是json字符串。前端就包括web,app,H5等等,所以它们可以共用一套接口逻辑,只要定义好入参,暴露给这些终端调用就可以了。
具体到工作中来接口测试是怎么做的呢?以小牛公司为例,公司架构根据业务的不同划分为多个组,每个组都承担相应的业务。然后,这些不同组之间是如何协作交互的呢?没错,就是通过接口之间互相调用!
一般做接口测试时,开发都会提供相应的接口文档,接口文档上面定义了这个接口的url是什么,入参是如何定义的,返回信息是什么.....有同学会问,没有接口文档怎么办?这时候,你可以使用抓包工具进行抓包,然后查看分析即可。
对于公司规模较大,业务比较复杂,关联系统比较多时。拿到一个接口我们应该首先分析这个接口的上下游是谁?发起方是谁?这些接口之间调用逻辑是什么?把这些问题先搞明白再去具体分析这个接口的入参返参之类的。
最后才是测试这个接口,具体接下来怎么测试就要结合公司具体业务来讲了。
说了这么多,接口测试如何重要,那么作为萌新小白应该如何学习接口测试呢?重点来了!
首先,你要学习网络协议知识,因为大部分接口都是基于http协议的,当然还有其它的比如dubbo协议。其次,你需要学习两款测试工具,postman用来调用接口,fiddler用来抓包定位bug,当然,你使用浏览器自带的F12也是可以的。
最后,再说一下,为什么让大家一定要掌握好接口测试?
原因也简单,因为它是你后续深入进阶学习自动化和性能测试的基础。拿接口自动化来说,这是目前公司使用性价比最高的自动化,原因就在于ui自动化成本太高,经常页面大改,可能整个框架就废了,所以很多公司都优先做接口自动化,比较稳定,目前需求最多的。所以找工作,优先学习掌握接口自动化!
再来说说性能测试,目前做的最多的就是接口压测了,至于并发啊,负载啊全部是基于接口的,所以你说一下,接口测试重要不!当然性能测试水比较深,远不止这么简单,难点在于分析性能瓶颈,你需要对服务器以及数据库等做监控,然后分别排查分析,配合开发,找到系统瓶颈在哪里......
最后总结一下,接口测试不仅仅是你找工作的必备技能,更是你以后深入学习自动化以及性能测试的基础。除非,你想一直做点点点工程师,不然自动化测试和性能测试重要性不言而喻。当然,也不是你想点就一直能点的,非常容易就被淘汰!
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

-
文档获取方式: -
加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取
相关文章:
如何做接口测试?
今天来聊聊接口测试,现在是2024年了,打开招聘网站随便点开一个招聘帖子,几乎都可以看到岗位JD要求写着有接口测试经验优先。其重要性可见一斑! 目前,凡是好一点稍具规模的公司哪怕是大厂外包也几乎都要求会接口测试&a…...
U盘打不开提示格式化怎么办,U盘提示格式化数据恢复
U盘打不开提示格式化怎么办?在使用U盘的过程中,有时候我们可能会遇到U盘打不开的情况,并且提示需要格式化才能继续使用。这种情况下,我们应该如何处理呢?U盘承载着无数重要的数据,里面存放着是大家多年辛勤努力的结晶,这些文件见证很多东西。突然打不开,并提示格式化,…...
LeetCode - 存在重复元素
219. 存在重复元素 II 这道题可以用两个方法解决。 哈希表 从左到右遍历数组,并将数组的下标存到hash中,在遍历数字的过程中,如果hash中不存在nums[i],将nums[i]加入到hash当中,若存在,则判断下标之间的关…...
RUST egui体验
egui官方提供了web版的demo,效果还是很不错的,就是用的时候有点一头雾水,没有找到明确的指导怎么把这些组件插入到自己的application或者web。花了一天时间撸了一遍流程,记录一下,说不定以后能用到呢 >_< efram…...
详解llamaindex
什么是LlamaIndex LlamaIndex是一个用于LLM应用程序的数据框架,用于注入、结构化,并访问私有或特定领域的数据。 入门教程 简单使用 # Linux export OPENAI_API_KEYxxxwindows set OPENAI_API_KEYxxx# 代码中加入 API_SECRET_KEY "xxx" B…...
管理类联考–复试–英文面试–问题--规划介绍原因做法--汇总
文章目录 规划介绍原因做法 规划 一、提问方式:问题1:读研的规划;问题2:未来五年的规划;问题3:是否计划读博 常见问法1:Can you talk about your plans in the postgraduate period?…...
成都百洲文化传媒有限公司电商新浪潮的领航者
在当今电商行业风起云涌的时代,成都百洲文化传媒有限公司以其独特的视角和专业的服务,成为了众多商家争相合作的伙伴。今天,就让我们一起走进百洲文化的世界,探索其背后的成功密码。 一、百洲文化的崛起之路 成都百洲文化传媒有限…...
【Unity】获取游戏对象或组件的常用方法
前言 在Unity开发过程中,我们经常需要获取组件,那么在Unity里如何获取组件呢? 一、获取游戏对象 1.GameObject.Find GameObject.Find 是通过物体的名称获取对象的 所以会遍历当前整个场景,效率较低 而且只能获取激活状态的物体…...
html5cssjs代码 024 响应式布局示例
html5&css&js代码 024 响应式布局示例 一、代码二、解释 该HTML代码重点在于构建一个带有响应式设计的两栏布局网页,包含页头、导航条、主要内容区(左右两列)和底部区域,并运用CSS样式设置页面元素的布局、颜色、字体、间…...
json详解
文章目录 概述JSON 发展史什么是 JSON为什么要使用 JSONJSON 的不足JSON 应该如何存储什么时候会使用 JSON1) 定义接口2) 序列化3) 生成 Token4) 配置文件 Json分类json-lib开源的JacksonGoogle的Gson阿里巴巴的FastJsonJSON.simple JSON 序列化方式有哪些消息队列中传输的数据…...
C语言之---柔性数组
1.1前记 也许你从来没有听说过柔性数组这个概念,但是它是确实存在的。 C99中,结构中的最后一个元素允许是未知大小的数组,这就是柔性数组成员。 例如: struct st_type {int i;int a[0]; }; 有些编译器会报错无法编译可以改为:…...
鸿蒙错误记录
鸿蒙错误代码记录 只是记录学习过程中的错误 只是记录学习过程中的错误 刚开始入手学习鸿蒙,错误记录一下 BussinessError 200 授权没有成功,需要先申请权限 BussinessError 3301200:定位时没有网络,打开网络即可...
Leetcode热题100:图论
Leetcode 200. 岛屿数量 深度优先搜索法: 对于这道题来说,是一个非常经典的图的问题,我们可以先从宏观上面来看问题,也就是说在不想具体算法的前提下,简单的说出如何找到所有的岛屿呢? 如图中所示&#x…...
刚进公司第一天-电脑环境搭建
写在前面 之前在公司做过一次开发小工具的分享,这两天有个同事找我学习一些小工具开发的知识,但是我发现他的基础是真的差,想学开发知识却连自己本地电脑环境都没弄好,确实,有些人工作了很久,由于自己工作中…...
kubernetes集群报 unable to load bootstrap kubeconfig处置思路
一.现状和问题现象 公司kubernetes集群是通过kubeadm工具安装的,使用1年之后证书到期。在 kubernetes control plane maste节点服务器上运行 kubeadm certs renew all 命令更新证书后,kubelet 无法正常启动,报错日志如下 Failed to run kube…...
MacBook远程桌面Windows使用Microsoft Remote Desktop for Mac_亲测使用
MacBook远程桌面Windows使用Microsoft Remote Desktop for Mac_亲测使用 像Windows上有自带的远程桌面连接软件.MacBook没有自带的远程连接Windows桌面的工具,需要安装软件来实现. 像远程桌面控制软件一般有 TeamViewer、向日葵远程控制, ToDesk, Microsoft Remote Desktop f…...
Huggingface 笔记:大模型(Gemma2B,Gemma 7B)部署+基本使用
1 部署 1.1 申请权限 在huggingface的gemma界面,点击“term”以申请gemma访问权限 https://huggingface.co/google/gemma-7b 然后接受条款 1.2 添加hugging对应的token 如果直接用gemma提供的代码,会出现如下问题: from transformers i…...
WebGL 理论基础 01 WebGL 基础概念
WebGL 理论基础 基础概念 WebGL 基础概念 顶点着色器的作用是计算顶点的位置。根据计算出的一系列顶点位置,WebGL可以对点, 线和三角形在内的一些图元进行光栅化处理。当对这些图元进行光栅化处理时需要使用片段着色器方法。 片段着色器的作用是计算…...
Leetcode 28:找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入:haystack &q…...
docker opensearch arm64 运行失败解决方案
opensearch版本 2.1.0 docker日志错误信息: Disabling execution of install_demo_configuration.sh for OpenSearch Security Plugin Enabling OpenSearch Security Plugin Killing opensearch process 10 OpenSearch exited with code 143 Performance analyze…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
