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

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

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

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

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

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

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

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

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

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

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

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

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

 

http://www.lryc.cn/news/237755.html

相关文章:

  • 配置 `PostgreSQL` 与 `Keepalived` 以实现高可用性
  • C++: int转换成LPCSTR
  • kettle官网和中文网地址
  • 纽扣电池类产品上架亚马逊澳大利站认证标准要求AS/NZS 62368
  • 网站监控的重要性及实施策略
  • 亚马逊车灯外贸出口CE认证标准办理解析
  • windows 查看防火墙设置命令使用方法
  • [Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例
  • NextJS开发:解决React Hook useEffect has a missing dependency
  • 交叉编译tcpdump
  • 万字解析设计模式之 装饰者模式
  • 生成对抗网络Generative Adversarial Network,GAN
  • C++入门第八篇---STL模板---list的模拟实现
  • 论文导读 | 大语言模型与知识图谱复杂逻辑推理
  • 数智竞技何以成为“科技+体育”新样本?
  • Vue项目Jenkins自动化部署
  • 特效!视频里的特效在哪制作——Adobe After Effects
  • 2023年中国醇酸树脂涂料需求量、应用领域及市场规模前景分析[图]
  • 【Linux进阶之路】动静态库
  • Ubuntu磁盘扩展容量
  • 2023年中国羽绒制品需求现状、市场规模及细分产品规模分析[图]
  • 动手学深度学习——循环神经网络的从零开始实现(原理解释+代码详解)
  • 【操作系统】文件系统的逻辑结构与目录结构
  • 局域网内Ubuntu上搭建Git服务器
  • 基础课10——自然语言生成
  • xpath
  • Java拼图小游戏
  • 终于有人把数据资产入表知识地图总结出来了,轻松看懂
  • 白鳝:聊聊IvorySQL的Oracle兼容技术细节与实现原理
  • vue和uni-app的递归组件排坑