一个简单的 Web 服务, 数据都在数据库中.
但所有人都在往数据库中修改数据.
那么, 这种情况下, 如何做 HTTP 接口的自动化测试呢?
但所有人都在往数据库中修改数据.
那么, 这种情况下, 如何做 HTTP 接口的自动化测试呢?

1 zongren Jul 21, 2021 提供还原的接口 每次测试新建环境(当然是自动化) |
2 pastgift Jul 21, 2021 肯定要有一开始的测试环境构建和最后的环境清理的 自动化测试启动前,必要的数据导入数据库 跑完测试,把相关的测试数据全部清理掉 有条件的应该是新开一个完全独立的自动化测试环境,跑完删了就行,不和开发环境混在一起 没条件的可以给自动化测试时创建的记录加上前缀(比如,新建用户的时候,用户名起成「 autotest_user 」,最后统一根据前缀删除 |
3 efaun Jul 21, 2021 打 tag |
4 coolcoffee Jul 21, 2021 比较理想的状态是,开发的是时候能写好 seed 数据,然后自动化测试就是拉出一个实例或者容器单独去跑。 但是实际上是,除非是完全新的项目,且有时间去写 seed 数据,否则老项目 seed 数据要么没有,要么已经很久没维护过,跑起来一步一坑。 |
5 NCE Jul 21, 2021 做环境分离啊 所有人都在往数据库中修改数据 = DEV 环境 做 HTTP 接口的自动化测试 = TEST 环境 |
6 NCE Jul 21, 2021 另外接口测试自动化应该都是实际数据动态请求,而不是写死的,写死的不叫自动化测试。 |
7 asanelder OP |
8 ebingtel Jul 22, 2021 我是自动复制一份空数据库、测试完之后 自动删除 |