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

Posted 达内软件测试培训

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了答疑 | 接口测试需要验证数据库么?相关的知识,希望对你有一定的参考价值。

最新:软件测试本月免费课程抢先预约中,点击文末“阅读原文”快速抢报

【推荐阅读】

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


问题:

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

  

回答: 

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

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

 

UI层自动化模拟

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

 

接口自动化模拟

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

 

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

 

如何防止与开发对接时出错?

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

 

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

 

总结

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

 希望能帮到你!


免费报名听课!

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

抓住机会

速速来约

PS:记得查收达妹送你的免费大礼包呦~

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

*版权声明:

内容与图片均来源于网络(部分内容有修改),如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

内容推荐:

1、

2、

3、

4、

5、

6、

7、

8、

▲了解更多软件测试资讯,长按上方二维码


点击“ 阅读原文 ”抢报软件测试免费试听课

以上是关于答疑 | 接口测试需要验证数据库么?的主要内容,如果未能解决你的问题,请参考以下文章

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

做一个网站调用外部接口需要数据库嘛

你真正了解什么是接口测试么?接口实战一“篇”入魂

米么接口测试框架探索之路

JMETER接口测试中,如何把察看结果树中的响应数据存储到指定文件

接口自动化测试需要验证数据库吗?