当前位置:网站首页>接口测试中,应不应该用数据库
接口测试中,应不应该用数据库
2022-08-10 15:43:00 【InfoQ】
这个问题提的真好,我想很多人都没有考虑过这个问题。我抛砖引玉,尝试回答一下。
首先,接口自动化测试是分层测试的一种,那就意味着它只能测到一部分范围,就是接口的请求和响应是否正常,其他的地方它是测不到,这时候只有引入其他的测试手段才能把测试范围覆盖完全,比如 ui 测试和数据库测试,还有其他的中间件测试。
这么说来,接口自动化测试只管输入和输出,根本没必要用数据库。
但是,现实没有这么美好。 在研发中,我们想通过 单元测试、接口测试、ui 测试、端对端测试等各种测试类型来保障产品质量,但是其实很多测试类型都是缺失的,其中缺失最严重的是单元测试。
由于各种各样的原因,几乎没有几个团队重视单元测试,这也意味着,产品中调用的基本函数和类没有经过测试就直接教到测试手上了,当然,数据库是否落库,消息队列是否正常运转,缓存有没有命中,都没有经过基本的测试,就直接进入了接口测试阶段。
**此时,你的接口自动化测试就要承担更多的责任,**把单元测试没有完成的工作交接过来。就好像我们为了赶时间把新设计的电动车造出来,单独去测轮胎,单独去测引擎,单独去测方向盘这些都不搞了,而是直接拉出来跑。 那测试人员在车上除了关注车整体的运转情况下,一定还要多留一个心眼,对每个单独的部件也多一份关心。
接口自动化测试理论上不需要数据库干预,但是如果数据库没有单独测试,那在接口测试中就要加入这部分的工作。
数据库操作分为查库操作和写库操作。写库操作一定要重点关注,查库操作在有精力的情况下也可以适当校验。
上面都是需要用到数据的第一种场景:校验数据库。 第二种在接口自动化测试中可能会用到数据库的场景是获取数据:有一些接口测试需要的数据需要你通过数据库得到,或者通过造数方式写入到数据库中(运行完以后可以清除)。
比如你在测试注册接口的时候,会由后端发一个手机验证码,这个验证码你很有可能会通过查数据库的方式去获取,否则你就很难进行下一步操作。
两种使用数据库的场景:校验数据库和管理接口依赖数据,不知道这个回答对你有没有启发。
边栏推荐
猜你喜欢
随机推荐
推荐几款最好用的MySQL开源客户端,建议收藏!
程序调试介绍及其使用
ExceptionInInitializerError
5G NR MIB Detailed Explanation
请查收 2022华为开发者大赛备赛攻略
LeetCode-101. Symmetric Tree
A test tool for ABAP Development Tool custom service endpoint
推荐几款最好用的MySQL开源客户端,建议收藏!
h5开容器,新页面返回遇到的问题
安克创新每一个“五星好评”背后,有怎样的流程管理?
photoshop入门教程
cmake记录
Asterisk SIP media path
Chapter one module of the re module,
HUAWEI CLOUD DevCloud received the highest-level certification of the first batch of cloud-native technology architecture maturity assessments by the China Academy of Information and Communications Te
mysql按月查询统计(统计近12个月的项目个数)
NPM - Cannot read properties of null (reading 'pickAlgorithm') 解决方案
Reids 源码导读
二维费用的背包问题 ← 模板题
商业智能BI行业分析思维框架:铅酸蓄电池行业(二)