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

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

  •  1
     
  •   asanelder · 12 天前 · 765 次点击
    一个简单的 Web 服务, 数据都在数据库中.

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

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

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

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

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

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

    感谢几位铁子们提供的思路, 俺想办法实践实践
    ebingtel
        8
    ebingtel   11 天前
    我是自动复制一份空数据库、测试完之后 自动删除
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3160 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:03 · PVG 18:03 · LAX 03:03 · JFK 06:03
    ♥ Do have faith in what you're doing.