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

接口测试意义及工作流程

一、为什么要做接口测试?

一)、接口测试的作用

1、接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互。

2、测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

二)、接口测试的意义

1、按照分层测试模型,处于中间层的接口测试,在稳定性,效率,成本,技术,实施难度上综合来讲,是收益最大的。

2、相较于传统的UI层次的测试,接口测试把测试在时间上、架构上提前了,并且能够覆盖到一些UI测试无法触及的功能点,提高了测试的覆盖率,对质量控制提升了信心。

3、接口测试也更容易实现自动化持续集成,支持后端快速发版需求,利于CT(持续测试)的开展。

三)、为什么做接口测试?

1.越底层发现bug,它的修复成本是越低的。

2.很多系统前后端架构是分离

2.1 前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。

2.2 检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。

2.3 只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。

2.4 前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息。

3、接口持续集成是为什么能低成本高收益的根源

接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。

二、接口测试工作流程

一)、测试流程

1、分析接口文档和需求文档(接口说明、请求方式、请求URL、请求参数、返回数据、返回实例)

2、接口用例设计

3、编写接口测试用例

4、接口测试执行

5、输出接口测试报告

二)、如何快速评估自己的测试用例覆盖率:

1、参数验证是否完整(包括各种边界和业务规则)

2、业务需求点覆盖是否完整(单接口业务功,依赖接口业务功能)

3、接口异常场景覆盖是否完整(数据的异常)

三)、接口测试用途

1、回归测试

2、非功能性测试

四)、API测试用例设计

测试点测试内容举例
入参校验---传递不同的入参,检查返回值是否正确【必选】入参等于空字符串/null
入参类型(字符串、数值、布尔、数组、对象)
入参长度(字符串最小/最大长度)
入参值域(数值最小/最大值)
入参是否在枚举值范围内
入参存在默认值
入参等于0/负数
入参组合(参数之间是否存在关联)
入参符合一定规则(比如账号只能由字母、下划线组成)
入参包含特殊字符
业务逻辑校验---根据业务场景去设计【必选】查询不存在的数据,应该返回空结果
数据状态不符合预期,不允许修改或删除
返回值校验【必选】返回状态码校验
新增类接口建议校验新生成的数据标识不为空
更新或删除类接口建议校验返回消息中 success 为 true
列表查询类接口建议校验返回的查询记录数是否正确,排序规则是否正确
数据详情类接口建议校验核心字段数据准确性
幂等---检查幂等逻辑正确性【可选】是否需要支持幂等(读接口一般不需要)
前端重复提交
接口超时重试
消息重复消费
稳定性---检查可用性策略和性能指标合理性【可选】可用性(限流、熔断、降级)
性能(qps、rt、fail、机器资源、中间件资源、存储资源)
兼容性---检查变更接口兼容性【可选】入参兼容性(入参字段只能新增,不允许修改删除)
返回值兼容性(返回值字段只能按顺序新增)
功能兼容性(兼容老功能)
数据兼容性(兼容老数据)
透明性【可选】接口对调用方透明
可维护性【可选】检查日志和变更记录
异常日志
接口变更记录
监控告警【可选】检查监控告警配置
性能监控(qps、rt)
业务监控(错误码、业务指标)

http://www.lryc.cn/news/119992.html

相关文章:

  • QT-如何使用RS232进行读写通讯
  • 05 神经网络语言模型(独热编码+词向量的起源)
  • PyTorch Lightning教程八:用模型预测,部署
  • 桂林小程序https证书
  • html input 设置不允许修改
  • BI技巧丨利用Index计算半累计
  • 第三章:前端UI框架介绍
  • javaScript:文档流写入和元素写入
  • 【BI系统】选型常见问题解答二
  • docker版jxTMS使用指南:使用jxTMS采集数据之一
  • 【js】日期、时间正则匹配
  • 专利研读-SIMD系列-向量化引擎
  • C#--设计模式之单例模式
  • RWEQ风蚀方程模型与ArcGIS数据处理Python代码库添加结合理论研究和科研实践
  • 基于STM32微控制器的物联网(IoT)节点设计与实现
  • 篇二十一:中介者模式:解耦对象之间的交互
  • tomcat的多实例,动静分离(web服务基础结束)
  • LeetCode150道面试经典题--判断子序列(简单)
  • kubeadml 安装 k8s
  • 考研C语言进阶题库——更新16-20题
  • 【变形金刚01】attention和transformer所有信息
  • 面试热题(路径总和II)
  • 测试 tensorflow 1.x 的一个demo 01
  • 达蒙DM数据库使用经验
  • Redis—集群
  • 【C语言】数据在内存中的存储详解
  • PIC单片机配置字的设置
  • JavaWeb-Servlet服务连接器(一)
  • 新华三超融合态势感知标准版
  • AutoSAR系列讲解(深入篇)13.2-Mcal Port配置