网易首页 > 网易号 > 正文 申请入驻

端到端测试的4种处理测试数据的方法

0
分享至

对Web应用程序运行自动化的端到端测试时,最常见的问题之一是如何处理测试数据。 端到端测试通常会在通过应用程序中的测试用例时创建,更新和删除各种信息。 不可避免地,您会遇到问题,因为先前的测试运行会留下一堆陈旧的数据,这些数据可能会干扰您当前的测试执行。

对于其他形式的测试,管理数据并不是一个大问题。有些测试,如功能测试和集成测试,只检查应用程序的一小部分,使每次运行测试后更容易清理。在其他类型的测试中,比如较小的单元测试,您可以使用stub或mock任何必要的数据。

对于端到端测试,理想的场景是在整个系统中尽可能接近真实的使用情况。这意味着您需要确保您的系统服务拥有用于测试的正确数据,并在所有移动部件之间维护适当的数据完整性。您还需要将测试数据保持在不会干扰未来测试运行的状态。

可悲的是,说起来容易做起来难。根据应用程序的复杂性以及团队规模、可用技能集和组织预算等其他因素,可以采用不同的方式处理此问题。如果你正在努力寻找解决这个问题的方法,这里有一些方法可以让你思考如何最好地解决你的情况。

1)用于自动化测试的专用测试服务器

您可以拥有被测试的整个应用程序的完整副本,其工作方式与生产应用程序相同。

单独的环境不会妨碍手工或探索性测试。

如果你有一个复杂的系统架构,它会变得非常昂贵。

单独的服务器需要定期维护和升级,以保持系统平稳运行。

您仍然需要处理在测试运行之间保持数据处于良好状态的问题。

为了充分利用端到端测试,理想的做法是在尽可能接近生产环境的环境中执行它们。在一些组织中,您的生产应用程序将运行在专用的服务器上。很可能,它们也有用于UAT或登台目的的独立测试环境。虽然使用这些服务器运行自动化测试是可以接受的,但是最好有一个单独用于自动化测试的环境。

通过让专用服务器运行并准备好进行自动化测试,您可以创建相同的生产环境。这样,您就可以使用客户使用的相同结构的镜像对应用程序进行自动化操作。另外,拥有一个不会与手动或探索性测试产生冲突的独立环境也很有帮助。

这种方法确实有一些需要注意的地方。如果您的系统架构需要运行许多不同的服务,那么设置一个新环境可能会花费很多钱。如果有一个内部团队管理服务器,那么运行额外的服务器也会牺牲时间。最后,拥有一个不同的环境并不能完全解决在任何时候都拥有用于测试的正确数据的问题。它使得对数据的控制更易于管理,比如重新设置或恢复数据库。但是您仍然必须在测试中进行管理。

2)使用虚拟化或云计算来启动测试服务器

您可以随意启动完整的测试环境。

方便开发人员和测试人员在本地或在线创建一次性测试环境。

比一直使用专用硬件更便宜。

需要一些预先的专业知识来开始启动。

如果您需要启动大量服务以使测试应用程序正确工作,那么它可能会降低测试周期。

你可能会不小心忘记关闭云服务,而这最终会花掉你一大笔钱。

与专用服务器一样,您还可以利用虚拟化和云服务来生成单独的测试环境。目前,大多数组织和初创企业都将其应用程序托管在某种形式的云服务上,在大多数情况下,创建单独的服务器不需要任何额外配置。

虚拟化和云的伟大之处在于,您可以在瞬间启动和关闭成熟的服务,因此不需要处理保持它们一直运行的时间和成本成本。此外,Docker等虚拟化工具帮助开发人员和测试人员在本地系统上复制相同的环境,从而简化未发布功能的端到端测试过程。在任何时候,测试人员都可以使用新数据重新生成新服务器。

虚拟化和云服务是中小型团队的最佳选择,但它也不是完美的解决方案。在开始时需要一些专业知识,以确保虚拟化服务按预期运行。如果您有很多服务要运行,那么启动新的服务可能会减慢团队的测试工作流程。最后,请记住,云计算公司通常根据服务运行时间收费。如果您在运行测试后忘记关闭服务器,那么您将会收到一笔惊人的服务费。

3)添加开发标志来控制现有登台环境上的数据

允许测试人员在测试期间轻松地添加和删除数据。

它可以通过绕过长工作流来生成测试数据来加速一些测试场景。

它需要开发时间来实现,这在您的组织中可能是稀缺的。

这是开发人员需要在应用程序中维护的另一件事。

如果测试人员绕过长时间的工作流,不单独验证它们,那么它可以隐藏错误和回归。

一些团队在他们的应用程序中创建“开发标志”。这些标志是特殊的功能,允许团队执行生产环境中不可用的不同命令。例如,开发人员可以在使用特定帐户登录时访问应用程序中的特殊部分,或者访问绕过某些流的API端点。这些标志允许测试人员在运行测试场景之前自动创建数据库记录,而无需通过应用程序或清理数据库。

