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

开发改了接口,经常忘通知测试的解决方案!

目录

前言:

Apifox解决方案

Apifox对此给出的解决方案是:

用Apifox怎么处理接口变更

接口代码实现逻辑修改

接口参数修改


前言:

在开发过程中,接口变动十分频繁,测试人员没有及时获得相关通知的情况也很普遍。这样会浪费大量的测试时间,影响项目的进度和质量。

不知道大家有没有同感,做接口测试麻烦的不是测试本身,而是接口它会变,更麻烦的不是接口变了,而是它变了而你不知道。等到你测完,开发才悠悠跟你说——“那个接口我改了点东西,你再看一眼哈”。

我那是看一眼的工作量吗? 我得review一遍看影响到哪些接口,再根据影响到的接口,查看并修改对应的接口用例,调用链下游的用例,该改的改,改完再跑一次接口测试。

——这意味着已经做完的工作又要来推翻重来一遍,我本来已经干完活儿悠哉摸鱼了,现在得加班了,我那40米大刀已经举起来你看到了没?

吐槽归吐槽,但人真的不是精密的机器没法保证一直不出错。即便我们组内“服务好下游,承接好上游,不拖后腿,不坑队友”已经是共识了,在彼此工作量巨大的前提下,真的很难不会有沟通不及时、不到位的情况。 何况即便即时通知了,变更仍旧会给测试带来不少的返工工作量。

有没有一种可能接口被改了测试能及时同步到数据,不用自己去扒拉新的接口文档?
有没有一种可能接口改了用例也能顺便帮我一起改了,再顺便告知我有哪些地方需要调整的我再精准调整?

大佬有了idea会自己造轮子,而我,我会找现成的轮子。 比对了几款国内外的接口测试和管理工具,目前最符合这个需求的是一款叫Apifox的国产接口调试、测试、文档管理工具。

Apifox解决方案

捋一下当一个接口被改了,它被改动的地方可能有:

  • 1、接口的入参和出参没有变化,只是接口内部的实现逻辑变化了

  • 2、接口的入参被修改了,这个请求参数可能是必填的也可能是非必填的

  • 3、接口的返回响应被改了

那么对应的,测试需要捋清楚自己哪些地方需要返工:

1.修改了内部逻辑的接口,用例不需要改动,只需要重新执行一遍测试
2.接口的出参入参变化导致改接口的服务受影响,相关用例也需同步调整
3.各个接口间存在参数传递和调用关系,也可能受影响,用例需要排查调整

简单来说就是捋清楚哪些接口收到影响了,再去修改对应的用例。 这些工作原本需要我们手动排查的,其实可以直接利用Apifox去实现。

Apifox对此给出的解决方案是:

1.当开发那改动了接口之后,测试这边一键同步,能直接同步到最新的接口文档
2.设置接口用例与接口绑定,当接口的请求参数和响应参数发生变化,接口用例也会同步更新到最新的接口数据,不需要人工修改接口用例
3.一键回放接口用例,对比返回的结果,如果报错或者返回的数据结构不对应,则告警;
4.接口设计时可以对返回响应进行约束,用例设计时也可以对接口返回进行断言,当接口响应发生变化,执行自动化接口测试会针对错误的地方给出提示。

以上都依托于Apifox的自动化测试功能,用Apifox怎么做自动化测试,大家可以去官网搜一下相关教程,我重点会放在“接口变更”要怎么处理这部分。

用Apifox怎么处理接口变更

用Apifox处理接口变更主要依赖于它的两大功能:
1.接口变更数据同步与接口用例自动更新

接口用例是在接口的基础上,修改请求/响应字段的值保存生成的。 无论是接口的域名,路径,方法,请求参数,响应参数被修改,接口用例也能够一键步到最新的数据。 2.自动断言功能 Apifox的自动断言功能不需要写脚本,对Python或js不熟悉也可以直接通过可视化界面填写参数。 在生成的接口用例中,选择后置操作tab/断言;填写你要断言的对象,提取响应里的目标参数,并设置判断规则,校验实际返回与期望返回是否与预期一致。 提取参数时通过json path表达式提取的,具体规则可以看下这个使用文档:JSON Path 介绍 | Apifox 使用文档

