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

接口测试需要验证数据库么?

问题:

有的接口会返回很多数据,有的接口可能就返回一个状态码及success之类的消息,这些需要验证数据库么?现在在写一个测试框架,配置接口参数和预期返回值,生成xml文件管理用例,用一个比较方法对预期和返回作比较,不需要根据每个接口写脚本,现在的疑惑只之比较返回值,并不清楚接口是否真的成功了,比如删除之类的接口,返回说成功了,但数据是否真的删除了?

如果要验证数据库,感觉得为每个用例写脚本去验证了,这就和初衷不符

(只写个比较函数,比较返回的所有值,不需要为每个接口单独验证)

回答:

不少同学在做自动化是都会问要不要验证数据库?我的答案是不要!

根据分层自动化测试的概念。

UI层自动化模拟的是用户操作,假设我是一个普通的用户,在你家的系统上购买了一件商品,我怎么知道有没有购买成功?难道要去查你家系统的“已购买表”?没权限,就算有权限我也不会!那我怎么验证?很简单啊!系统不是有“已购买” 商品列表嘛!点开“已购买”菜单看就可以了!(如果没有这功能,那说明你的系统设计有问题。用户体验不好,差评!!)

接口自动化模拟的是开发的代码操作,A开发写的接口给B开发去调用,A系统的接口给B系统去调用,假设我是一个开发,我调用了微信的接口去做获取用户头像,有个用户获取不到,来!微信团队,你让我查查你们的数据库呗!微信肯定不答应。(数据库不是你想查,想查就给你查!)

那接口返回了“success”,但没有把数据添加/删除成功怎么办?从我两年接口自动化的经验来说,这中情况基本非常少见,因为开发在写代码的时候,返回“success”的前提条件肯定是基于操作成功的。(开发写代码的时候肯定会自已运行一下啊!怎么会运行都不运行,哪儿来的自信!)

你们的开发就是粗心怎么办?我是这么做的,开发提交了新的接口,我会边读接口代码边设计接口用例(如果接口逻辑看不懂接口数据可能就构造不出来,接口用例自然也不会写。),代码有问题就直接告诉开发改了,在这个过程中,我是会查数据库的。一旦接口用例写好之后,后面再回归去跑的时候就不管了,当然,每条接口用例里面肯定不会加查询数据库的动作。

在特殊情况下,我调用了一个删除数据的接口,有没有真的删除一条数据,我可以调用查询数据的接口啊!查不出来刚才删除的数据,不就证明刚才的删除接口操作是ok的了。

大多数测试问这个问题就是把自己当测试了,在做手工测试的时候就是这么查数据库的呀!典型的站在测试的思维上想问题。我做UI自动化的时候,我就是普通的用户;我做接口测试的时候我就是开发。

只不过,我会比普通用户和开发更细致更全面的“使用”系统所提供的功能而已。但“使用姿势”和他们是一样的!

http://www.gsyq.cn/news/1383576.html

相关文章:

  • macOS鼠标平滑滚动终极指南:让外接鼠标获得触控板般丝滑体验
  • Unity URP管线下的PICO4 VR开发:从零配置可移动交互的虚拟角色(2021.3.27f1实测)
  • 昇腾NPU上部署YOLO系列——NPU端NMS与性能优化(完整版)
  • Avidemux视频编辑器的完整指南:如何用轻量级工具实现专业级剪辑效果
  • 别再只用Random.Range了!Unity随机数生成器(Random类)的5个实战技巧与常见误区
  • 别再只用Random.Range了!Unity随机数生成器(Random类)的5个实战技巧与避坑指南
  • 端到端延迟优化:从 LLM 到 Harness 层
  • 四级证件照怎么制作?2026英语四六级报名照片尺寸要求+教程 - 科技大爆炸
  • UE5对象池进阶:如何设计支持栈/队列模式、事件监听的灵活系统?
  • UE5蓝图实战:用程序化网格体组件实现物体动态切割(含物理分离与射线触发)
  • UE5蓝图实战:用程序化网格体组件实现鼠标点击切割任意模型(含物理分离效果)
  • 告别枯燥理论!用Unity脚本生命周期与预制体玩转一个“会变身的敌人”
  • Niagara特效避坑指南:从‘喷泉穿模’到完美碰撞,GPU模拟设置全流程
  • UE5 Niagara特效实战:用Simple Sprite Burst模板10分钟搞定写实烟雾效果
  • 【限时解密】Midjourney内部文档泄露片段:noise_floor阈值、dithering开关与--style raw的底层耦合逻辑(仅剩最后87份存档)
  • 从《原神》到你的项目:看VaRest插件如何成为虚幻引擎与后端服务的‘万能胶’
  • 别再只用Sprite了!UE Niagara网格体渲染器实战:用自定义模型打造高级粒子特效
  • SCADA系统研发:从数据采集到智能运维的完整解析
  • 在持续集成流程中集成TaoToken API进行自动化代码审查的实践
  • k6 Scenario深度解析:构建真实用户行为压测模型
  • 上蔡假发定制亲测:这家口碑超稳 - 资讯快报
  • DAIR-V2X-V数据集深度评测:与KITTI、nuScenes比,它到底强在哪?
  • Vue2和Vue3响应式数据对比
  • 基于SOM-RMO与RBFN-Tabu Search的恶意URL实时检测模型解析
  • UE5跨关卡存档系统:SaveGame与GameInstance协同实战
  • 2026 上海市嘉定区十大装修公司推荐榜单:真实数据核验,装修避坑指南 - 元点智创
  • 2026年成人纸尿裤经济型选购指南:高性价比产品分析与场景适配建议 - 万事通达
  • 入侵检测中特征重要性分析的不稳定性:从SHAP到反事实解释的实践反思
  • 使用 Taotoken 聚合平台后如何通过用量看板清晰掌握各模型调用成本
  • Unity URP中UGUI Mask失效根因与Stencil修复方案