gpt4 book ai didi

database - 如何为 Web 应用程序 GUI 测试分离数据库依赖性

转载 作者:行者123 更新时间:2023-11-28 21:28:31 25 4
gpt4 key购买 nike

使用 Selenium API 进行 Web 应用程序 GUI 测试是验证应用程序行为的重要方式(当然仅限于特定程度)。这里的主要问题是对其他应用程序也使用的其他资源的依赖性。尽管应用程序(被测)部署在测试平台上,但其他被测应用程序也部署在那里并使用这些数据库。这里的结果是测试将无法正常工作,因为应用程序会相互干扰并操纵或删除它们所依赖的其他测试数据!

“企业”系统的架构不依赖于 Web 服务,一个应用程序可以通过 Web 服务从另一个应用程序域检索数据。 相反,它们通过自定义读取、写入执行权限通过数据库链接紧密耦合,以便每个应用程序都能够通过 JPA 和 EJB 检索所需的数据。 p>

为了克服这个问题,我可以想到以下选项:

  1. 我的最爱!对于每个应用程序,都存在一个独立的 RESTful WebService,它充当数据库和相应 WebApplication 之间的层,以及 dependent-by 应用程序的通信 channel 。

    • 优点: 最大的灵 active ,因为在编译时很容易用测试虚拟机替换依赖项
    • 缺点: 大量的初始工作,创建 Web 服务以及用 REST 服务替换直接数据库访问。以及虚拟实现的维护。
  2. 第二个是通过执行逻辑按顺序执行不同 Web 应用程序的测试执行,该执行逻辑也在执行开始之前替换数据库(DB 设置)。

    • Pro: 省力,因为我只需要提供和维护包含常用记录的数据库转储。
    • 缺点: 不可能进行并行化。必须安排测试执行。漫长的等待时间!
  3. 在可维护性方面可能是最差的一个,但我也想提一下这个选项,因为第二个选项可能会导致长时间空闲。因此,对于每个 Web 应用程序,都存在一个提供所有相关数据库的独特测试执行环境。数据库替换的工作方式与第二种方法所描述的相同。

    • 优点: 与第二种方法相同,而且具有高度灵 active 且没有等待时间(调度),因为每个应用程序都有其专用的测试执行环境。<
    • 缺点: 消耗大量资源并导致困惑的测试系统环境,(可能)需要专门的系统管理员

最佳答案

我不太确定这个平台是如何运作的

The major problem here are dependencies to other ressources which are used by other applications too. Although the application (under test) is deployed on a test plattform, other applications under test are deployed there too and are using those databases.

但是每个应用都应该有自己的数据库和专用资源。即使你的 integration tests依赖其他 SUT,这不应该影响它的内部运作。毕竟这是一个黑盒子。同样适用于 UI 测试——为什么他们应该(明确地)关心 SUT 的数据库中发生了什么?

since the applications will interfere each other and manipulate or delete the others test data on which they rely!

恕我直言,您需要的是更好的测试夹具策略。 Here are那些解释:

  • 新鲜夹具

  • 最小夹具

  • 共享夹具

关于database - 如何为 Web 应用程序 GUI 测试分离数据库依赖性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32129928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com