去有鱼的地方钓鱼——API测试到底测什么?

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


1. API测试的原则

芒格说:“钓鱼的第一条原则是,去有鱼的地方钓鱼”。

这句话不仅适用于投资,也适用于测试。测试的目标是发现BUG,BUG可能藏在哪里,我们就要去哪里测试。

身为测试工程师,发现别人无法发现的BUG,尤其是严重的、可能造成重大影响的BUG,方能体现自身的独特价值、赢得团队与用户的尊重。

API 是现代软件系统的核心组件,尤其是在微服务架构和前后端分离的开发模式中,API的质量决定了产品质量和系统稳定性。API测试的重要性不言而喻。

那么,对于API测试,我们应该测试什么?根据“去有鱼的地方钓鱼”这一原则,我们首先要思考API可能产生什么样的重大BUG,然后再去设计API测试用例,将潜在的严重BUG找出来。

需要注意的是,除了功能性测试,API测试需要关注性能、安全性和兼容性。API性能不仅影响用户体验,而且影响系统稳定性;API安全性影响用户数据安全和隐私保护。这些可能出现重大风险的地方,都是API测试要重点关注的。

2. API功能性问题

1)业务逻辑错误问题

问题:API未能正确实现预期的业务逻辑,导致功能异常或错误结果。

示例:1)支付API未正确验证订单状态,导致用户支付成功但订单未更新。2)计算折扣的API返回了错误的金额。

严重性:直接影响用户体验和业务流程,可能导致财务损失或客户投诉。

2)边界条件处理不当问题

问题:API未能正确处理输入数据的边界值或极端情况。

示例:1)输入超长字符串导致API崩溃或返回500错误。2)对于空值或负数输入,API未返回适当的错误提示。

严重性:边界条件处理不当可能导致系统不稳定或数据损坏。

3)幂等性问题

问题:API未能保证某些操作的幂等性(即多次调用应产生相同的结果)。

示例:1)多次调用“创建订单”API导致生成了多个重复订单。2)调用“删除资源”API后再次调用,系统返回错误而非成功。

严重性:幂等性问题可能导致数据冗余、重复操作或系统混乱。

4)错误处理机制缺失问题

问题:API在接收到无效请求或发生内部错误时,未能提供清晰的错误信息或适当的HTTP状态码。

示例:1)发送非法参数时,API返回200状态码而不是400。2)内部服务器错误时,API未返回任何错误信息。

严重性:缺乏清晰的错误处理会增加调试难度,并可能导致客户端错误地处理异常场景。

5)第三方依赖问题

问题:API依赖的第三方服务出现故障或接口变更,导致功能失效。

示例:1)支付网关API不可用,导致支付功能完全中断。2)第三方地图服务返回错误数据,影响位置相关的功能。

严重性:第三方集成问题通常难以快速修复,可能导致长时间的服务中断。

3. API性能问题

6)性能瓶颈问题

问题:API性能结果不及预期

示例:1)系统响应时间显著增加。2)请求失败率上升(如 HTTP 500 错误增多)。3)吞吐量(TPS/QPS)无法达到预期目标。

严重性:1)用户体验下降,可能导致用户流失。2)关键业务流程中断。

7)并发问题

问题:API并发操作出现问题,影响功能

示例:1)在高并发场景下,出现数据不一致或错误结果。2)死锁或线程阻塞。
严重性:1)数据完整性受损,可能导致财务损失或其他严重后果。2)用户体验差,信任度降低。

8)超时和重试机制问题

问题:API出现超时

示例:1) 请求超时未正确处理,导致客户端长时间等待。2) 重试机制设计不合理,引发“雪崩效应”(大量重复请求加重系统负担)。
严重性:1) 系统负载进一步加剧,可能引发全面崩溃。2) 用户无法完成关键操作。

9) 缓存问题

问题:API的缓存机制设计不合理,导致返回过期或错误的数据。

示例:1)用户更新数据后,API仍返回旧的缓存数据。2)缓存未正确刷新,导致不同用户看到不一致的数据。

严重性:缓存问题可能导致数据不一致或用户体验不佳。

10) 资源泄漏问题

问题:API在运行过程中未正确释放资源(如文件句柄、数据库连接),导致系统资源耗尽。

示例:1)上传文件后,API未关闭文件流,导致磁盘空间被占满。2)数据库连接未正确关闭,导致连接池耗尽。

严重性:资源泄漏会导致系统性能下降,甚至完全崩溃。

4. API安全性问题

11) 身份认证和授权失败问题

问题:API未能正确验证用户身份或权限,导致未经授权的访问。

示例:1)用户使用无效Token仍能访问受保护的资源。2)普通用户调用管理员权限的API成功执行操作。

严重性:安全漏洞可能导致敏感数据泄露、恶意攻击或系统被滥用。

12) 信息泄露问题

问题:API返回结果存在信息泄漏

:1)API 响应中包含过多的敏感信息(如完整的用户数据、内部系统结构)。2)错误消息中暴露了详细的堆栈信息或配置数据。

严重性:1)攻击者利用泄露的信息发动更有针对性的攻击。2)用户隐私受到威胁。

13) 缺乏速率限制问题

问题:API缺乏限流保护,请求打到很高

示例:1)未对单个 IP 或用户的请求频率进行限制。2)未启用防 DDoS 攻击机制。
严重性:1)攻击者通过大量请求耗尽服务器资源。2)正常用户无法访问服务。

5. API兼容性问题

14) 版本兼容性问题

问题:新版本API与旧版本不兼容,导致现有客户端无法正常使用。

示例:1)修改了API的参数结构或返回值格式,导致旧客户端解析失败。2)删除了旧版本支持的某些字段,导致依赖该字段的功能崩溃。

严重性:版本兼容性问题会影响现有用户的正常使用,需谨慎处理升级过程。

6. 总结

在软件工程中,墨菲定律客观存在:凡是可能出问题的地方,一定会出问题。熟悉API功能性、性能、安全性、兼容性的常见问题,能够指引我们更好开展API测试,提升测试针对性和问题发现效率。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值