【问题标题】:How do I trigger Java Selenium Tests post deployment in VSTS如何在 VSTS 中触发 Java Selenium 测试后部署
【发布时间】:2018-08-03 12:26:00
【问题描述】:

我们正在生成一个用于部署到 Azure 的 Web 服务。这包括开发、测试、完整 UAT 和生产的四个流水线阶段。在初始部署到 Dev 时,我想执行一组 Selenium 烟雾测试。然后当部署到 UAT 时,应该触发一整套自动化测试。

我们的测试团队更乐意通过 Java 路线使用 Selenium。几天后,很明显该过程是生成一个 UI 代理(对于尚未这样做的任何人来说真的很重要,因为 ChromeDriver 确实在没有会话的情况下运行,但只会挂起,让您认为它必须关闭运行),分配一个 SELENIUM_TEST 代理属性,并将此标志设置为构建依赖项(这有助于它找到正确的代理),并确保在 VSTS 设置中设置所需的 java 和 maven 变量(除了路径) ,而不是本地机器环境。最后使用 clean、update 和 -X 参数强制将环境配置为测试过程的一部分。

现在我遇到了如何从部署管道触发这些测试的问题。我在大量网站上搜索并找到了文章,但找不到任何关于如何使用 Maven Java Selenium 组合来实现这一点的信息。

谁能帮忙?

【问题讨论】:

  • “触发构建任务”对您来说有什么问题?以及您希望如何触发 VSTS 发布管道中的测试,您能否解释更多细节以及如何配置任务?
  • 嗨玛丽娜,问题是测试同步。我希望将 WebApp 部署到测试槽并在部署后触发测试。这个想法是针对每个构建自动进行冒烟测试。似乎 selenium 测试可以使用 c# 做到这一点,但没有说明如何使用基于 java 的 selenium 测试来实现这一点。
  • 嗨玛丽娜,非常感谢您的回复。我参考了第二篇文章让测试在其自己的 CI 管道中运行,我认为我有一种相当不整洁的方式将其转换为部署管道。我现在正在看第一篇文章,看看它是否给了我一个更整洁的解决方案。非常感谢。非常感谢你们试图帮助我解决这个问题。
  • 我将其添加为答案。由于它对您有用,您可以通过单击答案左侧的√符号来标记答案。它也将使遇到类似问题的其他成员受益。

标签: java selenium deployment automated-tests azure-devops


【解决方案1】:

在 VSTS 中构建和部署 Java Selenium Tests,详细步骤可以参考文档Testing Java applications with VSTS

此外,您还可以参考博客Continuous Testing of a Java Web App in VSTS using Selenium 在 VSTS 中构建和部署 Java Web App。

【讨论】:

    【解决方案2】:

    我不会将此作为完整答案发布,但我想回应 Michele 和 Marina 的善意意见。我不确定是否有更好的方法来解决这个问题,但在两者的帮助下,我至少能够更接近答案。我确实准备了图像,但显然你需要声誉才能这样做。

    所以这就是我最终做的事情。

    第 1 步 - 生成 MVC Web 应用并设置适当的部署槽以接收 Web 构建工件。

    第 2 步 – 创建一个 CI 流程,纯粹是为了生成可以部署到 WebApp CD 管道中的代码。

    第 3 步 – 在 WebApp 部署管道中生成一个空的“烟雾测试”环境,并将第 1 步中的新 Artefact 添加到此环境中。

    配置冒烟测试项

    • 将其配置为仅接收 _AutoTest-CI 工件

    • 将其设置为使用“默认”管道

    • 添加了“需求”,指定为 Selenium 测试配置的机器。

    • 添加了 Maven 任务,并将其指向 Maven POM

    在这个阶段,它成功地通过了配置的测试。 Maven部署步骤似乎有它可以生成测试结果的想法,但是输出给出了没有生成测试结果的警告。它将生成输出,并报告成功或失败,因此这是一个半成功。缺少的最后一块是报告完整的测试结果,我还没有达到。

    【讨论】:

      【解决方案3】:

      您可以通过在发布管理 UI 中使用此工具配置触发器来触发环境内的任务。

      如果满足触发条件,该过程将自动启动。在您的流程中,您可以执行您需要的任何任务。

      参考

      Microsoft VSTS Docs

      【讨论】:

      • 感谢 Michele 的快速回复。我遇到的问题不是生成部署步骤的能力,而是触发构建任务。我可以创建一个 Maven 任务作为部署阶段的一个步骤,但我需要能够获取源作为其中的一部分,我不认为这是可用任务中的一个选项。
      • 我认为这是可行的,因为 Selenium 是一个非常受欢迎的工具,我只是没有找到关于如何在部署管道中实现它的文档案例。再次 - 非常感谢。
      • 也许我遗漏了一些东西,但在发布过程中,您的输入是构建工件,而不是源代码。在构建过程中,您的输入是源代码。
      • 但是我可能误解了您的需求,我更专注于如何从部署管道触发这些测试的问题部分。
      • 嗨 Michele,我不是自动化测试专家,但我知道 c# selenium 构建过程会生成可以运行的 aretefacts。据我所知,这不是基于 java 的测试的情况。所以我可以将测试作为 CI 进程运行,但需要从 CD 管道执行此操作,以便我可以确保在部署 Web 应用程序后测试正在运行。或者,我需要从这个备用 CD 管道触发测试的 CI。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      相关资源
      最近更新 更多