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

news2024/9/25 17:20:09

目录

前言:

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/638181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这一次AI应该是真正的已经到来

渐渐感觉这一次AI的变革能真正的突破迷雾,迎来真正的人工智能时代的到来。所以写篇博文学习一下。经过半年的发酵与发展,不得不说AI已经成为了不可逆转的趋势。之所以说这一次AI应该是真正的已经到来,是因为人工智能的发展其实已经经历了几十…

【Python】一文带你了解 正则表达式 + 简单操作

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

通过第三方软件修改 MacOS 的键盘映射

通过第三方软件修改 MacOS 的键盘映射 由于文本编辑时大量使用word level的左移、右移,其中: OSX的单词级左右移为option Left/Right Arrow,整行级左右移为command Left/Right Arrow 单词级移动与进行编辑常用的command不同键位&#xff0c…

Chat2DB:阿里巴巴开源的聊天数据管理工具--实践

Chat2DB:阿里巴巴开源的聊天数据管理工具–实践 简介 ​ Chat2DB 是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了…

Jetpack Compose ——Row

当我们构建界面时,经常需要在Compose中使用Row布局来水平排列多个组件。Row提供了一种方便的方式来管理和定位子组件,使它们按照我们期望的方式呈现。 在Compose中,Row可以接受多个子组件作为参数,并根据指定的布局规则进行排列。…

桥梁监测方案-智慧桥梁监测管理系统

桥梁作为现代交通基础设施的重要组成部分,承载着大量的车辆和行人交通。然而,随着时间的推移,桥梁结构可能会受到自然环境、交通负荷和物质疲劳等因素的影响,从而导致潜在的风险和结构损坏。桥梁监测能够通过实时监测桥梁的结构状…

git一定要学会,加油

gitgit文档http://file:///F:/%E8%B5%84%E6%96%99%E5%A4%8D%E4%B9%A0/Git%E4%BC%98%E7%A7%80%E5%BC%80%E6%BA%90%E4%B9%A6%E7%B1%8D/Git%E5%BC%80%E6%BA%90%E4%B9%A6%E7%B1%8D/Pro%20Git%E4%B8%AD%E6%96%87PDF%E7%89%88.pdf init 初始化仓库 这个命令在当前目录下初始化一个 G…

安装Django 3.2的过程记录~

首先看下Django 3.2目前更新到哪些版本,用下面这条命令: pip install Django100.0.5与3.2有关的版本号有: 3.2a1, 3.2b1, 3.2rc1, 3.2, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.2.12, 3.2.13, …

MAC系统使用

查看端口占用情况 //如查看8080端口的占用情况 sudo lsof -i tcp:9901//比如我们想要释放Java占用的9901端口 PID 是 12420 kill -9 12420

C语言:写一个函数,实现一个整型有序数组的二分查找

题目: 写一个函数,实现一个整型有序数组的二分查找,找出要找的数字在数组中对应的下标。 思路: 总体思路: (一)自定义函数部分: (1). 参数: int…

融云《社交泛娱乐出海作战地图》,手把手教你拿下出海“最后一公里”难题

社交泛娱乐出海,已然是当下互联网出海的主力。关注【融云全球互联网通信云】了解更多 不少国内互联网巨头都将社交泛娱乐作为海外市场重点布局赛道。从较为传统的音视频、短视频社交出海,到逐渐直播出海、元宇宙社交出海,社交泛娱乐出海版图…

微信小程序实现tab及瀑布流页面

一、效果 二、代码 复制代码可以直接用 1、json代码 {"usingComponents": {},"navigationStyle": "custom" } 2、xml代码 <!--pages/find_module/findPage.wxml--> <view class"container_serach"><!-- 搜索模块 -…

Java EE 企业级应用开发教程题库(第二版)

前言 Java EE这是一门偏向于实践的课&#xff0c;奈何考试理论居多。一学期想搞懂三个框架&#xff0c;嘿嘿&#xff0c;难哦&#xff01;如果你是大一大二的同学&#xff0c;认认真真学习&#xff0c;真的有用。如果你是大三的同学&#xff0c;像就业并且走这个方向的同学&…

VMware Horizon 8 运维系列(一)windows系统重启被禁用的ipv6功能

前言 Horizon 8 在创建桌面池之前,需要对模板虚拟机进行配置,其中会用到windows优化工具,通过禁用一些不必要的服务或功能,让系统达到优化的效果。 最近客户提出一个需求:需要对虚拟机开启ipv6功能,并同时使用ipv6地址。通过查看模板系统,ipv6已经被优化工具禁用,所以需…

SSM整合快速入门案例(二)

文章目录 前言一、表现层与前端数据传输协议定义二、表现层与前端数据传输协议实现三、异常处理器四、项目异常处理五、前后台协议联调实现CRUD- - 查询- - 添加- - 修改- - 删除 总结 前言 为了巩固所学的知识&#xff0c;作者尝试着开始发布一些学习笔记类的博客&#xff0c…

Netty核心源码剖析(五)

1.Netty核心组件EventLoop源码剖析 1>.NioEventLoop继承图 说明: ①.ScheduledExecutorService接口表示是一个定时任务接口,EventLoop可以接受定时任务; ②.EventLoop接口:Netty 接口文档说明该接口作用:一旦Channel注册了,就处理该Channel对应的所有I/O操作; ③.Single…

学成在线----day7

1、 视频处理-技术方案 1. 作业分片方案 掌握了xxl-job的分片广播调度方式&#xff0c;下边思考如何分布式去执行学成在线平台中的视频处理任务。 任务添加成功后&#xff0c;对于要处理的任务会添加到待处理任务表中&#xff0c;现在启动多个执行器实例去查询这些待处理任务…

FPGA基础知识-层次建模的概念

学习目标&#xff1a; 提示&#xff1a;这里可以添加学习目标 理解数字电路设计中自底向上和自顶向下的设计方法&#xff1b; 解释verilog中模块和模块实例之间的区别&#xff1b; 学习从4中不同的抽象角度来描述同一个模块&#xff1b; 解释仿真中的各个组成部分&#xf…

动态NAT过载配置与验证实验

动态NAT过载配置与验证实验 【实验目的】 部署端口地址转换。熟悉端口地址转换的应用方法。验证配置。 【实验拓扑】 实验拓扑如图所示。 实验拓扑 设备参数如表所示。 设备参数表 设备 接口 IP地址 子网掩码 默认网关 R1 f0/0 192.168.10.1 255.255.255.0 N/A …

《低代码指南》低代码开发平台Noodl即将开源

Noodl 是一个低代码开发平台,让设计师、开发者能够用低代码的可视化编程方法构建强大的 Web 应用。目前 Noodl 已被亚马逊、三星、沃尔玛等财富 500 强企业应用于原型设计到生产环境中。 日前,Noodl 官方发出公告表示,将从现有的付费订阅模式向开源模式过渡。 Noodl 目前的…