接口自动化测试数据怎么来?涉及资金的接口如何在线上回归?

news2024/9/28 18:52:25

最近,有一位小伙伴提出一个问题:

目前在用pytest做接口自动化,因为一开始就想要把这套接口自动化用到生产环境,所以考虑的问题比较多一点点。

请问:

1.在做接口自动化的过程中,参数的数据应该从哪里来比较好。是写死(这种切换一下环境就不能用了,不太好对吧?),还是从数据库里提取?(那如果数据库里有脏数据,会造成测试接口返回信息不准确吧?

2.如果是动态数据,比如需要上一个接口查询商品,下一个接口添加购物车。如果上一个接口出问题,那么下一个接口也跟着出问题。这种接口传参怎么样比较好呢?

3.请问你们已经落地的接口自动化,是在测试环境跑还是预发布、生产环境呢?因为感觉做出来只在测试环境跑,发现不了线上的问题。整个接口自动化意义不大。

4.如果在线上跑接口自动化,涉及到钱的接口,要怎么去跑呢?

观点一

以下纯个人经验:

1.在做接口自动化的过程中,参数的数据应该从哪里来比较好。是写死(这种切换一下环境就不能用了,不太好对吧?),还是从数据库里提取?(那如果数据库里有脏数据,会造成测试接口返回信息不准确吧?)

——从用例中生成最好,其次是从环境的数据库里提取。

2.如果是动态数据,比如需要上一个接口查询商品,下一个接口添加购物车。如果上一个接口出问题,那么下一个接口也跟着出问题。这种接口传参怎么样比较好呢?

——就照常传就好了。多接口串联的用例,本身就是必须要每个接口都 OK 才能持续走的。

3.请问你们已经落地的接口自动化,是在测试环境跑还是预发布、生产环境呢?因为感觉做出来只在测试环境跑,发现不了线上的问题。整个接口自动化意义不大。

——一般在测试环境。发现线上问题不是接口自动化这项工作的的职责,是监控以及巡检(也叫拨测,就是对着线上跑部分不会影响到线上用户的自动化用例)的职责。

4.如果在线上跑接口自动化,涉及到钱的接口,要怎么去跑呢?

——不跑。通过监控实际线上接口的调用情况,而非用接口自动化主动调用,来快速发现问题。

观点二

非常不建议自动化测试在生产环境跑,根据我的经验,自动化测试,基本不会被测试......你还想在线上跑涉及到钱的接口,这就是传说中的吃雷公屙火闪吧~

楼主又问:“那是否会用到做线上监控呢?那不也是在线上跑?”

回答:监控和自动化测试完全是两码事。。。。

观点三

我们做了生产的服务监控,其实只是监控服务,周期啊 频率啊 自己控制,不要产生业务数据,不要给生产增加负担。

目前我是一分钟轮训查询一个服务状态的,遇到服务异常,调云平台的电话服务打电话过来

观点四

提出这种问题,看来楼主还没遭受过社会的毒打。千万不要自作主张动生产数据,无论什么目的,即使领导让你动,也要获取多方确认(领导、运维、业务等)后再实施。不然出了问题锅只能自己背,小测试的抗风险能力差,如果遇到这种问题,基本就是走人了,慎重!

观点五

以下亦纯个人经验:

1.除了配置数据,业务数据都是动态的:

我们是直接前置时通过调用相关接口生成,或者插入数据库生成相关数据,然后后置操作进行删除。这样一般不会有脏数据

2.遵循原则:测试用例之间保持独立性,因此各个用例不会关联影响。

至于多接口串联用例,自然必须每个接口都要正确

3.参考上述大佬回答就行

4.同样参考上述大佬回答,千万别线上跑!实在要跑,就拿一些合适的跑。比如我们的业务核心功能就是各种各样的检索,就算程序挂了,也不会造成脏数据,至于影不影响线上性能,那就另说。

观点六

1.参数数据主要来源肯定就是你的用例设计,其他来源都是补充。补充来源可以是线上流量(access log 里面可以抽取)、可以是埋点上报、也可以是数据库数据。但是关键问题是补充来源的数据是否全部可行,要加什么筛选标准,肯定不是随便一条数据就能拿来直接用,一方面有些数据涉及用户隐私安全,一方面有些数据不完整,一方面有些数据根本没权限拿,所以很多时候最关键的就是搞明白筛选标准和你的测试范围,不是万能的。

”是写死(这种切换一下环境就不能用了,不太好对吧?)..."

没看懂你说的写死是什么意思,是人为确定的参数?为什么切一下环境就不能用呢?能不能按照不同环节做兼容?还是说你的环境本身就有问题?

2.上个接口出问题用例应该直接报错结束吧,没什么特别的方法。上游你的控制不稳定,自然就不用想着下游能好过。这个解决的下手点不在于接口怎么传参,而是确定前置条件有无满足。

3.全量用例是在测试环境跑,我们内部的预发布约等于生产环境,生产环境只跑很小一部分,而且都是读接口。在线上跑写接口就是给业务加脏数据污染,纯纯地坑研发,不仅可能发现不了线上问题,甚至可以引入问题让别人排查半天。这里的建议是把思路打开一些,发现线上问题除了接口自动化(巡检)外还有很多,比如监控、用户反馈跟进,更牛逼一点可以是舆情监控等手段。

4.基本原则是涉及到钱就别在线上去跑自动化,出问题就是事故,老老实实线下自动化或者线上手工验证,不差那么点工作量。一方面钱相关的一般是线下有mock,自动化会比较安全倒还好,但是线上没有mock,第三方支付也很少会给你在线上开这样的测试口子,所以就别去较劲,要是自动化把别人的接口打挂了还要担责;另一方面,如果线下测完了没问题,线上还出问题,我觉得可以想想为什么两者的结果不一致,再去尝试排除这些差异点,至少保证己方是没责任的。建议先了解一下依赖的财经支付方在线上有什么限制再考虑。

对于这个问题

你有什么想说的

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

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

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

相关文章

【virtuous】ron与rout的区别

ron:直流阻抗,大信号电阻 rout:交流阻抗,,小信号电阻

钰泰-ETA1611 升压IC

描述 ETA1611是一款高效升压转换器,内部集成了22V电源MOSEFT。它以的 1MHz 频率运行,允许使用小型外部组件,同时仍能提供效率。它可以驱动高达 2A 的输出电流。通过 EN 引脚集成的真正 PWM 调光功能可以进一步以数字方式设置更低的输出电压。…

SNIDA

saliency mask M n _n n​ obtained from SOD is pasted onto the background mask to obtain the mask M I ( s ) _{I(s)} I(s)​ of the input image I as a prior 辅助信息 作者未提供代码

Python体素化脑信息图混淆矩阵相似性指标评估

🎯要点 使用相似性度量等算法类别学习评估大脑神经相似性。使用混淆矩阵分类器评估相似性,使用斯皮尔曼相关性关联相似度矩阵与混淆矩阵。特征化体素选择,优化相似性度量矩阵,用分类器近似大脑状态信息。将先验分布建模为二项分布…

FastAPI前置知识及快速入门

FastAPI fastapi,一个用于构建 API 的现代、快速(高性能)的web框架。 fastapi是建立在Starlette和Pydantic基础上的,Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包…

MyBatis——Plus——入门

常用注解 MyBatis——Plus怎么知道他是访问哪张表 常用配置

Codeforces Round 975 (Div. 2)

传送门:https://codeforces.com/contest/2019 B. All Pairs Segments 题意: 首先样例解释一下: 一共有:[1,2],[1,3],[1,5],[1,6],[1,7],[2,3],[2,5],[2,6],[2,7],[3,5],[3,6],[3,7],[5,6],[5,7],[6,7] 点 1,7 在5个…

Android SQLite的基本使用、生成Excel文件保存到本地

1. Android SQLite的基本使用 1.1. SQLiteOpenHelper Android 底层已经通过一个SQLiteOpenHelper的抽象类将数据库的创建,以及修改,更新等都放在了里面。 要使用它必须实现它的OnCreate(SQLiteDatabase db),onUpgrade(SQLiteDatabase db, int…

一些硬件知识(二十五)

cadence设置led颜色: 切换到Current propeties才会有颜色选选项,点击红色就可以选择其他的颜色: 手机字库是维修人员对FLASH MEMORY的俗称,其真实名字是闪速存储器,简称闪存,相当于手机的“硬盘”&#xff…

【Linux网络】详解TCP协议(3)

🎉博主首页: 有趣的中国人 🎉专栏首页: Linux网络 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 TCP的流量控制和滑动窗口 的相关内容。 如果看到最后您觉得这篇…

VB.net读写NDEF标签URI智能海报WIFI蓝牙连接

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 Public Class Form1Dim oldpicckey(0 To 5) As Byte 卡片旧密码Dim newpicckey(0 To 5) As Byte 卡片新密码Function GetTagUID() As StringDim status As ByteDim myctrlword As …

Android手机投屏方案实现方式对比

文章目录 1.概述2.术语解释2.1 miracast2.2 scrcpy2.4 Wifi Direct2.5 app_process 3.技术实现对比3.1 Miracast3.1.1 Miracast介绍3.1.2 Miracast原理3.1.3 Miracast优缺点分析 3.2 Scrcpy3.2.1 scrcpy 介绍3.2.2 scrcpy的实现原理3.2.3 scrcpy的优缺点分析 3.3 Google cast3.…

Nisshinbo日清纺pvs1114太阳模拟器手测

Nisshinbo日清纺pvs1114太阳模拟器手测

影响上证50股指期货价格的因素有哪些?

上证50股指期货,作为反映上海证券交易所最具代表性50只股票整体表现的期货合约,其价格同样受到一系列复杂因素的驱动。以下是对影响上证50股指期货价格的主要因素进行的详细分析。 因素一、期货合约的供求关系 股指期货市场是一个由多头和空头双方共同…

关于AI副业,能说的都说了(最核心3大赛道、机会、方向)

AI,是生产力工具~ AI,也是焦虑和痛点 一直有小伙伴在问AI副业的事儿,之前也分享过很多。 但是,很多人对AI于副业的作用,过于表面和形式,所以,狂金来叨叨一下最核心的3大赛道,希望…

腾讯云SDK购买流程

音视频终端 SDK 需购买对应 License/套餐获得使用授权,本文将对购买 License/套餐的操作进行详细指引。 您可首先参考计费概述 确认您需要购买的内容,随后参考本文进行购买。本文仅提供 SDK 授权费用所需资源的购买,如果您需要使用其他相关云…

深入浅出MySQL事务处理:从基础概念到ACID特性及并发控制

1、什么是事务 在实际的业务开发中,有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次访问数据库的操作视为一个整体来执行,要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败,就进行事务的回滚&a…

回答网友一个数据显示的问题

事情是这个样子的 俺在一个C# 群里,一个问:"打开form2,可以同步显示form1的表格内容,在form2增删改表格内容之后,可以同步到form1中"。 俺 打开 delphi 放了几个 数据敏感 控件,演示了一下。还说了 一行…

Windows环境下训练开源图像超分项目 ECBSR 教程

ECBSR 介绍 ECBSR(Edge-oriented Convolution Block for Real-time Super Resolution)是一种针对移动设备设计的轻量级超分辨率网络。它的核心是一种可重参数化的构建模块,称为边缘导向卷积块(ECB),这种模…

数集相等定义凸显“R各元x的对应x+1的全体=R”是几百年重大错误

黄小宁 变量x所取各数也均由x代表,x代表其变域(x所有能取的数组成的集)内任一元。设集A{x}表A各元均由x代表,{x}中变量x的变域是A。其余类推。因各数x可是数轴上点的坐标所以x∈R变换…