阿里5年经验之谈 —— 接口测试用例如何编写?

接口测试用例如何编写?下面简单给大家讲解一下。

接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。

接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品是否存在可改善的问题以及对其他流程执行有影响的因素。通过编写清晰准确的接口测试用例,能够有效避免很多无法预料的问题出现。

在开始编写接口测试用例之前,需要注意几件事:

  • 确保你理解并准确衡量期望系统行为
  • 充分考虑使用者会怎么使用你的产品
  • 要将你所理解的客户端/后端对象明显列出来
  • 在运行之前应当充分测试所有代码
  • 在此过程中要定期总结

编写接口测试用例的步骤包括:

  1. 明确测试目标: 根据客观要求和最终需求来明确测试目标。
  2. 确定用例场景: 根据业务逻辑来分析出不同的测试场景,以及这些场景下的特定需求和期望结果。
  3. 编写用例步骤: 根据上面所分析出的不同测试场景,编写具体的测试用例步骤。
  4. 运行测试: 使用已定义好的测试用例运行对应的功能。
  5. 检验结果并优化: 首先核对执行时间;然后核对期待结果是否一致;如有必要,可以修复 BUG 和优化代码。

常遇到的问题包括:

  • 沟通问题
  • 未能正确归零测试数据
  • 理解能力不够充分
  • 没有考虑真实业务情况(即使真实性无法量化)

举一个常见的业务场景来说明如何正确去写一个接口测试用例。假如一套新交易平台上, 由买卖方(买方A & 卖方B)共同就一样物品进行交易;买方A 需要递交 0.28ETH 电子币作为意向金, 并将物品 C 添加到平台; 要求卖方 B 14 天后将物品 C 邮寄到买方 A 处。如此,我们就可以将上述场景归零抽象化:

  1. 测试: 添加物品 (C) 至平台上 。 期望结果: 此物品 (C) 已成功上传
  2. 测试: 0.28 ETH 抵扣作。 期望结果: 抵扣成功,订单生成并显示
  3. 测试: 卖方 B 14 天之后,将物品 C 邮寄至买方 A。 期望结果: 用户收到了正确的物品 C,订单状态完成
 
  1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。

  2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受

  3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛

  4. 分享他们的经验,还会分享很多直播讲座和技术沙龙

  5. 可以免费学习!划重点!开源的!!!

  6. qq群号:680748947

因此,在开发新的接口时必须保证旧的接口仍然能够运行。当写一个新的测试用例时要注意不要遗留问题,尽量避免测试失效情况出现。永远要记住: 良好的测试用例应当包含3部分: (1) 测试步骤; (2) 期望结果; 以及 (3) 预期后续行为。

同时,为了确保测试用例能够有效地执行,我们还要创建接口方法,根据具体的需求来调整和优化。此外,还要定义明确的出错边界,并将出错情况囊括其中。 当遇到类似问题时,尽量考虑多种可能性去寻找解决办法。以及在开发和调试的过程中要保持必要的文档! 及时、准确的文档是测试用例运作起来的重要因素之一。

其实现在有很多自动化的工具能帮测试人员快速完成接口测试的工作,从测试用例的编写到用例的测试执行,都可以高度自动化了。例如 Apifox 管理工具就可以实现从接口的设计到接口用例生成、接口自动化测试全流程的管理。

首先,你需要去 apifox.cn 注册账号,并且创建一个项目:

当开发在里面创建了一个接口后,测试人员直接在这个接口下直接保存不同状态用例,保存后就自动在左侧目录中出现。方便你枚举该接口下可能会出现的情况

然后点击【自动化测试】,创建测试用例,从接口用例中导入相应的测试用例。还支持设置用例自动化循环的次数、测试时候的停顿时间等:

导入用例后,你可以选择将测试步骤绑定接口用例,这样就可以做到接口和你的测试用例信息是同步的。在每个测试步骤支持设置流程条件,实现自动化测试。设置好你运行的条件后,点击【运行】就可以自动跑起来了。此外,运行结束后测试的结果也展现在【测试报告】中。

这个工具最强大的地方在于,开发人员在这里可以自动生成接口文档,并且实时同步给测试,测试人员拿到的永远都是最新的接口数据,用同一份及时、准确的文档来保证后续的测试工作顺利开展,并且在测试出问题后及时同步和追溯。实践出真知,再多的理论也比不上自己实践去操作一遍理解来得快。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

01|模型IO:输入提示、调用模型、解析输出

Model I/O 可以把对模型的使用过程拆解成三块,分别是输入提示(对应图中的Format)、调用模型(对应图中的Predict)和输出解析(对应图中的Parse)。这三块形成了一个整体,因此在LangCha…

VScode 设置个性化背景(保姆级教程)

VS Code设置个性化背景的作用主要体现在以下几个方面: 提升编程体验:个性化背景能够让编程环境更符合个人的审美和习惯,使得长时间在VS Code中进行代码编辑时,能够保持愉悦的心情,从而提高编程效率。减少视觉疲劳&…

【工具】Mermaid + 大模型画流程图

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 引入使用画TCP三次握手了解历史人物 总结 引入 最近看面试文章关于TCP三次握手和…

数据预处理:重复值

数据重复值处理 数据重复值出现情况重复的记录用于分析演变规律重复的记录用于样本不均衡处理重复的记录用于检测业务规则问题 数据重复值出现情况 数据集中的重复值包括以下两种情况: 数据值完全相同的多条数据记录。这是最常见的数据重复情况。数据主体相同但匹…

