• 请不要在回答技术问题时复制粘贴 AI 生成的内容
asanelder
V2EX  ›  程序员

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

  •  1
     
  •   asanelder · Jul 21, 2021 · 2555 views
    This topic created in 1770 days ago, the information mentioned may be changed or developed.
    一个简单的 Web 服务, 数据都在数据库中.

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

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

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

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

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

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

    感谢几位铁子们提供的思路, 俺想办法实践实践
    ebingtel
        8
    ebingtel  
       Jul 22, 2021
    我是自动复制一份空数据库、测试完之后 自动删除
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3187 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 13:09 · PVG 21:09 · LAX 06:09 · JFK 09:09
    ♥ Do have faith in what you're doing.