测试经理:“你做了三年测试,连服务端的接口测试都不会?”
服务端的接口测试我们一般从功能开始进行测试,比如请求参数和响应参数的校验,业务逻辑或业务规则的校验,数据库操作的校验。
功能正常后会根据需要进行安全相关的检查、性能测试以及系列扩展测试,比如与历史版本的兼容性测试、接口的超时验证以及设计合理性验证等,用例设计也是从这几个方面进行分析设计。
技术提升还得自觉才行:功能测试到接口自动化测试技术进阶必看教程
下面的思维导图是一个概要的测试关注方向:
详细介绍如下:
针对输入
输入主要是指接口的入参,我们平常的测试中,会先考虑正常的入参,以及异常的入参,异常情况包括:参数异常和数据异常,用例设计这块使用较多的是等价类划分和边界值分析
A、正常的入参
正常的入参很好理解,就是根据接口设计文档的入参标准,输入正常的参数,响应按接口设计文档的约定条件正常返回
B、参数异常
参数异常包括:参数为空,多参或少参,错误的参数
C、数据异常
数据异常:数据类型错误、非空参数为空,长度不符合设计,不在字典范围内的数据,不合法的成员,特殊字符或敏感字符,存在关联关系的参数数据异常等
针对处理逻辑
接口测试前一般研发会提供接口设计文档或业务相关的设计图、流程图,针对业务流程的处理逻辑,我们可以从入参的限制条件、事件的操作对象、业务的状态转换
A、 限制条件分析
数值的限制:字典,等级,行业相关限制,金额限制,分数限制等
状态的限制:有效|无效,在线|离线,拉黑|洗白等
关系的限制:存在或不存在,绑定或解绑等
权限的限制:管理员,普通用户等
B、 对象分析
对象分析主要是对合法和不合法的对象进行操作,比如银行卡用户对卡进行充值,则可能存在:用户A使用非用户A的卡充值;用户A使用自己的卡进行充值,卡已过有效期;用户A使用自己的卡进行充值,卡为黑名单或挂失等。
C、 状态转换的分析
比如支付类业务,先支付成功,撤单后会退款,再次支付如果支付未成功,则是支付失败,状态之间的切换是否正常,未按正常业务顺利进行操作时,状态怎么显示,是否可控,是否出现异常状态,空状态业务怎么处理等
D、 时序分析
一些复杂的活动中,一个活动是由一系列的动作按照指定顺序进行,这些动作形成一个动作流,是有按照这个顺序依次执行,才能等到预期的结果,那么在执行过程中发生的其他分支动作程序会作何处理
比如斑马停车风控业务,如果在入站后车辆直接掉头不驶入高速业务如何处理?
针对输出
在考虑异常时,通常我们都会想到正常情况,无效的情况,但是不一定能覆盖所有错误码,而接口定义返回的错误码可以帮助我们补充这一部分的用例,比如网络异常,无效的规则,无效的参数,无效的业务ID,无效的任务,服务器异常等,把errorcode的值都补充上去可以设计更多的用例
这种根据输出进行设计用例,可以发现前后端是否正常输出结果,提示是否友好,提示是否出现敏感信息等
数据库操作
A、对数据库操作是否频繁,是否会在写库过程中占用大量的CPU,写库完成后进程是否释放
B、业务数据入库是否正常,是否有重复数据入库,是否出现乱码;日志数据入库是否正常
C、数据更新是否正常,尤其是时间类字段,时间是否为24小时制的格式
D、数据删除、备份是否正常
安全性
敏感信息是否加密(如银行账号,密码,转账金额)
性能相关
A、接口在什么情况下会出现并发,并发场景是什么,什么情况下的并发会导致问题
B、最大并发,响应时间,吞吐量,资源消耗情况
接口超时
接口正常情况下是有返回的,那么如果接口不返回呢?所以接口超时后的处理也是测试需要考虑的部分,如果超时处理不当,可能会引起进程阻塞,或者超时后又接收到接口返回导致逻辑错乱
与历史版本的兼容性分析
已废弃的协议或接口,代码并未注释,在某种特定的情况下可能会触发历史版本已废弃的协议或接口,导致用户使用或功能调用后出现意想不到的问题,损失
同一套系统,不同服务之间的接口相互调用时,新接口是否受历史接口的影响,尤其是新旧接口都对某一个功能进行处理,是否存在业务不兼容的问题
这一点需要测试人员是长期的测试一个系统的,那么可能会想到这种场景,会清楚的知道什么时候哪个版本进行了重构,废弃了那些接口,新增了那些接口,哪些场景会触发历史接口的某个规则
接口设计合理
接口字段是否冗余,接口是否返回了调用方期望得到的信息,接口定义是否满足所有调用者的需求,接口调用是否方便,接口是否可扩展,接口参数使用是否方便,接口的业务规则是否都正确,接口都整个服务的使用会产生那些影响
相关文章:

