V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
asanelder
V2EX  ›  程序员

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

  •  1
     
  •   asanelder · 2021-07-21 15:56:50 +08:00 · 1888 次点击
    这是一个创建于 1221 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个简单的 Web 服务, 数据都在数据库中.

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

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

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

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

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

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

    感谢几位铁子们提供的思路, 俺想办法实践实践
    ebingtel
        8
    ebingtel  
       2021-07-22 14:20:03 +08:00
    我是自动复制一份空数据库、测试完之后 自动删除
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1695 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 16:48 · PVG 00:48 · LAX 08:48 · JFK 11:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.