写点什么

接口测试中,应不应该用数据库

作者:和牛
  • 2022 年 8 月 10 日
    湖南
  • 本文字数:838 字

    阅读完需:约 3 分钟

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


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


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


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


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


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


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


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


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


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


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




发布于: 刚刚阅读数: 3
用户头像

和牛

关注

还未添加个人签名 2018.04.25 加入

python程序员,wx号:shoubian01

评论

发布
暂无评论
接口测试中,应不应该用数据库_八月月更_和牛_InfoQ写作社区