3.响应参数数据结构自动校验 在接口tab,响应模块/高级设置 中,会对响应字段的数据结构和范围进行约束,针对数据类型/范围变更,可以检测到。

接口用例会自动同步修改的数据

找个项目举例子,在这个项目里已经保存了接口和生成了对应的用例。 但后来由于项目需求变更,在接口的请求参数中增加了宠物名称。 则此时对应的接口用例也会同步并增加此项接口请求参数。

接口用例中已经自动增加了改请求参数

接口代码实现逻辑修改

如果接口内部代码实现逻辑变更,接口的入参和出参没有变化,那么只要回归接口用例,覆盖到被修改的接口即可。

每次跑自动化测试,Apifox都能自动生成测试报告并保存下来,只要划定受影响接口,比对两次自动化测试的结果,就能排查接口修改是否影响到服务的功能

接口参数修改

接口的参数变化可分为接口请求参数变化或者接口响应参数变化。

1)当接口请求参数增加或减少了必填参数,接口用例能同步过来,但是参数为空的,用例一执行就会报错,此时可根据报错针对性修改。

2)针对接口响应参数的变化,对于重要的响应参数,比如说下个接口要调用到的参数,可在用例的后置脚本中增加对这个参数的断言

接口没有变更的情况下,会提示正常

一旦该参数被删除,则会提示断言结果会提示异常

3.针对返回参数数据结构类型的约束,可对返回的数据类型和数据范围进行约束。一旦返回数据类型发生变化,接口断言直接提示错误。

可直接在在接口tab的返回参数上选择数据类型,接着点击右侧的设置按钮,可对数据的具体范围进行约束

接着再设置该参数对应的数据范围约束

 

作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=jQ7U9aFlFfNPtwTDUR5iRvU_0ZJpqQnj&authKey=VpDbgWhgOhQD%2F3fnncM8ovCA0z%2F5lztJw0ZrSFg74qMtMi9Xnp99%2FCVOWixq2%2Bny&noverify=0&group_code=574737577

 

 

相关文章:

开发改了接口,经常忘通知测试的解决方案!

目录 前言: Apifox解决方案 Apifox对此给出的解决方案是: 用Apifox怎么处理接口变更 接口代码实现逻辑修改 接口参数修改 前言: 在开发过程中,接口变动十分频繁,测试人员没有及时获得相关通知的情况也很普遍。这…...

Beyond Compare 4 无法打开

解决办法: 1.修改注册表。WINR呼出开始菜单,在搜索栏中输入 regedit,点击确定。 2.删除项目:\HKEY_CURRENT_USER\Software\ScooterSoftware\Beyond Compare 4\CacheId 根据这个路径找到cacheid 右击删除掉就可以...

MySQL高级数据操作

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:MySQL 🥭本文内容&a…...

硬件设计电源系列文章-DCDC转换器基础知识

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 本文主要接着上篇,上篇文章主要讲述了LDO的相关基础知识,本节开始分享DCDC基础知识 整体架构流程 提示:这里可以添加技术整体架构 以下是…...

XdsObjects .NET 8.45.1001.0 Crack

XdsObjects 是一个工具包,允许开发人员使用 IHE XDS 和 XDS-I 配置文件开发应用程序,只需花费最少的时间和精力,因为遵守配置文件和 ebXML 规则的所有艰苦工作都由该工具包处理。 它为所有角色提供客户端和服务器支持,包括&#…...

数据安全--17--数据安全管理之数据传输

本博客地址:https://security.blog.csdn.net/article/details/131061729 一、数据传输概述 数据传输有两个主体,一个是数据发送方,另一个是数据接收方。数据在通过不可信或者较低安全性的网络进行传输时,容易发生数据被窃取、伪…...

SpringSecurity实现前后端分离登录token认证详解

