求问测试大佬, HTTP 接口的自动化测试如何解决数据污染问题

2021-07-21 15:56:50 +08:00
 asanelder
一个简单的 Web 服务, 数据都在数据库中.

但所有人都在往数据库中修改数据.

那么, 这种情况下, 如何做 HTTP 接口的自动化测试呢?
1880 次点击
所在节点    程序员
8 条回复
zongren
2021-07-21 16:10:16 +08:00
提供还原的接口
每次测试新建环境(当然是自动化)
pastgift
2021-07-21 16:31:24 +08:00
肯定要有一开始的测试环境构建和最后的环境清理的
自动化测试启动前,必要的数据导入数据库
跑完测试,把相关的测试数据全部清理掉

有条件的应该是新开一个完全独立的自动化测试环境,跑完删了就行,不和开发环境混在一起
没条件的可以给自动化测试时创建的记录加上前缀(比如,新建用户的时候,用户名起成「 autotest_user 」,最后统一根据前缀删除
efaun
2021-07-21 17:17:07 +08:00
打 tag
coolcoffee
2021-07-21 17:50:32 +08:00
比较理想的状态是,开发的是时候能写好 seed 数据,然后自动化测试就是拉出一个实例或者容器单独去跑。

但是实际上是,除非是完全新的项目,且有时间去写 seed 数据,否则老项目 seed 数据要么没有,要么已经很久没维护过,跑起来一步一坑。
NCE
2021-07-21 20:22:13 +08:00
做环境分离啊

所有人都在往数据库中修改数据 = DEV 环境

做 HTTP 接口的自动化测试 = TEST 环境
NCE
2021-07-21 20:23:04 +08:00
另外接口测试自动化应该都是实际数据动态请求,而不是写死的,写死的不叫自动化测试。
asanelder
2021-07-22 09:19:37 +08:00
@NCE #6
@NCE #5
@coolcoffee #4
@efaun #3
@pastgift #2
@zongren #1

感谢几位铁子们提供的思路, 俺想办法实践实践
ebingtel
2021-07-22 14:20:03 +08:00
我是自动复制一份空数据库、测试完之后 自动删除

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/790862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX