当前位置: 首页 > news >正文

【Postman 接口测试】接口测试基础知识

在软件开发与测试领域,接口测试是保障软件质量的关键环节之一,而 Postman 作为一款功能强大且广泛使用的接口测试工具,能帮助我们高效地进行接口测试工作。下面,我们将详细介绍接口测试的基础知识,包括接口的认识、接口测试概述以及接口测试流程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、接口的认识

(一)接口的定义

接口(Interface)是指系统与系统之间、模块与模块之间进行交互的一种约定和规范。它定义了数据的输入和输出格式、请求的方法以及响应的规则等,使得不同的系统或模块能够相互通信和协作。从编程的角度来看,接口可以是函数、类的方法等;从网络层面来说,常见的接口有 HTTP 接口、RPC 接口等。

:以一个简单的电商系统为例,用户在客户端点击“查看商品详情”按钮时,客户端会向服务器发送一个请求,这个请求就是通过接口来实现的。服务器端的商品详情接口会接收客户端传递过来的商品 ID 等参数,然后从数据库中查询出相应的商品信息,并将其返回给客户端进行展示。

(二)接口的分类

  1. HTTP 接口:基于 HTTP 协议的接口,是目前网络应用中最常见的接口类型。它使用 GET、POST、PUT、DELETE 等请求方法来实现资源的获取、创建、更新和删除等操作。例如,在一个 Web 应用中,获取用户信息的接口可能使用 GET 方法,向服务器提交新用户注册信息的接口可能使用 POST 方法。
  2. SOAP 接口:简单对象访问协议(Simple Object Access Protocol),是一种基于 XML 的协议,常用于企业级应用的接口开发。它具有严格的规范和标准,提供了强大的安全性和可靠性。
  3. RPC 接口:远程过程调用(Remote Procedure Call)接口,允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。比如,在一个分布式系统中,不同节点之间的通信可能会使用 RPC 接口。

:以一个在线新闻平台为例,其提供了一个获取新闻列表的 HTTP 接口。当用户打开新闻客户端时,客户端会通过 GET 方法调用这个接口,传递一些参数如页码、每页数量等,服务器接收到请求后,根据这些参数从数据库中查询出相应的新闻数据,并以 JSON 格式返回给客户端,客户端再将这些新闻数据展示给用户。

(三)接口的组成要素

  1. 请求方法:常见的有 GET、POST、PUT、DELETE 等。GET 方法通常用于获取资源,POST 方法用于创建资源,PUT 方法用于更新资源,DELETE 方法用于删除资源。
  2. 请求 URL:接口的地址,用于指定请求的目标资源。例如,“https://api.example.com/users”可能是一个获取用户列表的接口 URL。
  3. 请求参数:传递给接口的数据,可以是查询参数(在 URL 中以键值对形式出现),也可以是请求体中的数据(如在 POST 请求中以 JSON 或表单形式发送)。
  4. 请求头:包含了关于请求的一些元数据,如 Content-Type(指定请求体的数据格式)、Authorization(用于身份验证)等。
  5. 响应状态码:表示服务器对请求的处理结果,如 200 表示请求成功,404 表示资源未找到,500 表示服务器内部错误等。
  6. 响应头:包含了关于响应的一些元数据,如 Content-Type(指定响应体的数据格式)、Content-Length(响应体的长度)等。
  7. 响应体:服务器返回的实际数据,通常以 JSON、XML 或文本等格式呈现。

:假设我们要使用一个天气预报接口,请求方法为 GET,请求 URL 是“https://api.weather.com/forecast?city=Beijing&days=3”,其中“city=Beijing”和“days=3”是查询参数,表示获取北京未来 3 天的天气预报。请求头中可能包含“Content-Type: application/json”,表示请求和响应的数据格式为 JSON。当服务器接收到请求后,如果处理成功,会返回一个响应状态码 200,响应头中包含“Content-Type: application/json”和“Content-Length: [具体长度]”等信息,响应体中则是具体的天气预报数据,如“{ “city”: “Beijing”, “forecast”: [ { “date”: “2024-01-01”, “temperature”: “10℃”, “weather”: “Sunny” }, { “date”: “2024-01-02”, “temperature”: “8℃”, “weather”: “Cloudy” }, { “date”: “2024-01-03”, “temperature”: “6℃”, “weather”: “Rainy” } ] }”。

二、接口测试概述

(一)接口测试的定义

接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点,测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

:在一个电商系统中,订单系统和支付系统之间存在接口。接口测试就是要验证当用户在订单系统中提交订单后,订单系统能否正确地将订单信息传递给支付系统,支付系统能否正确接收并处理这些信息,以及在支付完成后,支付系统能否将支付结果正确地返回给订单系统。