这种方法在测试环境中非常有用,因为您不需要过多地担心从一开始就在测试环境中拥有正确的数据。您可以在测试用例中包含一个设置步骤来清理数据库,并在每个场景之前生成所需的数据。它还可以显著加快测试速度,因为您可以跳过多个步骤来创建记录。一个典型的例子是在系统上创建新帐户时绕过电子邮件验证。使用开发标志,您可以创建一个有效的帐户,而不需要处理电子邮件验证部分。

开发标志的缺点是它需要开发人员实现和维护这些标志。在大多数组织中,开发人员每天可能有许多其他高优先级的任务要做,从特性到bug修复,以及两者之间的所有事情。这类任务的优先级通常较低,因为它不能直接为客户增加价值,所以团队构建和管理这些标志可能不可行。另一个问题是测试人员可能过于依赖这些标志,导致错误溜走,因为开发标志允许他们绕过应用程序的某些部分。

4)为测试api创建临时模拟数据服务

它允许测试人员在开发应用程序时进行自动化工作。

很容易设置一个干净的状态并在将来修改它,而无需潜入数据库。

您并不是在真实的系统上进行测试,这是端到端测试的主要目标之一。

模拟服务不会暴露基础设施中的问题。

如果被测应用程序的数据结构不断变化,那么您将花费大量时间维护这些模拟服务。

测试应该在开发过程中尽可能早地开始。当开发团队仍在构建新特性和基础时,使用前面提到的策略之一可能不可能运行端到端测试。但这并不意味着在开发人员发布某些东西之前,您不能从测试自动化开始。根据您的应用程序,您可以模拟数据层,同时保持应用程序的其余部分用于测试。

目前,大多数应用程序使用RESTful api来检索和存储数据。如果你有一个API不完整的应用程序,你可以使用像Mirage JS这样的库来创建一个可以模拟最终API端点的服务。如果您不想构建模拟API服务,您可以使用在线服务,比如mockAPI。这些库和服务可以让您轻松地控制所需的数据和响应,并且适合在获得最终可用的API之前开始测试。

当然,使用模拟服务意味着您没有利用端到端测试的主要好处之一——针对您的环境运行您的测试场景。这些库和服务不会发现服务器可能遇到的潜在问题,比如安全漏洞或降低性能。另一个问题是,如果API规范以任何方式发生变化,您将不得不花费额外的时间更新模拟服务以实现奇偶性,即使这些变化并不影响您的测试。

总结

处理运行自动化的端到端测试所需的数据通常并不简单。这些测试遍历整个应用程序,并在测试环境中留下更改的踪迹,这使得为后续测试运行进行清理变得很棘手。根据您的组织和被测试的应用程序中的多个因素,您可以使用一些方法来帮助使测试过程对涉及的每个人都更舒适。

以下是本文所列策略的总结:

如果您的团队有技能、预算和可用的时间来维护额外的服务器,那么您可以设置专用的测试环境来复制生产服务。保持测试环境的独立性可以使您对数据有更多的控制,但是这样做的成本可能会很高,而且您仍然需要在每次测试运行之前将数据设置为可用状态。

如果您没有保持专用服务器运行以进行测试的预算,那么您可以利用虚拟化和云服务。这些服务允许您按需启动生产环境的镜像,并在完成后关闭它们。您甚至可以在本地运行这些环境。它需要预先投资才能正确运行,并且启动按需的应用程序会减慢测试周期。

如果您的开发团队能够做到这一点,他们可以向应用程序本身添加标志,以允许测试人员根据需要创建和删除数据。这些开发标志将使您能够通过不经过某些应用程序流来加速测试。然而,很容易忘记包含那些流的测试覆盖率,从而导致bug从裂缝中溜走。

对于依赖于仍在开发中的api的应用程序,可以根据需要创建模拟服务来模拟数据层。Mock服务允许您提前完成正在进行的工作,以便尽可能早地开始测试。但它不是一个真正的系统,因此这些服务不会暴露在最终产品上出现的潜在问题。

请注意,这四种策略并不是处理端到端测试测试数据的唯一方法。它们是一些最常见的方法,适用于不同的情况。不管您和您的团队如何处理这个棘手的场景,花时间使您的测试自动化尽可能顺利地进行是一个好主意。

您还有哪些方法没有在本文中介绍?在下面的评论中与他人分享你的建议吧!

举报

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
陈慧琳演唱会穿三角裤衩,五十多了合适吗?人老心不老 不愧是女神

陈慧琳演唱会穿三角裤衩,五十多了合适吗?人老心不老 不愧是女神

陈意小可爱
2026-05-01 20:25:19
苏提达瑞典一战封神,一条毯子搞定丹麦国王,钻石瞬间不香了

苏提达瑞典一战封神,一条毯子搞定丹麦国王,钻石瞬间不香了

椰青美食分享
2026-05-04 10:33:59
张雪机车冠军奖金13万,德比斯年薪480万,这钱到底怎么算的?

张雪机车冠军奖金13万,德比斯年薪480万,这钱到底怎么算的?

童叔不飙车
2026-05-04 11:09:14
大特务毛人凤子女现状:长子是富士康董事长,三子是著名爱国华侨

