API是Application Programming Interface的简写。
- 实现了两个或多个独立系统或模块间的通信和数据交换能力。
API测试是不同于UI级自动化测试,其主要关注在系统架构的业务逻辑层,所以其主要关注不在于UI操作或用户感观上,更重调用逻辑关系。
如果你想学习软件测试的,我给你推荐个群:903217991,里面有从基础开始学习的软件测试学习视频讲解,还有大牛帮你解决疑惑。
与UI级自动化测试通过控制键盘输入和鼠标等操作不同的是:API测试,我们是通过工具或代码方式去调用特定的API,获取输出,并记录系统的响应。
API测试需要与应用程序的API进行交互,为了测试这些API,我们可以:
- 使用测试工具来进行测试
- 自己写代码的方式进行测试
首先你得获取目标测试系统的API相关文档,例如API对应的参数格式、期望返回结果等(一由开发提供文档,二自己抓包分析)就我们所处国内的实际情况,在大部分情况下,开发都没有成型的文档。所以作为测试人员,你应该具备以下技能:
- 优先去推动开发生成一份合适的API说明文档
- 掌握抓包分析工具,能够自己去抓包分析形成API文档
- 至少把http协议掌握,了解其报文结构
- 对用户业务熟悉,能把API级业务逻辑和用户业务结合起来
API级测试至少应该覆盖以下测试要点:
- 验证API所暴露的资源是否恰当的列出、创建、修改、和删除
- 验证API是否功能可用以及用户友好,是否便于与其他平台集成
- 安全测试,验证API是否包含了必要的认证以及敏感数据是否做了脱敏处理,是否支持加密或明码的http访问
- 自动化测试,将API高度业务场景化,实现自动化测试
- 文档,形成足够的文档,确保API质量的可维护行
在API测试过程中要重点关注什么呢?
- API测试用例要进行分类分组
- 每个API测试用例都应该参数化
- 在测试执行时,优先执行API测试
- 测试用例应该尽可能做到可独立执行
- 为了确保覆盖率,应该为API的所有可能输入进行测试数据规划
在API测试时,一般会发现哪类型的bug呢?
- 无法正确处理错误的深入条件
- 缺少或重复功能
- · 可靠性问题
- 安全问题
- 多线程问题
- 性能问题
- 响应数据结构不规范问题
- 有效参数值不能正确处理
- SoapUI
- JMeter
- PostMan
- 自己写代码
其他工具不推荐了,笔者首推SoapUI或自己写代码
API测试你可能遭遇哪些大坑- 无效的测试数据规划,导致你的参数穷举组合
- 因为没有界面,开发又不提供文档的情况下,大部分人无从下手,会一脸懵逼
- 平时测试大都关注正常的正常的情况,但要注意异常处理API必须进行测试,你懂的
- 代码你要会点代码,会点HTTP协议,不然没法沟通交流
技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。
金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
愿你我相遇,皆有所获! 如果对软件测试、接口测试、自动化测试、面试经验交流。关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!
推荐好文:自动化测试到底要学什么?
为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事
自动化测试和手动测试哪个更高级?
新手必看:怎么写一个合格的测试用例?
python登录接口测试问题记录与解决 ( 干 货 )