XAI之TDB:transformer-debugger的简介、安装和使用方法、应用案例之详细攻略

XAI之TDB:transformer-debugger的简介、安装和使用方法、应用案例之详细攻略 导读:小语言模型在处理一些任务时会出现无法明确解释的行为,难以细致追踪模型内部各个组件如神经元、注意力头等在推理过程中的作用。2024年3月12日,Op…

第二十六天-统计与机器学习SciPy,Scikit-Leaen

目录 1.介绍 2.使用scipy 1. 安装 2.拟合曲线 3.随机变量与概率分布 4.假设检验 5.参数检验 3.使用Scikit-Learn 1. 机器学习库,建立在numpy,scipy,matplotlib基础上 2.包含功能 3.安装 1.官网:https://scikit-learn.org 2.下载 3.线性回归…

STM32 ADC库函数

单片机学习! 目录 1. RCC_ADCCLKConfig 函数 2. ADC_DeInit 函数 3. ADC_Init 函数 4. ADC_StructInit 函数 5. ADC_Cmd 函数 6. ADC_DMACmd 函数 7. ADC_ITConfig 函数 8. 用于校准的函数 8.1 ADC_ResetCalibration 函数 8.2 ADC_GetResetCalibrationSta…

【Java扫盲篇】==和equals的区别

这是一道面试经典题,面试官对你说:小伙子,请你说说和equals的区别 对于来说 如果比较的是基本数据类型,那么比较的是数据的值是否相同。注意:(与数据类型无关) int a 10;int b 10;System.out…

数据库系统概念(第二周 第二堂)(关系模型)

目录 回顾 关系模型 历史与现状 组成成分 数据结构——关系 关系定义 关系性质 关系和关系模式 难点概念理解 关系属性的分类 一、超码(superkey) 二、候选码(candidate key) 三、主码(primary key&#…

Catmull-Rom P5 ThreeJs与前端

文章目录 问题Echarts 3D如何让曲线变得平滑?Echarts 2D图中平滑效果是如何实现的?如何在一个Echarts 3D图中画一个圆圈?如何在Echarts 3D图中画一个立方体? Catmull-Rom插值算法先来回答第二个问题回到第一个问题在Echarts 3D图中…

git基础命令(三)之远程命令

目录 基础概念origin git clonegit remote add 添加远程存储库git remote 显示远程存储库列表git pushgit pushgit push origin mastergit push origin --allgit push -f origin mastegit push origin --tags git fetch获取远程仓库的更新查看远程分支的更新情况拉取特定远程分…

【Linux】——进程地址空间 Linux2.6内核进程调度队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、环境变量的补充 二、进程空间的地址 2.1、程序地址空间 2.2、研究背景 2.3、程序地址空间 来段代码感受一下 2.4、进程地址空间 2.5、如何…

一文搞懂IP

IP 1. 基本介绍2. IP地址定义3. IP地址分类4. 子网掩码5. 全局地址与私有地址 1. 基本介绍 TCP/IP 协议的心脏是网络层,主要“实现节点之间的通信”,即“点对点(end-to-end)通信”。 网络层包含IP(Internet Protocol)及DNS(Domain Name Sys…

Linux的基本指令讲解

1 ls指令 语法: ls [选项][目录或文件] 功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 常用选项: -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -d…

Json Web Token(JWT) 快速入门

推荐视频:【从零开始掌握JWT】 目录 第一章 会话跟踪 01 使用Cookie和Session,jsessionid 02 使用token 例子一:自定义token 例子二:使用redis存储token 第一章 会话跟踪 应用背景 :浏览器访问web应用&#xff…

下拉树级带搜索功能

可以直接复制粘贴到自己的项目里,方法处把接口替换一下 <template><div><el-popoverplacement"bottom"width"200"trigger"click"><el-inputslot"reference"class"mrInput":placeholder"placehol…

天锐绿盾 | 公司内部文件数据 \ 资料加密系统,数据防泄密软件

#防止设计图纸、各种类型文件、各种类型软件、财务数据、客户资料、源代码&#xff0c;数据存储服务器、SVN、Git等商业核心文件数据外泄# 天锐绿盾是一款专业的企业级文件数据及资料加密系统&#xff0c;旨在为企业内部数据安全提供强有力的支持。 德人合科技 | ——天锐绿盾…

MySQL数据库的基本概念与安装

目录 引言 一、数据库的基本概念 &#xff08;一&#xff09;数据、表与数据库 1.数据(Data) 2.表 3.数据库 &#xff08;二&#xff09;数据库管理系统 &#xff08;三&#xff09;数据库系统 二、数据库的发展 三、主流数据库的介绍 &#xff08;一&#xff09;关…

地理数据表达方式学习——KML与SHP

一、KML-Keyhole Markup Language Keyhole Markup Language (KML)是一种XML符号&#xff0c;用于浏览器中二维地图和三维地球的地理注释和地理可视化&#xff08;地理数据包括点、线、面、多边形、多面体以及模型等&#xff09;。KML是伴随着Google Earth的使用而开发的&#x…

AMRT 3D 数字孪生引擎(轻量化图形引擎、GIS/BIM/3D融合引擎):智慧城市、智慧工厂、智慧建筑、智慧校园。。。

AMRT3D 一、概述 1、提供强大完整的工具链 AMRT3D包含开发引擎、资源管理、场景编辑、UI搭建、项目预览和发布等项目开发所需的全套功能&#xff0c;并整合了动画路径、精准测量、动态天气、视角切换和动画特效等工具。 2、轻量化技术应用与个性化定制 AMRT3D适用于快速开…