大特务毛人凤子女现状:长子是富士康董事长,三子是著名爱国华侨

史之铭
2026-05-02 22:37:25
世界正在发生一个极其恶心的变化!印度最终可能会成为地球大患

世界正在发生一个极其恶心的变化!印度最终可能会成为地球大患

匹夫来搞笑
2026-05-04 02:15:46
离婚率 58% 创历史新高,中国式婚姻正在经历前所未有的冲击

离婚率 58% 创历史新高,中国式婚姻正在经历前所未有的冲击

番外行
2026-04-03 08:47:29
世乒赛爆大冷!世界冠军一输再输,孙颖莎零封,张本美和强势发威

世乒赛爆大冷!世界冠军一输再输,孙颖莎零封,张本美和强势发威

画夕
2026-05-04 10:24:59
五一,撒贝宁丈母娘全家来武汉,跨国界家庭大团聚,李白在旁翻译

五一,撒贝宁丈母娘全家来武汉,跨国界家庭大团聚,李白在旁翻译

天马幸福的人生
2026-05-03 23:23:48
郭焱:国乒男队的问题不是一天两天了!封训练的啥?林诗栋被牵着走

郭焱:国乒男队的问题不是一天两天了!封训练的啥?林诗栋被牵着走

生活新鲜市
2026-05-04 10:12:04
石宇奇捧杯脸都笑烂!翁泓阳透露带伤取分 梁王送小夫球拍超开心

石宇奇捧杯脸都笑烂!翁泓阳透露带伤取分 梁王送小夫球拍超开心

颜小白的篮球梦
2026-05-04 11:00:30
SK海力士股价上涨超10%,创盘中新高

SK海力士股价上涨超10%,创盘中新高

每日经济新闻
2026-05-04 10:47:04
赔光2亿后,冉莹颖独自搬家30箱未给邹市明留体面

赔光2亿后,冉莹颖独自搬家30箱未给邹市明留体面

春之韵
2026-03-18 09:32:52
国乒男团VS澳大利亚,比赛时间公布,马龙许昕驰援,王皓因祸得福

国乒男团VS澳大利亚,比赛时间公布,马龙许昕驰援,王皓因祸得福

体育大学僧
2026-05-04 08:49:06
总局是正部级,为什么央企有叫总局的?

总局是正部级,为什么央企有叫总局的?

环球通信
2026-05-04 09:50:10
1-3!利雅得胜利遭爆冷16连胜终结 争冠悬念再起 C罗中框+4次吐饼

1-3!利雅得胜利遭爆冷16连胜终结 争冠悬念再起 C罗中框+4次吐饼

我爱英超
2026-05-04 06:07:28
苏东坡:凡是一遇到事情就烦躁焦虑、总不快乐的人,是没做到这些

苏东坡:凡是一遇到事情就烦躁焦虑、总不快乐的人,是没做到这些

富书
2026-05-03 11:45:16
3-1领先惨遭逆转!又一个老里?难怪球队说什么都要裁他,太拉了

3-1领先惨遭逆转!又一个老里?难怪球队说什么都要裁他,太拉了

你的篮球频道
2026-05-04 07:27:24
赖清德偷偷窜访斯威士兰,赵少康怼得好,我国台办表态亮了

赖清德偷偷窜访斯威士兰,赵少康怼得好,我国台办表态亮了

浪子阿邴聊体育
2026-05-03 09:52:55
拜仁官媒调侃等欧冠半决赛次回合:天上一天,地上一年

拜仁官媒调侃等欧冠半决赛次回合:天上一天,地上一年

懂球帝
2026-05-04 00:11:17
台湾老兵带妻子回大陆见原配,苦等50年相谈1小时,原配:无话说

台湾老兵带妻子回大陆见原配,苦等50年相谈1小时,原配:无话说

蒋南强读历史
2026-05-04 06:00:11
2026-05-04 13:04:49
牛马科技
牛马科技
业务数码玩家.无聊的博主
5973文章数 615关注度
往期回顾 全部

科技要闻

OpenAI“复活”了QQ宠物,网友直接玩疯

头条要闻

大型邮轮暴发病毒致3死 曾有好莱坞明星夫妇染病死亡

头条要闻

大型邮轮暴发病毒致3死 曾有好莱坞明星夫妇染病死亡

体育要闻

曼联3-2双杀利物浦!提前三轮锁定欧冠资格 梅努制胜

娱乐要闻

严浩翔新歌,父母离婚17年矛盾升级

财经要闻

魔幻的韩国股市,父母给婴儿开户买股票

汽车要闻

同比大涨190% 方程豹4月销量29138台

态度原创

房产
艺术
游戏
教育
军事航空

房产要闻

五一楼市彻底明牌!塔尖人群都在重仓凯旋新世界

艺术要闻

奥托·冯·托伦:19世纪奥地利著名动物/风景画家

体量堪比续作!《毁灭战士:黑暗时代》DLC 细节全曝光

教育要闻

一模之后,中考之前……

军事要闻

伊朗公布伊方最新谈判方案

无障碍浏览 进入关怀版