01 测试框架之接口diff的用途

简介: 01 测试框架之接口diff的用途

背景

接口Diff测试,简单来说就是比对相同接口在不同版本/不同环境下面的返回内容是否符合预期。


对于日常迭代的接口来说,Diff测试是我们接口基本功能测试的有效补充,因为采用的是自动化的手段,它可以利用线上大量的请求日志在新旧两个版本中进行回放,而我们手工/自动化的接口回归往往只局限于少量的测试数据和一些特定的参数,很难覆盖到大量的、在生产环境真实会发生的异常请求数据。


单纯的依靠有限的CASE进行接口功能覆盖,上线后或多或少还是会发现一些异常,在此背景下开发了接口diff框架。


接口diff的用途

1)高效率进行接口的回归

尤其当接口众多时,接口的返回字段众多时,此时[人工]检查接口,效率太低了。例如,项目中已经发现的问题包括:

  • 某个接口比之前少了一个关键字段(该字段在页面需要展示的);
  • 某个接口中的字段值错误(字段值计算的内部逻辑被改错了);


2)快速发现接口修改前和修改后的差异

因为大部分代码的修改体现在接口返回的变化上,因而使用接口的变化来反向验证 代码的修改影响。通过diff测试。


  1. 可以发现相同接口下内部代码逻辑变更对其输出的影响,测试人员只需要对比diff接口的差异之处(或自动对比),从而大幅减少人工作业的工作量。
  • 2. 筛选自动化用例:当RD提测时,可以根据接口diff筛选出相关联自动化用例,与CI相结合,达到精简用例,减少执行时间,同时减少不必要的用例执行,进而提升CI稳定性,减少CI维护排查代价。


3)快速验证某些场景下的测试


  1. 例如,曾经一个项目,变更了DB中的几张表,但要求接口返回的字段只多不少(就是原来接口中含有的字段,修改使用表后一定要有,可以有多余的字段)。此时使用 两个版本代码中的接口 直接diff 是不是很easy了。
  • 2. 服务端语言由PHP语言改成GO了,原来的接口逻辑我又不了解,不知如何测试。
  • 3. 接口迁移或者服务器迁移,但是呢又需要保证迁移前后返回的数据是一致的,这时候就需要做diff测试


下集预告

  • 接口diff测试的方案
  • 接口diff测试的局限性
  • 接口diff测试的代码实现
相关文章
|
4天前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
19天前
|
Web App开发 数据管理 测试技术
自动化测试框架的搭建与实践
【8月更文挑战第1天】在软件开发的海洋中,自动化测试犹如一座灯塔,为开发团队指引方向,确保代码质量。本文将深入探讨如何搭建一套高效的自动化测试框架,并通过实际案例,揭示其在项目中的应用价值。我们将从框架设计原则出发,逐步实现一个简易的自动化测试框架,并分享实践中的经验和教训,帮助读者理解自动化测试的核心理念及其在真实世界的应用。
|
8天前
|
IDE 测试技术 持续交付
Python自动化测试与单元测试框架:提升代码质量与效率
随着软件行业的发展,代码质量和效率变得至关重要。自动化测试与单元测试是保证质量、提升效率的关键。Python凭借其简洁强大及丰富的测试框架(如Selenium、Appium、pytest和unittest等),成为了实施自动化测试的理想选择。本文将深入探讨这些框架的应用,帮助读者掌握编写高质量测试用例的方法,并通过持续集成等策略提升开发流程的效率与质量。
27 4
|
8天前
|
Web App开发 IDE 测试技术
天呐!当揭开 Selenium 自动化测试框架的神秘面纱,设计与实现令人瞠目!
【8月更文挑战第12天】Selenium 是一强大自动化测试框架,用于Web应用测试。它含WebDriver、IDE和Grid等工具,支持Chrome、Firefox等浏览器。可通过编程模拟用户交互验证应用功能。例如使用Python结合Selenium WebDriver编写自动化测试脚本,实现打开网页、操作元素及断言等功能。还可结合测试框架和Selenium Grid提升测试效率和并行执行能力。
20 1
|
12天前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧
|
14天前
|
人工智能 测试技术 持续交付
探索自动化测试框架的演进与实践
【8月更文挑战第6天】 随着软件行业的快速发展,自动化测试已经成为保障软件质量的关键手段。本文将深入分析自动化测试框架的发展脉络,从早期的线性脚本到现代的模块化、数据驱动和关键字驱动的框架,再到最新的基于AI的智能测试工具。文章还将探讨如何在实际工作中有效实施这些框架,以及在面对新技术时如何保持测试策略的灵活性和前瞻性。
|
19天前
|
jenkins 测试技术 持续交付
自动化测试框架的设计与实现
【8月更文挑战第1天】在软件开发过程中,测试是确保产品质量的关键步骤。本文将探讨如何设计并实现一个高效且可扩展的自动化测试框架,旨在提高测试效率,减少重复性工作,并通过具体示例展示其在现实项目中的应用。
|
17天前
|
存储 数据管理 jenkins
自动化测试框架的搭建与实践
【8月更文挑战第3天】随着软件行业的迅猛发展,自动化测试已成为保证软件质量的重要手段。本文将介绍如何搭建一个高效的自动化测试框架,并通过实际代码示例展示其应用。我们将探讨框架设计的核心原则、工具选择和脚本编写的最佳实践,以及如何通过持续集成实现自动化测试流程的优化。
|
17天前
|
敏捷开发 Web App开发 jenkins
自动化测试框架的搭建与实践
【8月更文挑战第3天】在软件开发过程中,自动化测试已成为提高软件质量和开发效率的关键。本文将深入讨论如何搭建一个高效且可靠的自动化测试框架,包括工具选择、环境配置、脚本编写和执行策略等。通过实际案例,我们将展示框架的具体实施过程,并分析其在真实项目中的表现和效益。
26 1
|
10天前
|
JavaScript 前端开发 测试技术
一周下载量突破 500 万次!为什么说它是下一代测试框架?
一周下载量突破 500 万次!为什么说它是下一代测试框架?