0

我正在寻找在我的工作中像Selenium的中央“枢纽”一样设置的方法,允许任何人在公司内部进行访问。例如,测试人员A编写测试脚本,人员B可以运行而无需将测试脚本手动复制到他们的本地工作站)任何人都可以运行访问Selenium测试脚本而无需在本地安装/运行它?

到目前为止,我只想过在将要执行的VM中安装Selenium按照正常情况。但是如果我运行Selenium Grid,它将在VM(?)内运行虚拟机。我唯一关心的是虚拟机运行缓慢。

如果任何人都可以想出更好的解决方案或建议,请给我一些建议。先谢谢你。

回答

0

一个想法。您可以创建一个结合Jenkins/Selenium/Amazon的基础设施。

以下是我从另一篇文章的解决方案。

你可以用网格来做到这一点。

首先,您需要创建一个带有EC2 ubuntu 14.04 AMI而无需UI的Selenium hub,并将其作为jenkins slave连接到您的Jenkins master。或者直接成为主人。你想要什么。只有命令行。单独下载Selenium Server。 (小心下载版本,如果你下载Selenium3Beta,事情可能会改变)。在这里你可以配置HUB。您还可以将Selenium Hub作为服务添加并配置为在服务器启动时自动运行。打开Selenium默认端口(或您配置的端口)以便节点可以连接到它是很重要的。您可以在创建实例时在Amazon EC2控制台上执行此操作。您只需要在您想要的IP所需的端口中为TCP添加一个带有入站规则的安全组。

然后,您可以创建一个Windows Server 2012实例服务器(例如,这就是我所做的),并执行相同的过程。下载Selenium和chromedriver的相同版本(在Selenium3之前,不需要下载Selenium版本的任何firefoxdriver)。生成一个txt文件并准备Selenium命令作为NODE连接到HUB。并将其转换为* .bat以执行它。如果您想在开始时运行bat,则可以使用任务计划程序创建服务或使用NSSM(https://nssm.cc/)。不要忘记将规则添加到这台机器的安全组中!

接下来,创建Jenkins服务器。您可以使用Selenium Hub作为Jenkins主或作为奴隶。

最后一步是配置一个工作在Jenkins-Selenium机器上运行。这项工作需要链接到你的代码仓库(git,mercurial ...)使用jenkins的参数化构建插件,你可以告诉那个工作来取得你想要的修订版本(每个开发者都可以通过新的修改和新的测试),并运行该版本中的Selenium测试,使用当前的breanch/revision和一个独特的硒。您可以使用ANT或Maven在Jenkins中运行Selenium测试。

可能会很难理解,因为这里有太多的概念,但它很健壮,它工作正常!

如果你有疑问,告诉我!

0

如果Internet Explorer不是您必须运行自动化测试的浏览器之一,那么我会建议您考虑docker selenium。

Selenium为Selenium Hub和Node提供预先配置的码头图像(有关更多信息,请参阅here)。为了使用码头硒,您只需找到一台机器(最好是unix机器),按照说明详细说明here在其上安装码头机,然后通过启动集装箱来启动集线器和节点。在docker的情况下,您可以将VM(或)物理机器转换为VM场,但不必担心缓慢等问题,因为我相信docker已针对这些进行了优化,并将VM作为进程运行。

诉诸亚马逊云运行您的硒节点是没有问题的,但如果您的公司政策阻止来自互联网的流量进入您的Intranet区域,那么我不确定亚马逊云会有多大用处。

另外请记住,詹金斯不是绝对必需的东西,但它更适合在安装过程中参与,因为它可以让任何人从Web UI运行测试。然而,这将要求您的所有测试都已签入并在组织中的中央版本控制系统中提供。

PS:之所以将IE浏览器称为例外是因为IE只能在Windows上运行,并且没有用于Windows的docker映像(还)。所有的docker镜像都是基于UNIX的镜像。

相关问题