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

如何编写接口测试用例?

接口测试用例如何编写?下面简单给大家讲解一下。
接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。
接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品是否存在可改善的问题以及对其他流程执行有影响的因素。通过编写清晰准确的接口测试用例,能够有效避免很多无法预料的问题出现。

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

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

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

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

常遇到的问题包括:

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

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

测试: 添加物品 © 至平台上 。 期望结果: 此物品 © 已成功上传
测试: 0.28 ETH 抵扣作。 期望结果: 抵扣成功,订单生成并显示
测试: 卖方 B 14 天之后,将物品 C 邮寄至买方 A。 期望结果: 用户收到了正确的物品 C,订单状态完成

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

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

其实现在有很多自动化的工具能帮测试人员快速完成接口测试的工作,从测试用例的编写到用例的测试执行,都可以高度自动化了。例如 Apifox 管理工具就可以实现从接口的设计到接口用例生成、接口自动化测试全流程的管理。
首先,你需要去 apifox.cn 注册账号,并且创建一个项目:
在这里插入图片描述
当开发在里面创建了一个接口后,测试人员直接在这个接口下直接保存不同状态用例,保存后就自动在左侧目录中出现。方便你枚举该接口下可能会出现的情况
在这里插入图片描述
在这里插入图片描述
然后点击【自动化测试】,创建测试用例,从接口用例中导入相应的测试用例。还支持设置用例自动化循环的次数、测试时候的停顿时间等:
在这里插入图片描述
在这里插入图片描述
导入用例后,你可以选择将测试步骤绑定接口用例,这样就可以做到接口和你的测试用例信息是同步的。在每个测试步骤支持设置流程条件,实现自动化测试。设置好你运行的条件后,点击【运行】就可以自动跑起来了。此外,运行结束后测试的结果也展现在【测试报告】中。
在这里插入图片描述
这个工具最强大的地方在于,开发人员在这里可以自动生成接口文档,并且实时同步给测试,测试人员拿到的永远都是最新的接口数据,用同一份及时、准确的文档来保证后续的测试工作顺利开展,并且在测试出问题后及时同步和追溯。实践出真知,再多的理论也比不上自己实践去操作一遍理解来得快。

学习安排上

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

在这里插入图片描述

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群即可自行领取

相关文章:

如何编写接口测试用例?

接口测试用例如何编写?下面简单给大家讲解一下。 接口测试用例是目前软件开发中不可或缺的一个重要部分,因此编写接口测试用例同样重要。 接口测试用例的作用非常明显,它能够帮助我们了解产品正在考验、调整它如何表现在特定情境之下、产品是…...

代码随想录算法训练营第44天 || 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ

代码随想录算法训练营第44天 || 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ 完全背包 完全背包与01背包的区别在于每种物品都有无限件,可以多次放入背包。 我们回顾一下01背包的遍历顺序,其中内层遍历背包的过程要后序遍历,为什么…...

【Bug】SQL无法绑定由多个部分组成的标识符

文章目录问题原因解决拓展问题 执行sql报:无法绑定由多个部分组成的标识符 原因 取了别名却没用别名,如下面这些情况 select * from biz_production_order_work_detail temp where biz_production_order_work_detail.create_time>2023-02-13selec…...

Games102 学习笔记

Games 102 P2 数据拟合 拟合数据的好坏 分段线性插值函数yf1(x)yf_1(x)yf1​(x),数据误差为0,只有C0C_0C0​连续。光滑插值函数yf2(x)yf_2(x)yf2​(x),数据误差为0,可能被Noice带歪,导致函数性质不好,预…...

知识图谱基本知识点以及应用场景

近两年来,随着Linking Open Data等项目的全面展开,语义Web数据源的数量激增,大量RDF数据被发布。互联网正从仅包含网页和网页之间超链接的文档万维网(Document Web)转变成包含大量描述各种实体和实体之间丰富关系的数据万维网(Data Web)。在这…...

IDEA中常用的快捷键

IDEA中常用的快捷键 自动修正:ALT回车键 代码格式化:CTRLALTL 代码提示:CTRLALT空格 导入当前代码所需要的类:alt回车键 导入当前类中所需要的所有类:ctrlshifto 查看子类:ctrlh 查找类:ctrln …...

朗润国际期货招商:桥水基金四季度投资组合

桥水基金四季度投资组合 总持仓市值183.2亿美元;环比减少7.3% ishares标普500指数ETF:7.93亿占持仓4.33%环比1.14%宝洁:7.57亿占持仓4.13%环比-0.1%新兴市场core TEF-ishares:6.80亿占持仓3.71%环比0.47%强生:6.3亿占…...