测试经理:“你做了三年测试,连服务端的接口测试都不会?”
服务端的接口测试我们一般从功能开始进行测试,比如请求参数和响应参数的校验,业务逻辑或业务规则的校验,数据库操作的校验。 功能正常后会根据需要进行安全相关的检查、性能测试以及系列扩展测试,比如与历史版本的兼容性测试、接…...
4G AFR到5G应用场景介绍
前面文章介绍过AFR的机制及流程 AFR机制及流程介绍 (qq.com) GSM AFR到LTE流程...
正电源子 IMX6ULL 自学笔记(驱动开发)
一、字符设备驱动开发 1.1 字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI,LCD 等等都…...

AM5728(AM5708)开发实战之移植OpenCV-3.4.11
一 概述 OpenCV是一个开源的跨平台计算机视觉库,可以运行在Linux、Windows、Mac OS等操作系统上,它为图像处理、模式识别、三维重建、物体跟踪、机器学习提供了丰富的算法。 由于OpenCV依赖包特别多,尽量不要使用交叉编译,即在什…...

Notepad++ 下载与安装教程
文章目录Notepad 下载与安装教程Notepad 简介一,Notepad 下载二,Notepad 安装Notepad 下载与安装教程 Notepad 简介 Notepad是程序员必备的文本编辑器,Notepad中文版小巧高效,支持27种编程语言,通吃C,C ,Java ,C#, XM…...

005+limou+HTML——(5)HTML图片和HTML超链接
1、图片标签<img> (1)图片标签属性 [src]:用于指定这个图片所在的路径,常使用相对路径,比较少使用绝对路劲。如果图片路径有错误的话,就会发生图片显示错误[alt]:用于指定图片的提示文字…...
ES6 Generator
Generator Generator是es6引入的,主要用于异步编程。 最大特点是可以交出函数的执行权(即暂停执行)。 它和普通的函数写法有点不同 function关键字与函数名之间有一个*号,以与普通函数进行区别。 它不同于普通函数,是可以暂停执行的。 Gen…...

