接口测试中,要验证和使用数据库吗

这个问题提的真好,我想很多人都没有考虑过这个问题。我抛砖引玉,尝试回答一下。

首先,接口自动化测试是分层测试的一种,那就意味着它只能测到一部分范围,就是接口的请求和响应是否正常,其他的地方它是测不到,这时候只有引入其他的测试手段才能把测试范围覆盖完全,比如 ui 测试和数据库测试,还有其他的中间件测试。

这么说来,接口自动化测试只管输入和输出,根本没必要用数据库。

但是,现实没有这么美好。 在研发中,我们想通过 单元测试、接口测试、ui 测试、端对端测试等各种测试类型来保障产品质量,但是其实很多测试类型都是缺失的,其中缺失最严重的是单元测试。

由于各种各样的原因,几乎没有几个团队重视单元测试,这也意味着,产品中调用的基本函数和类没有经过测试就直接教到测试手上了,当然,数据库是否落库,消息队列是否正常运转,缓存有没有命中,都没有经过基本的测试,就直接进入了接口测试阶段。

**此时,你的接口自动化测试就要承担更多的责任,**把单元测试没有完成的工作交接过来。就好像我们为了赶时间把新设计的电动车造出来,单独去测轮胎,单独去测引擎,单独去测方向盘这些都不搞了,而是直接拉出来跑。 那测试人员在车上除了关注车整体的运转情况下,一定还要多留一个心眼,对每个单独的部件也多一份关心。

接口自动化测试理论上不需要数据库干预,但是如果数据库没有单独测试,那在接口测试中就要加入这部分的工作。

数据库操作分为查库操作和写库操作。写库操作一定要重点关注,查库操作在有精力的情况下也可以适当校验。

上面都是需要用到数据的第一种场景:校验数据库。 第二种在接口自动化测试中可能会用到数据库的场景是获取数据:有一些接口测试需要的数据需要你通过数据库得到,或者通过造数方式写入到数据库中(运行完以后可以清除)。

比如你在测试注册接口的时候,会由后端发一个手机验证码,这个验证码你很有可能会通过查数据库的方式去获取,否则你就很难进行下一步操作。

两种使用数据库的场景:校验数据库和管理接口依赖数据,不知道这个回答对你有没有启发。

本文完,感谢你的耐心阅读,如有需要可加我微信,备注「博客」并说明原因,我们一起进步,下次见。

上次更新: 2022/08/17, 07:13:00
最近更新
01
02-Cypress如何在写代码时获取提示
08-27
02
02-Cypress安装
08-27
03
0-Python怎么才能快速学好
08-27
更多文章>