Linux管道命令(pipe)全

目录 选取命令:cut、grep 传送门 排序命令:sort、wc、uniq 传送门 双向重定向:tee 字符转换命令:tr、col、join、paste、expand 传送门 划分命令:split 传送门 参数代换:xargs 传送门 关于减号…...

mybatis条件构造器(一)

mybatis条件构造器(一) 1 准备工作 1.1 建表sql语句(Emp表) SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0; -- ---------------------------- -- Table structure for emp -- ---------------------------- DROP TABLE IF EXISTS emp; CREATE TABLE emp (EMPNO int NOT N…...

车联网之电子围栏中ConnectStreamed应用【二十】

文章目录 1. 电子围栏中ConnectStreamed应用1.1 ConnectedStreams简介1.1.1 connect流说明1.1.2 connect流使用场景1.2 Broadcast+Connect+CoFlatmap+CoMap整合实战1.3 两点之间球面距离计算1.4 电子围栏中自定义对象实现CoFlatMap函数1. 电子围栏中ConnectStreamed应用 1.1 C…...

临时文件tempfile

临时文件tempfile 1.概述 安全地创建具有唯一名称的临时文件,以至于他们不会被那些想破坏或者窃取数据的人猜出是非常有挑战性的。tempfile 模块提供了几个安全地创建系统临时文件的方法。 TemporaryFile() 打开并返回一个未命名的临时文件, NamedTemp…...

vue3封装数值动态递增组件

vue3封装数值动态递增组件前言源码举个例子:前言 1)使用技术: vue3.2 Ts 2)组件接收参数: 参数类型意义是否可选valuenumber数值大小必填durationnumber递增动画持续时间(单位:s)…...

JavaWeb_RequestResponse

目录 一、概述 二、Request对象 1.Request继承体系 2.Request获取请求数据 ①获取请求行数据 ②获取请求头数据 ③获取请求体数据 ④获取请求参数 3.Request请求转发 三、Response 1.Response设置响应数据功能 ①响应行 ②响应头 ③响应体 2.请求重定向 3.路径问…...

C语言刷题——“C”

各位CSDN的uu们你们好呀,今天,小雅兰要巩固一下之前学过的知识,那么,最好的复习方式就是刷题啦,现在,我们就进入C语言的世界吧 从最简单的开始噢 完完全全零基础都能看懂 题目来源于牛客网 编程语言初学训…...

【刷题】搜索——BFS:城堡问题(The Castle)

目录题目代码(Flood Fill)代码(并查集)题目 题目链接 找出房间个数——>求连通块个数 最大房间——>求最大连通块 直接用flood fill算法 注意题目的输入,例如118211182111821,则代表有西、北、南墙…...

深度学习——torch相关函数用法解析

1. torch.ones() torch.ones(*sizes, outNone) → Tensor函数功能:返回一个全为1 的张量,形状由可变参数sizes定义。 参数: sizes (int…) – 整数序列,定义了输出形状 out (Tensor, optional) – 结果张量 例子: >>> …...

ubuntu 20使用kubeadm安装k8s 1.26

步骤 机器:4核8G,root账号,可访问互联网 1、更新apt apt-get update 2、安装一些基本工具 apt-get install ca-certificates curl gnupg lsb-release net-tools apt-transport-https 3、ifconfig 获取ip,hostname获取主机名&…...

低代码开发平台|制造管理-生产过程管理搭建指南

1、简介1.1、案例简介本文将介绍,如何搭建制造管理-生产过程。1.2、应用场景先填充工序信息,再设置工艺路线对应的工序;工序信息及工艺路线列表报表展示的是所有工序、工艺路线信息,可进行新增对应数据的操作。2、设置方法2.1、表…...

python对多个csv文件进行合并(表头需一致)

之前写过python对【多个Excel文件】中的【单个sheet】进行合并,参考:点我 之前也写过python对【多个Excel文件】中的【多个sheet】进行合并,参考:点我 今天再写一个python对多个csv格式的文件进行合并的小工具 但是大家切记&am…...

Salesforce Apex调用邮件模板

正常调用无模板&#xff1a;mail.setToAddresses(new List<String>{user.Email});//mail.setReplyTo(444298824qq.com);//mail.setCcAddresses(null);mail.setSenderDisplayName(EOP系统);mail.setSubject(EOP通知&#xff08;待审批&#xff09;&#xff1a;您有未处理的…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...