(二)接口测试的目的

  1. 确保接口功能的正确性,即接口能够按照预期的方式处理请求并返回正确的响应。
  2. 验证接口的可靠性和稳定性,在不同的条件下(如高并发、网络延迟等)接口都能正常工作。
  3. 检查接口的安全性,防止接口被非法访问、数据被篡改或泄露等。
  4. 提高系统的可维护性和可扩展性,通过接口测试可以发现接口设计中的问题,及时进行改进,为系统的后续升级和扩展打下良好的基础。

:以一个在线银行系统为例,接口测试的目的就是要确保用户在进行转账操作时,转账接口能够准确地处理用户的转账请求,验证转账金额、收款方信息等是否正确,并且在网络不稳定或高并发的情况下,接口依然能够正常工作,保证转账操作的可靠性。同时,要检查接口的安全性,防止黑客通过接口获取用户的账户信息或篡改转账金额。

(三)接口测试的重要性

  1. 接口测试可以在系统开发的早期阶段发现问题,降低修复成本。因为在系统集成阶段发现的问题,往往需要花费更多的时间和精力去排查和修复。
  2. 接口测试可以提高系统的质量和稳定性,通过对接口的全面测试,可以确保系统各个组件之间的交互正常,减少系统出现故障的概率。
  3. 接口测试可以促进团队之间的协作,开发人员和测试人员通过对接口的定义和测试,可以更好地理解系统的架构和功能,提高沟通效率。

:在一个大型的企业管理系统开发中,如果在系统集成阶段才发现接口存在问题,可能需要对多个相关模块进行修改和调试,不仅会延误项目进度,还会增加开发成本。而通过在早期进行接口测试,及时发现并解决接口问题,可以保证系统的顺利集成和稳定运行,提高项目的整体质量。

三、接口测试流程

(一)需求分析

在进行接口测试之前,首先要对接口的需求进行详细分析。了解接口的功能、输入输出参数、业务逻辑以及与其他接口或系统的关系等。这有助于确定测试的范围和重点,设计出全面有效的测试用例。

:对于一个电商系统的商品搜索接口,需求分析时要明确该接口接收的参数,如搜索关键词、商品类别、价格范围等,以及接口返回的结果,如符合条件的商品列表、商品总数等。同时,要了解该接口与商品数据库的交互逻辑,以及在不同搜索条件下的业务处理流程。

(二)测试计划制定

根据需求分析的结果,制定接口测试计划。测试计划应包括测试目标、测试范围、测试策略、测试资源、测试进度安排等内容。明确测试人员的分工和职责,确定测试的时间节点和里程碑。

:对于上述电商系统的商品搜索接口测试,测试目标是验证接口的功能正确性和性能稳定性;测试范围包括接口的各种输入参数组合和不同的业务场景;测试策略采用黑盒测试,使用等价类划分、边界值分析等方法设计测试用例;测试资源包括测试人员、测试工具(如 Postman)以及测试环境;测试进度安排可以是在接口开发完成后的一周内完成测试。

(三)测试用例设计

根据需求分析和测试计划,设计具体的测试用例。测试用例应覆盖接口的各种输入情况和业务场景,包括正常情况和异常情况。每个测试用例应包含测试用例编号、测试用例名称、测试目的、输入数据、预期输出结果等信息。

:以电商系统的商品搜索接口为例,设计以下测试用例:

测试用例编号测试用例名称测试目的输入数据预期输出结果
TC001正常搜索商品验证接口在正常情况下能正确返回搜索结果搜索关键词“手机”,商品类别“电子产品”,价格范围“1000 - 5000”返回符合条件的手机商品列表,商品总数不为 0,且商品信息正确
TC002搜索关键词为空验证接口在搜索关键词为空时的处理情况搜索关键词“”,商品类别“电子产品”,价格范围“1000 - 5000”返回提示信息“搜索关键词不能为空”
TC003价格范围错误验证接口在价格范围错误时的处理情况搜索关键词“手机”,商品类别“电子产品”,价格范围“5000 - 1000”返回提示信息“价格范围不正确”

(四)测试执行

使用测试工具(如 Postman)按照测试用例的要求执行测试。在测试过程中,要详细记录测试结果,包括实际输出结果、响应时间、响应状态码等信息。如果发现实际输出结果与预期输出结果不一致,要及时进行分析和排查,确定是否是接口存在问题。