目录 1. SpringSecurity概述 1.1 权限框架 1.1.1 Apache Shiro 1.1.2 SpringSecurity 1.1.3 权限框架的选择 1.2 授权和认证 1.3 SpringSecurity的功能 2.SpringSecurity 实战 2.1 引入SpringSecurity 2.2 认证 2.2.1 登录校验流程 2.2.2 SpringSecurity完整流程 2.2.…...

Vue3_ElementPlus_简单增删改查(2023)

Vue3,Element Plus简单增删改查 代码:https://github.com/xiaoming12318/Vue3_ElementPlus_CRUD.git 环境: Visual Studio Code Node.js 16.0或更高版本,https://nodejs.org/en axios 快速上手: 如果已经有16.0及…...

vue中重写并自定义console.log

0. 背景 在vue2项目中自定义console.log并输出文件名及行、列号 1. 实现 1.1 自定义console.log export default {// 输出等级: 0-no, 1-error, 2-warning, 3-info, 4-debug, 5-loglevel: 5,// 输出模式: 0-default, 1-normal, 2-randommode: 1,// 是否输出图标hasIcon: fal…...

基于OpenCV 和 Dlib 进行头部姿态估计

写在前面 工作中遇到,简单整理博文内容涉及基于 OpenCV 和 Dlib头部姿态评估的简单Demo理解不足小伙伴帮忙指正 庐山烟雨浙江潮,未到千般恨不消。到得还来别无事,庐山烟雨浙江潮。 ----《庐山烟雨浙江潮》苏轼 https://github.com/LIRUILONGS…...

24个Jvm面试题总结及答案

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每…...

freemarker 生成前端文件

Freemarker是一种模板引擎,它允许我们在Java应用程序中分离视图和业务逻辑。在Freemarker中,List是一种非常有用的数据结构,它允许我们存储一组有序的元素。有时候,我们需要判断一个List是否为空,这在程序设计中有许多…...

Pycharm+pytest+allure打造高逼格的测试报告

目录 前言: 1、安装allure 2、安装allure-pytest 3、一个简单的用例test_simpe.py 4、在pycharm底部打开terminal 5、用allure美化报告 6、查看报告 总结: 前言: 今天分享的内容:在Pycharmpytest基础上使用allure打造高逼格…...

Mybatis-Plus中update更新操作用法

目录 一、前言二、update1、关于修改的4个条件构造器2、UpdateWrapper【用法示例】3、LambdaUpdateWrapper【用法示例】4、UpdateChainWrapper【 用法示例】5、LambdaUpdateChainWrapper【 用法示例】6、updateById 和 updateBatchById7、Mybatis-plus设置某个字段值为null的方…...

16道JVM面试题

1.jvm内存布局 1.程序计数器:当前线程正在执行的字节码的行号指示器,线程私有,唯一一个没有规定任何内存溢出错误的情况的区域。 2.Java虚拟机栈:线程私有,描述Java方法执行的内存模型,每个方法运行时都会…...

HttpRunner 接口自动化测试框架实战,打造高效测试流程

简介 2018年python开发者大会上,了解到HttpRuuner开源自动化测试框架,采用YAML/JSON格式管理用例,能录制和转换生成用例功能,充分做到用例与测试代码分离,相比excel维护测试场景数据更加简洁。在此,利用业…...

手写一个webpack插件(plugin)

熟悉 vue 和 react 的小伙伴们都知道,在执行过程中会有各种生命周期钩子,其实webpack也不例外,在使用webpack的时候,我们有时候需要在 webpack 构建流程中引入自定义的行为,这个时候就可以在 hooks 钩子中添加自己的方…...

jvm常见面试题

0x01. 内存模型以及分区,需要详细到每个区放什么。 栈区: 栈分为java虚拟机栈和本地方法栈 重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。 每个方法执行都会创建一个栈帧,用于存放局部变量表&#xff0…...

TF-A 项目的长期支持介绍

引流关键词:Armv8-A, Armv9-A, Cortex-A, Cortex-A12, Cortex-A15, Cortex-A17, Cortex-A32, Cortex-A34, Cortex-A35, Cortex-A5, Cortex-A510, Cortex-A53, Cortex-A55, Cortex-A57, Cortex-A65, Cortex-A65AE, Cortex-A7, Cortex-A710, Cortex-A715, Cortex-A72, Cortex-A7…...

企业电子招标采购系统源码java 版本 Spring Cloud + Spring Boot

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…...

AD导出Gerber到CAM350拼板全流程避坑指南(附文件漏导出自查清单)

AD导出Gerber到CAM350拼板全流程避坑指南(附文件漏导出自查清单) 在硬件产品开发中,PCB设计到生产的转换环节往往隐藏着诸多"暗礁"。我曾亲眼见过一个团队因为钻孔文件覆盖问题导致生产延误两周,损失近十万元。本文将分…...

使用Taotoken CLI工具一键配置多开发环境下的API访问密钥

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken CLI工具一键配置多开发环境下的API访问密钥 在团队协作或个人多设备开发场景中,为不同的AI开发工具&…...

从DEM到glTF:打造跨平台三维地形模型的完整工作流

1. 为什么需要从DEM到glTF的三维地形工作流 三维地形模型在游戏开发、虚拟现实、城市规划等领域有着广泛应用。传统的工作流程往往存在平台兼容性差、数据转换复杂等问题。glTF作为"3D界的JPEG",已经成为跨平台三维模型交换的事实标准。将数字高程模型&am…...

多语言AI Agent的构建:跨语言理解与任务执行

多语言AI Agent的构建:跨语言理解与任务执行 本文面向有一定大模型应用开发基础的工程师,从原理、架构、实战三个维度完整讲解可落地的多语言AI Agent构建方案,全文约11000字,代码可直接运行。 引言 痛点引入 你是否遇到过这些场景? 运营跨境电商平台时,每个语言站点要…...

告别复杂配置:用MobaXterm+网线直连,5分钟让树莓派SSH并上网(Windows环境)

极简主义者的树莓派连接方案:MobaXterm全流程实战指南 树莓派作为一款功能强大的微型计算机,在嵌入式开发、物联网项目和教育领域广受欢迎。然而对于许多初学者甚至有一定经验的开发者来说,如何快速、稳定地连接树莓派始终是个令人头疼的问题…...

寄生电感容易被忽略,却是电路不稳定的隐形元凶

调试电路板的时候,最让人抓狂的并不是那些明面上能查到文档的参数问题。示波器一抓波形,明明电源电压已经稳定,负载也没动,可偏偏就是有那种挥之不去的毛刺,幅度不大,频率不低,排查了半天才发现…...

深度解构:指纹浏览器底层隔离与Python高并发RPA,如何重塑电商矩阵自动化架构?

大家好,我是林焱,一名专注电商底层业务逻辑与 RPA 自动化架构定制的独立开发者。 在 CSDN 的各个技术板块中,关于爬虫与反爬虫、并发调度、以及客户端架构的讨论一直是热点。而将这些技术综合应用到极致的领域之一,就是当下极度内…...

终极指南:掌握虚幻引擎资源逆向工程与UAssetGUI实战应用

终极指南:掌握虚幻引擎资源逆向工程与UAssetGUI实战应用 【免费下载链接】UAssetGUI A tool designed for low-level examination and modification of Unreal Engine game assets by hand. 项目地址: https://gitcode.com/gh_mirrors/ua/UAssetGUI 在游戏开…...

开源硬件测试框架OpenClaw Harness:从GPIO到CI/CD的自动化测试实践

1. 项目概述:一个开源硬件测试框架的诞生最近在折腾一些嵌入式开发和硬件原型项目,发现一个挺普遍的问题:当你手头有一堆传感器、执行器或者自己设计的电路板时,怎么高效、可靠地对它们进行功能测试和性能验证?用万用表…...

BBDown完全指南:5分钟掌握B站视频下载终极方案

BBDown完全指南:5分钟掌握B站视频下载终极方案 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 你是否经常遇到想收藏B站优质视频却找不到合适工具的困扰?当网络…...