热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

接口自动化测试的几个阶段

根本目标测试环境中,保证新增接口功能正确性,原有接口的回归(保证原有接口不被修改“坏”);生产环境中,保证接口层面服务可用,功能的正确性(保证服务挂掉时,及时发现)

根本目标

测试环境中,保证新增接口功能正确性,原有接口的回归(保证原有接口不被修改“坏”);
生产环境中,保证接口层面服务可用,功能的正确性(保证服务挂掉时,及时发现)

接口自动化的程度

1)如果项目完全没有UI前端页面,则应该尽可能多的自动化接口测试(人工接口测试或自动化结果判断可以使用人工辅助);
2)如果项目含有UI前端页面,则应该尽可能多的自动化接口测试(人工接口测试或自动化结果判断可以使用人工辅助);配合前端页面测试,回归P1/P2接口;
3)对于业务交互检查场景特别复杂的场景,可以使用脚本实现(ps: 此时脚本和业务关联比较紧密,不太适合把相关的脚本做成框架)。
总之,应该根据自身项目的特点来评判自动化的程度,使得自动化能更好结合手工测试,来完成质量保障。

接口自动化测试的作用

1)功能同时可手工和自动化测试时,自动化只是用来节省人力和时间;
2) 功能更适用使用自动化来测试时,自动化可以弥补手工测试的不足;
3) 功能只能被人工来测试时(例如页面UI检查),自动化就显得有些[了力不从心]了。


接口自动化功能正确性保证(第一阶段)

  • 该阶段主要是保证功能提供的正确性。所谓正确性,是指返回的数据正确,功能正确。
  •   阶段特点:对接口进行最为详细的检查(接口返回json的正确性),QA对系统的熟悉程度和对接口的熟悉程度,以及测试本身的经验直接影响该阶段测试的深度。
  • 阶段目标:  测试阶段,直接使用接口脚本/手工检查接口正确性; 生产阶段定时对线上接口进行检查(注意:由于是对接口的详细检查,该阶段设置的定时任务不易太频繁,否则接口稍有变动,或者接口功能不稳定,就会报错)
     难点和关键点:自动化脚本主要依赖于QA对系统的熟悉程度和对接口的熟悉程度,很可能由于用例设计问题,导致监控线上接口时
 不能发现问题
    实现难易程度:⭐️⭐️⭐️⭐️⭐️
    脚本变动频度:⭐️⭐️⭐️⭐️⭐️
    脚本定时频度:⭐️⭐️⭐️

接口自动化数据正确性保证(第二阶段)

  • 该阶段主要是保证数据提供的正确性。所谓正确性,是指返回的数据正确。
  •   阶段特点:对接口返回的数据的检查(接口返回json的数据正确性),检查方法通常有两种:直接查询DB,拼SQL对比检查; 和上一版本的接口返回的json进行对比(此时需要保证2个版本的接口除代码分支外,其他配置,DB等等完全相同)
  • 阶段目标:  测试阶段,直接diff 此次修改分支 和 线上 分支分别返回json(检查方法: 同样条件下,如果返回的json完全一致,说明接口数据正确; 否则需要重新查看不同是否在允许的范围内
     难点和关键点:自动化脚本主要依赖于2个json 对比接口的封装,可以忽略某些参数的对比,或者可以只对比某些参数。
 
    实现难易程度:⭐️⭐️⭐️⭐️
    脚本变动频度:⭐️⭐️⭐️⭐️
    脚本定时频度:⭐️⭐️⭐️

接口可用性保证(第三阶段)

  • 该阶段主要是保证线上接口的可用性。即,如果接口返回非200时,可以及时发现。
  •   阶段特点:该阶段属于接口的监控。可以根据监控定时的频繁程度,决定接口检查的详细程度(一般来说,监控跑的越频繁,接口检查的详细程度随之下降。否则,如果接口变动比较频繁,或者接口不稳定,会频繁报警)。
  • 阶段目标: 监控线上接口的可用性,保证服务突然挂掉时,可以及时监控到(当然,如果线上原有接口几乎不变,并且接口功能稳定,可以将第一阶段的接口自动化脚本用于此阶段)。
     难点和关键点:接口检查的详细程度取决于 监控定时的频繁程度要求,以及线上接口的稳定性
 
    实现难易程度:⭐️⭐️⭐️⭐️
    脚本变动频度:⭐️⭐️⭐️⭐️
    脚本定时频度:⭐️⭐️⭐️⭐️⭐️


推荐阅读
  • MySQL 8.0 新特性详解:免费视频教程上线
    本文介绍了一套在慕课网上发布的免费视频教程,深入解析 MySQL 8.0 的核心新功能,包括增强的安全性、用户管理、新的索引类型、CTE 和窗口函数等。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 本文详细介绍了如何处理Oracle数据库中的ORA-00227错误,即控制文件中检测到损坏块的问题,并提供了具体的解决方案。 ... [详细]
  • System Center Operations Manager 2007(简称SCOM 2007)作为MOM 2005的升级版,不仅整合了监控与管理功能,还显著简化了操作流程,提供了更加全面和精准的服务管理。 ... [详细]
  • 本文介绍如何通过创建数据库触发器来限制Oracle数据库中特定用户的登录IP地址,以增强系统的安全性。示例代码展示了如何阻止非授权IP地址的登录尝试。 ... [详细]
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 本文提供了一个SQL脚本,用于在Microsoft SQL Server中创建一个数据字典视图,该视图详细列出了表名、表描述、字段名称、字段描述、字段类型、字段大小、字段精度、是否可为空、默认值以及是否为标识或主键等信息。 ... [详细]
  • MyBatis入门指南:环境搭建与基础配置详解
    本文详细介绍了MyBatis的基础配置流程,包括在Maven项目中添加MyBatis依赖、IDEA中配置数据库连接、导入SQL脚本以及编写mybatis-config.xml配置文件等关键步骤。 ... [详细]
  • 本文基于最新版SQLite 3.33.0(发布于2020年8月20日),详细介绍如何使用ORDER BY语句进行数据排序,包括单列和多列排序的方法。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在MyBatis框架中如何通过#和$两种方式来传递SQL查询参数。使用#方式可以提高执行效率,而使用$则有助于在复杂SQL语句中更好地查看日志。此外,文章还探讨了不同场景下的参数传递方法,包括实体对象、基本数据类型以及混合参数的使用。 ... [详细]
  • 本文通过一系列实验,探讨了Oracle 11g数据库中密码错误验证延迟特性对用户登录速度的影响。实验旨在验证当某个用户因输入错误密码而触发延迟时,是否会影响其他用户的正常登录速度。 ... [详细]
author-avatar
82年的老代码
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有