:在使用 Postman 测试电商系统的商品搜索接口时,输入测试用例 TC001 的数据,点击发送请求按钮。观察 Postman 中显示的响应结果,记录响应状态码是否为 200,响应体中的商品列表是否符合预期,商品总数是否不为 0 等信息。如果响应状态码不是 200 或者商品列表不符合预期,就要进一步分析是接口的问题还是测试数据的问题。

(五)缺陷管理

对于测试执行过程中发现的缺陷,要及时进行记录和跟踪。使用缺陷管理工具(如 Jira)创建缺陷报告,详细描述缺陷的现象、出现步骤、严重程度、优先级等信息。将缺陷报告提交给开发人员进行修复,并跟踪缺陷的修复进度,直到缺陷被成功修复并通过验证。

:如果在测试商品搜索接口时发现,当输入搜索关键词“电脑”时,返回的商品列表中包含了一些非电脑的商品,这就是一个缺陷。在 Jira 中创建一个缺陷报告,描述该缺陷的具体现象,如“输入搜索关键词‘电脑’,返回的商品列表中包含手机等非电脑商品”,并注明出现步骤、严重程度(如一般)和优先级(如中)。将该缺陷报告指派给负责该接口开发的人员进行修复,并定期查看缺陷的修复状态,直到开发人员修复后进行重新测试,验证缺陷是否已被解决。

(六)测试总结

在完成所有测试用例的执行和缺陷修复后,进行测试总结。测试总结应包括测试结果的统计分析、缺陷的分布情况和修复情况、测试过程中遇到的问题和解决方案等内容。通过测试总结,可以评估接口的质量,为后续的系统开发和测试提供经验教训。

:对于电商系统的商品搜索接口测试总结,统计测试用例的执行情况,如总共设计了 10 个测试用例,其中 8 个通过,2 个未通过。分析未通过的测试用例所对应的缺陷,发现主要集中在接口对特殊字符的处理和价格范围的验证上。统计缺陷的修复情况,如 2 个缺陷都已在规定时间内修复并通过验证。总结测试过程中遇到的问题,如测试环境不稳定导致部分测试用例执行失败,通过搭建备用测试环境解决了该问题。通过这些总结,为后续的接口测试和系统开发提供参考,提高开发和测试的效率和质量。

通过以上对接口的认识、接口测试概述以及接口测试流程的详细介绍,相信大家对接口测试基础知识有了更深入的理解。在实际的接口测试工作中,要灵活运用这些知识,结合具体的项目需求和测试工具,确保接口的质量和系统的稳定性。

相关文章:

【Postman 接口测试】接口测试基础知识

在软件开发与测试领域,接口测试是保障软件质量的关键环节之一,而 Postman 作为一款功能强大且广泛使用的接口测试工具,能帮助我们高效地进行接口测试工作。下面,我们将详细介绍接口测试的基础知识,包括接口的认识、接口…...

谷粒商城——商品服务-三级分类

1.商品服务-三级分类 1.1三级分类介绍 1.2查询三级分类查询-递归树型结构数据获取 1.2.1导入数据pms_catelog.sql到数据表pms_category 1.2.2一次性查出所有分类及子分类 1.2.2.1修改CategoryController.java /*** 查出所有分类以及子分类,以树形结构组装起来*/R…...

视觉语言模型 (VLMs):跨模态智能的探索

文章目录 一. VLMs 的重要性与挑战:连接视觉与语言的桥梁 🌉二. VLMs 的核心训练范式:四种主流策略 🗺️1. 对比训练 (Contrastive Training):拉近正例,推远负例 ⚖️2. 掩码方法 (Masking):重构…...

HarmonyOS NEXT:华为分享-碰一碰开发分享

随着科技的不断进步,智能手机和智能设备之间的互联互通变得越来越重要。华为作为科技行业的领军企业,一直致力于为用户提供更加便捷、高效的使用体验。HarmonyOS NEXT系统的推出,特别是其中的“碰一碰”功能,为用户带来了前所未有…...

宝塔Linux+docker部署nginx出现403 Forbidden

本文主要讲述了宝塔docker部署nginx出现403 Forbidden的原因,以及成功部署前端的方法步骤。 目录 1、问题描述2、问题检测2.1 检测监听端口是否异常2.2 检测Docker容器是否异常2.2.1 打开宝塔Linux的软件商店,找到Docker管理器,查看前端容器是…...

软件测试丨Redis 的数据同步策略以及数据一致性保证

Redis 以其键值存储的方式,为开发者提供了数据快速存取的能力。它不仅支持丰富的数据结构,如字符串、哈希、列表、集合等,而且提供了高效的数据同步与一致性保障机制。正因为如此,Redis 被广泛应用于缓存、消息队列、实时数据分析…...

