【问题标题】:Spring boot docker application end-to-end Testing with chrome driver使用 chrome 驱动程序进行 Spring Boot Docker 应用程序端到端测试
【发布时间】:2020-07-23 10:22:10
【问题描述】:

我已经使用 maven 进行了单元和集成测试,但我正在尝试将使用 angular(frontend) 的端到端测试转移到 maven,这样我就可以将测试金字塔的每一层都连接到同一个 maven 构建中,但是我这样做有困难。

我的 Spring Boot 应用程序有一些依赖项,例如 postgres 和 keycloak。我试图“模拟”依赖项(在单元和集成测试中,我使用带有 testcontainers 的 postgres),因此我可以拥有一个独立的环境,而不依赖于外部服务是否运行。

我设法打开 chrome 并使用 selenium 和 chrome 驱动程序进行了一些点击,但所有这些都在我的本地数据库和前端应用程序上运行,我需要启动并运行它。我想要一些可以在以后与 jenkins 集成的东西,所以我需要一些可以独立工作的东西。

我在互联网上搜索,但找不到任何这样的场景。有人可以帮忙吗?

【问题讨论】:

    标签: java spring maven selenium-chromedriver end-to-end


    【解决方案1】:

    您可以让 Jenkins 流程为

    +--------------+          +-----------------+       +-----------+
    |              |          | Setup Phase     |       |           |
    | Trigger Test | -------->| DB setup and    |------>| Run Tests |
    |              |          | Any other setup |       |           |
    +--------------+          +-----------------+       +-----------+
    

    您的整个端到端测试将分为两个阶段。在第一阶段,您必须为任何第三方服务(如 Keycloak)配置所有必需的服务,如数据库、缓存层、测试凭据。例如, 您需要使用正在运行的 Postgresql 或服务所需的任何其他数据库。对于其他第三方服务,如果可用,您可以使用他们的沙箱,否则为每个测试运行使用不同的配置(您也可以有多个配置并根据其他运行的测试选择它们)。在这种情况下,某些第三方服务会要求您拥有公共域/URL,您需要在公共 URL 后面配置您的服务。

    一旦您配置了整个系统,您就可以开始使用 API 来使用测试脚本收集响应。可能有一段时间,API 可能无法为您提供您正在查看的确切数据,在这种情况下,您可以在代码中添加新的 API 或使用其他技术来收集数据,例如数据库查询,运行一些手动/使用 FTP 等的自动化脚本。

    【讨论】:

    • 感谢您的回答。我想我已经接近实现我想要的测试容器了
    猜你喜欢
    • 2016-04-23
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多