我正在寻找方法来建立一个中心的枢纽'对于我工作中的Selenium,允许任何人访问公司内部。例如,Tester A编写测试脚本,Person B可以运行而无需手动将测试脚本复制到本地工作站。
到目前为止,我只考虑在VM中安装Selenium,然后按照正常情况执行。但如果我运行Selenium Grid,它将在VM(?)内运行VM。我对VM的唯一关注是它运行缓慢。
如果有人能想到更好的解决方案或建议,请给我一些建议。提前谢谢。
答案 0 :(得分:0)
一个想法。您可以创建一个组合Jenkins / Selenium / Amazon的基础架构。
以下是我在另一篇文章中的解决方案。
您可以使用网格来完成。
首先,你需要创建一个没有UI的EC2 ubuntu 14.04 AMI的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命令以作为节点链接到HUB。并将其转换为* .bat以执行它。如果要在启动时运行bat,可以使用任务计划程序创建服务或使用NSSM(https://nssm.cc/)。别忘了将规则添加到这台机器的安全组中!
接下来,创建Jenkins服务器。您可以将Selenium Hub用作Jenkins主服务器或作为从服务器。
最后一步是配置要在Jenkins-Selenium机器上运行的作业。这个工作需要链接到你的代码库(git,mercurial ...)使用jenkins的参数化构建插件,你可以告诉那个工作来提取你想要的修订版(每个开发人员都可以使用新的更改和新的修改测试)并使用当前的breanch /版本和一个独特的硒运行该构建中的Selenium测试。您可以使用ANT或Maven在Jenkins中运行Selenium测试。
理解起来可能很复杂,因为这里有很多概念,但它很健壮且工作正常!
如果您有疑问,请告诉我!
答案 1 :(得分:0)
如果Internet Explorer不是您必须运行自动化测试的浏览器之一,我建议您考虑使用docker selenium。
Selenium为Selenium Hub和Node提供预先配置的docker镜像(有关详细信息,请参阅here)。为了使用docker selenium,您需要做的就是找到一台机器(最好是unix机器),按照详细的here说明在其上安装docker,然后通过启动这些容器启动集线器和节点。对于docker,您可以将VM(或)物理机转换为VM场,但不必担心缓慢等问题,因为我相信docker已针对这些进行了优化,并且它将VM作为一个进程运行。 / p>
使用亚马逊云来运行您的selenium节点都很好,但如果您的公司策略阻止来自互联网的流量进入您的内部网区域,那么我不确定亚马逊云的用处有多远。
还要记住Jenkins不是绝对必需的东西,但参与设置更有利,因为它可以让任何人从Web UI运行测试。但是,这将要求您的所有测试都已签入并在组织的中央版本控制系统中提供。
PS:之所以将Internet Explorer称为异常,是因为IE仅在Windows上运行,而且还没有用于Windows的docker镜像。所有的docker镜像都是基于UNIX的图像。