C语言-运算符

1. 按位与运算符(&) 按位与运算符对两个整数的每一位执行“与”操作。只有当两个相应位都为 1 时,结果才为 1 ;否则为 0。 // 示例 int a 5; // 二进制: 0101 int b 3; // 二进制: 0011 int result a & b; …...

困境如雾路难寻,心若清明步自轻---2024年创作回顾

文章目录 前言博客创作回顾第一次被催更第一次获得证书周榜几篇博客互动最多的最满意的引发思考的 写博契机 碎碎念时也运也部分经验 尾 前言 今年三月份,我已写下一篇《近一年多个人总结》,当时还没开始写博客。四月份写博后,就顺手将那篇总…...

表格标签基本使用

表格主要用于显示、展示数据&#xff0c;因为它可以让数据显示的非常的规整&#xff0c;可读性非常好。特别是后台展示数据的时候&#xff0c;能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的教据表现得很有条理。 1.<table></table>是用于定义表格…...

【学术会议论文投稿】深度解码:机器学习与深度学习的界限与交融

目录 一、定义与起源&#xff1a;历史长河中的两条轨迹 二、原理差异&#xff1a;从浅层到深层的跨越 三、代码解析&#xff1a;实战中的机器学习与深度学习 机器学习示例&#xff1a;线性回归 深度学习示例&#xff1a;卷积神经网络(CNN) 四、应用差异&#xff1a;各自领…...

使用printmap()函数来打印地图

使用PrintMap()函数可以将地图布局发送到打印机.默认情况下,任务会发送到地图文档保存的默认打印机,但也可以通过自定义一个特定的打印机来执行打印任务 操作方法 1.打开目标地图 2.打开python窗口 3.导入arcpy.mapping模块 import arcpy.mapping as mapping 4.引用活动地…...

MyBatis Plus 的 InnerInterceptor:更轻量级的 SQL 拦截器

在 Spring Boot 项目中使用 MyBatis Plus 时&#xff0c;你可能会遇到 InnerInterceptor 这个概念。 InnerInterceptor 是 MyBatis Plus 提供的一种轻量级 SQL 拦截器&#xff0c;它与传统的 MyBatis 拦截器&#xff08;Interceptor&#xff09;有所不同&#xff0c;具有更简单…...

Java复习第四天

一、代码题 1.相同的树 (1)题目 给你两棵二叉树的根节点p和q&#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1: 输入:p[1,2,3]&#xff0c;q[1,2,3] 输出:true示例 2: 输…...

docker 安装 mysql 详解

在平常的开发工作中&#xff0c;我们经常需要用到 mysql 数据库。那么在docker容器中&#xff0c;应该怎么安装mysql数据库呢。简单来说&#xff0c;第一步&#xff1a;拉取镜像&#xff1b;第二步&#xff1a;创建挂载目录并设置 my.conf&#xff1b;第三步&#xff1a;启动容…...

本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程

文章目录 前言1.关于SigNoz2.本地部署SigNoz3.SigNoz简单使用4. 安装内网穿透5.配置SigNoz公网地址6. 配置固定公网地址 前言 本文介绍如何在Ubuntu系统上使用 Docker 快速部署一款强大的应用性能监控工具SigNoz&#xff0c;并结合cpolar内网穿透工具轻松实现异地远程使用。 …...

防火墙的会话并发数、端口数量及其关系‌

‌防火墙的会话并发数、端口数量及其关系‌&#xff1a; ‌会话并发数‌&#xff1a;会话并发数&#xff0c;也称为并发连接数&#xff0c;是指防火墙能够同时处理的点对点连接的最大数目。这个参数直接影响到防火墙在高流量环境下的表现&#xff0c;特别是对于需要处理大量并发…...

随机变量的变量替换——归一化流和直方图规定化的数学基础

变量替换是一种在统计学和数学中广泛应用的技术&#xff0c;它通过定义新的变量来简化问题&#xff0c;使得原本复杂的随机变量变得更加容易分析。 变量替换的公式&#xff0c;用于将一个随机变量 X X X 的概率密度函数 f X f_X fX​ 转换为其经过函数 g g g 变换后的随机变…...

Java春招面试指南前言

在当今竞争激烈的就业市场中&#xff0c;对于即将踏入职场的Java开发者而言&#xff0c;春招是一次宝贵的机会。本博客专栏旨在为大家提供一份全面且实用的Java春招面试指南&#xff0c;助力大家顺利通过面试&#xff0c;开启职业生涯的新篇章。 无论你是初出茅庐的应届生&…...

【技术洞察】2024科技绘卷:浪潮、突破、未来

