Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VSTS中部署后触发Java Selenium测试_Java_Selenium_Deployment_Automated Tests_Azure Devops - Fatal编程技术网

如何在VSTS中部署后触发Java Selenium测试

如何在VSTS中部署后触发Java Selenium测试,java,selenium,deployment,automated-tests,azure-devops,Java,Selenium,Deployment,Automated Tests,Azure Devops,我们正在生成用于部署到Azure的Web服务。这包括开发、测试、完整UAT和生产的四个管道阶段。在最初部署到Dev时,我想执行一组Selenium冒烟测试。然后,当部署到UAT时,应触发全套自动测试 我们的测试团队更乐于通过Java路线使用Selenium。几天后,很明显,该过程将生成一个UI代理(对于尚未完成此操作的任何人来说都非常重要,因为ChromeDriver确实在没有会话的情况下运行,但会挂起,使您认为它必须接近运行),分配一个Seleniu_测试代理属性,并将此标志设置为构建依赖项(

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

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

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


有人可以帮忙吗?

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

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

参考文献

有关在VST中构建和部署Java Selenium测试的详细步骤,请参阅文档:


除此之外,你也可以参考博客,了解如何在VSTS中构建和部署Java Web App。

我不是将此作为完整答案发布,但我想回应Michele和Marina的善意意见。我不确定是否有更好的方法来实现这一点,但在他们的帮助下,我至少能够更接近一个答案。我做了公关epare图片,但显然你需要一个声誉来做到这一点

这就是我最终要做的

步骤1–生成MVC web应用程序,并设置适当的部署槽以接收web构建工件

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

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

已配置烟雾测试项

  • 将其配置为仅接收_AutoTest-CI人工制品

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

  • 添加了指定为Selenium测试配置的机器的“Demand”

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


在此阶段,它成功地运行了已配置的测试。Maven部署步骤似乎认为它可以生成测试结果,但输出会发出警告,表示没有生成测试结果。它将生成输出,并报告成功或失败,因此这是半成功。缺少的最后一部分是报告full测试结果,我还没有实现。

感谢Michele的快速响应。我的问题不是生成部署步骤的能力,而是触发构建任务的能力。我可以在部署阶段创建Maven任务作为一个步骤,但我需要能够获取源代码作为其中的一部分,我不认为这是av中的一个选项可用的任务。我认为这是可行的,因为Selenium是一个非常受欢迎的工具,我只是没有找到一个在部署管道中实现它的文档案例。再次感谢。也许我遗漏了一些东西,但在发布过程中,您的输入是构建工件,而不是源代码。在构建过程中,您的输入是源代码。然而,probab很遗憾,我误解了您的需求,我更关注的是如何从部署管道部分触发这些测试的问题。嗨,Michele,我不是一名自动化测试专家,但我知道c#selenium构建过程会生成可运行的事件。据我所知,java bas的情况并非如此ed测试。因此,我可以将测试作为CI进程运行,但需要从CD管道执行此操作,以便我可以确保测试在部署web应用程序后运行。或者,我需要从此备用CD管道触发测试的CI。您“触发生成任务”有什么问题?您希望如何在VSTS发布管道中触发测试,能否解释更多细节以及您如何配置任务?嗨,Marina,问题是测试的同步。我希望将WebApp部署到测试槽,并在部署后触发测试。其想法是对每个构建自动执行冒烟测试。selenium tEST可以使用c#实现这一点,但没有说明如何使用基于java的selenium测试实现这一点。然后您可以参考本博客或文档。嗨,Marina,非常感谢您的回复。我参考了第二篇文章,以使测试在其自己的CI管道中运行,我认为我有一种相当不整洁的方式将其转换为deployment管道。我正在看第一篇文章,看看这是否给了我一个更简洁的解决方案。非常感谢。非常感谢你们试图帮助我解决这个问题。我添加了它作为一个答案。因为它对你有用,你可以点击标记答案√ 答案左边的符号。它也将有利于遇到类似问题的其他成员。