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

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

问题:

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

回答:

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

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

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

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

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

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

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

大多数测试问这个问题就是把自己当测试了,在做手工测试的时候就是这么查数据库的呀!典型的站在测试的思维上想问题。我做UI自动化的时候,我就是普通的用户;我做接口测试的时候我就是开发。只不过,我会比普通用户和开发更细致更全面的“使用”系统所提供的功能而已。但“使用姿势”和他们是一样的!

http://www.jsqmd.com/news/996454/

相关文章:

  • 别再盲目训练模型了!用EarlyStopping在Keras/TensorFlow中自动找到最佳停止点
  • 065、从 Skill 到自动化平台:把项目流程固化为可复用的技能库体系
  • 突破大众点评反爬技术:完整数据采集解决方案实战
  • Softmax函数的一个“小bug”?从数学角度拆解LLM注意力汇聚(Attention Sink)的根源
  • 从手机人像模式到工业检测:聊聊不同场景下‘景深’的玩法与坑点
  • 从语音通话到AI交互:深入聊聊AEC、ANS、AGC如何塑造了Siri和小爱的‘耳朵’
  • 告别低效同步:用PyTorch的BlockReduceSum和Warp原语重构你的CUDA Reduce(支持Ampere架构)
  • 番茄小说下载器:当网络不稳定时,如何优雅地离线阅读心爱小说?
  • 新版OpenCV5.0在ONNX模型的推理应用
  • 2026年比较好的工厂临建打包箱/新疆打包箱房横向对比厂家推荐 - 行业平台推荐
  • 你的PRBS生成器够快吗?聊聊并行化在SerDes测试中的性能优化技巧
  • AI Agent 的Human-in-the-Loop工程实践:何时停下来问人,如何设计ApprovalFlow
  • 老师制作上课课件怎么选?2026年5款文字转语音在线工具,满足不同授课音频需求
  • Adapter Tuning实战:如何像搭乐高一样,为你的大模型添加可插拔的‘技能模块’?
  • 063、Skill 调试与版本管理:更新策略、兼容性处理、测试与回归验证
  • 2026年成都租车行业观察:商务接待与川西川藏线用车如何选? - 优质品牌商家
  • 数字示波器参数大全:从入门到精通(九)
  • Microchip USB Hub配置实战:如何让你的集线器变身多协议快充站(支持BC1.2/CDP/DCP/SE1)
  • 2026年PPT转PDF保姆级教程:PowerPoint和WPS详细操作指南
  • 终极猫抓资源嗅探指南:3步快速搞定网页视频音频下载
  • 从STL算法到现代C++:Lambda捕获列表[ ]、[=]、[]的进阶玩法与性能考量
  • FPGA HDMI输出避坑指南:搞懂OSERDESE2级联与TMDS直流平衡,告别屏幕花屏
  • 2026年桥架厂家综合实力评价:技术、交付与服务全景分析 - 优质品牌商家
  • 告别‘糊’图:手把手调优你的立体匹配模型,用高频信息提升AR渲染与避障精度
  • MyBatis 中,#{} 和 ${}的区别
  • 从钢琴键盘到五线谱:手把手教你‘数’出A大调为什么是三个升号(附调号推导实战)
  • AI巨头激战:Claude神话版与GPT5.6对决,这周模型圈太炸了
  • Unix垃圾回收器重制版:重写过程、漏洞分析与复现方法揭秘
  • Windows虚拟网络声卡Scream:轻松实现局域网音频传输的完整教程
  • 从ChatGPT到芯片验证:AI如何‘读懂’SystemVerilog代码并帮你找Bug?