涌动与突破 2024年&#xff0c;科技的浪潮汹涌澎湃&#xff0c;人工智能、量子计算、脑机接口等前沿技术如同璀璨星辰&#xff0c;方便了大家的日常生活&#xff0c;也照亮了人类未来的道路。这一年&#xff0c;科技的突破与创新不断刷新着人们对未来的想象。那么回顾2024年的科…...

为AI聊天工具添加一个知识系统 之54 为事务处理 设计 基于DDD的一个 AI操作系统 来处理维度

本文要点 要点 Architecture程序 它被设计为一个双面神结构的控制器&#xff0c;它的两侧一侧编译执行另一侧 解释执行&#xff0c;自已则是一个 翻译器--通过提供两个不同取向之间 的 结构映射的显示器&#xff08;带 图形用户接口GUI和命令行接口CLI 两种 接口&#xff09…...

【数据结构】二分查找

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

读书笔记《网络是怎样连接的》

目录 第一章1.1 生成http请求消息输入网址URL解析URLURL中省略文件名的情况http的基本思路生成HTTP请求消息发送请求后收到响应 1.2 向DNS服务器查询Web服务器的IP地址IP地址的基本知识域名和IP地址并用的理由Socket库提供查询IP地址的功能通过解析器向 DNS 服务器发出查询解析…...

Java 设计模式一

Java 设计模式是软件开发中的一类解决方案&#xff0c;旨在解决常见的设计问题&#xff0c;提升代码的可维护性、可复用性和扩展性。它们通常基于一些经验和最佳实践&#xff0c;提供了解决问题的标准化方法。以下是常见的 Java 设计模式及其概述&#xff1a; 1. 创建型模式 (…...

SOME/IP服务接口

本系列文章将分享我在学习 SOME/IP 过程中积累的一些感悟&#xff0c;并结合 SOME/IP 的理论知识进行讲解。主要内容是对相关知识的梳理&#xff0c;并结合实际代码展示 SOME/IP 的使用&#xff0c;旨在自我复习并与大家交流。文中引用了一些例图&#xff0c;但由于未能找到原作…...

Java 生成 PDF 文档 如此简单

嘿&#xff0c;朋友&#xff01;在 Java 里实现 PDF 文档生成那可真是个挺有意思的事儿&#xff0c;今儿个就来好好唠唠这个。咱有不少好用的库可以选择&#xff0c;下面就给你详细讲讲其中两个超实用的库&#xff0c;一个是 iText&#xff0c;另一个是 Apache PDFBox。 用 iTe…...

深入探究 YOLOv5:从优势到模型导出全方位解析

一、引言 在计算机视觉领域&#xff0c;目标检测是一项至关重要的任务&#xff0c;它在自动驾驶、安防监控、工业检测等众多领域都有着广泛的应用。而 YOLO&#xff08;You Only Look Once&#xff09;系列作为目标检测算法中的佼佼者&#xff0c;一直备受关注。其中&#xff…...

【PoCL】运行 LLVM 中 pass 优化过程详解

PoCL 项目中调用 LLVM 的 Pass 对编译过程的优化至关重要。本博文以PoCL 开源项目源码为例,详细说明【PoCL】运行 LLVM 中 pass 优化过程 目录 0. 个人简介 && 授权须知1. pocl_llvm_run_pocl_passes 函数作用2. 禁止 “小网格 small grid” 工作组(workGroup)特化的…...

如何将使用unsloth微调的模型部署到ollama?

目录 一、将模型保存为gguf格式 二、下载llama.cpp 三、生成 llama-quantize 可执行文件 四、使用llama-quantize 五、训练模型 六、将模型部署到ollama 一、将模型保存为gguf格式 在你的训练代码 trainer.train() 之后添加&#xff1a; model.save_pretrained_gguf(&q…...

【测试】UI自动化测试

长期更新&#xff0c;建议关注收藏点赞&#xff01; 目录 概论WEB环境搭建Selenium APPAppium 概论 使用工具和代码执行用例。 什么样的项目需要自动化&#xff1f; 需要回归测试、自动化的功能模块需求变更不频繁、项目周期长&#xff08;功能测试时长&#xff1a;UI自动化测…...

SSM开发(二) MyBatis两种SQL配置方式及其对比

目录 一、MyBatis两种SQL配置方式 二、使用XML映射文件配置SQL语句 三、使用注解配置SQL语句 四、两种方式对比 总结 1、注解 2、XML配置 五、MyBatis多数据源的两种配置方式 参考 一、MyBatis两种SQL配置方式 MyBatis 提供了两种方式来配置SQL语句&#xff1a;注解&a…...