SCI期刊写作必备(二):代码|手把手绘制目标检测领域YOLO论文常见的性能对比折线图,一键生成YOLOv7等主流论文同款图表,包含多种不同功能风格对比图表
绘制一个原创属于自己的YOLO模型性能对比图表 具体绘制操作参考:(附Python代码,直接一键生成,精度对比图表代码 ) 只需要改动为自己的mAP、Params、FPS、GFlops等数值即可,一键生成 多种图表风格📈,可以按需挑选 文章目录 绘制一个原创属于自己的YOLO模型性能对比图…...
linux cpu飙高排查
linux定位cpu飙高原因 jpstop 定位应用进程 pidtop -Hp {pid}找到线程 tid将 tid 转换成十六进制 printf “%x\n” {tid}jstack 打印堆栈信息过滤出我们想要的 jpstop 定位应用进程 pid jps或ps -ef | grep java查看java进程id jps结果: 57152 abc.jar 83383 e…...
2023实习面试公司【二】
2023实习面试第二家公司 文章目录2023实习面试第二家公司前言一、面试官所问的问题?二、总结1.公司待遇2.推荐指数3.自己的感受前言 某岸科技,这家公司是我从拉钩上找的第二家面试公司,也是北京本地的一家公司。 提示:以下是本篇…...
C++ thread_local 存储类
目录标题概述实现场景总结概述 thread_local指示对象拥有线程存储期。也就是对象的存储在线程开始时分配,而在线程结束时解分配。每个线程拥有其自身的对象实例。唯有声明为 thread_local 的对象拥有此存储期。 thread_local 能与 static 或 extern 结合一同出现&am…...
冥想第七百二十三天
1.周日早上跑了5公里,很舒服精力满满的,感谢老婆给我做的饭,鱿鱼面筋腐竹。都非常的好吃。 2.下午13:19分送我到了地铁口,这个点卡的真好,以至于离高铁开车只剩5分钟,14:41发车。到上…...

zookeeper 集群配置
文章目录zookeeper 集群配置1、集群安装zookeeper 集群配置 1、集群安装 1) 集群安装 在 hadoop102、hadoop103 和 hadoop104 三个节点上都部署 Zookeeper。 2) 解压安装 在 hadoop102 解压 Zookeeper 安装包到/opt目录下 输入命令:tar -zxvf apache-zookeeper-3.…...

怎么用消息队列实现分布式事务?
当消息队列和事务联系在一起时,它指的是消息生产者和消息消费者之间如何保持数据一致性。 什么是分布式事务? 事务是指当我们进行若干项数据更新操作时,为了保证数据的完整性和一致性,我们希望这些更新操作要么都成功࿰…...

什么蓝牙耳机佩戴舒适?2023长时间佩戴最舒适的蓝牙耳机
现如今,很多蓝牙耳机的产品都在不断地更新,市面上的耳机也是越来越普及,可以说是成为我们日常生活中不可或缺的一类电子设备,下面介绍一些佩戴舒适性好的蓝牙耳机。 一、南卡小音舱蓝牙耳机 音质推荐指数:★★★★★…...
刮刮乐--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)
实例1:刮刮乐 刮刮乐的玩法多种多样,彩民只要刮去刮刮乐上的银色油墨即可查看是否中奖。每张刮刮乐都有多个兑奖区,每个兑奖区对应着不同的获奖信息,包括“一等奖”、“二等奖”、“三等奖”和“谢谢惠顾”。假设现在有一张刮刮乐…...
LeetCode 全题解笔记:两数相加(02)
两数相加(medium) 题目描述 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数…...

网络工程师面试题(面试必看)(1)
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.正题 1.TCP UDP协议的区别...
MySQL基础操作指南:第一篇
MySQL基础操作指南 一、数据库操作 1.1 概念阐述 基本操作语法结构创建数据库create database 数据库名 character set utf8;删除数据库drop database 数据库名选择数据库use 数据库名;查看当前选择的数据库select database();查看当前数据库包含的数据表show ta…...
C#中包含?的运算符使用汇总
总目录 文章目录总目录前言一、使用概述二、使用说明1.可空类型修饰符2.三目运算符3.空合并运算符4.NULL 检查运算符结语前言 本文将含有?运算符的各种使用进行汇总,方便系统性记忆和知识回顾。 一、使用概述 用法描述?可空类型修饰符?:三目运算符?…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

轻量级Docker管理工具Docker Switchboard
简介 什么是 Docker Switchboard ? Docker Switchboard 是一个轻量级的 Web 应用程序,用于管理 Docker 容器。它提供了一个干净、用户友好的界面来启动、停止和监控主机上运行的容器,使其成为本地开发、家庭实验室或小型服务器设置的理想选择…...