任何人如何 运行 访问 Selenium 测试脚本而不必 install/run 在本地?

How can anyone run access Selenium test scripts without having to install/run it locally?

我正在寻找方法在我的工作中为 Selenium 设置一个类似 'hub' 的中心,允许任何人在公司内部访问。例如,测试人员 A 编写测试脚本,人员 B 可以 运行 而无需手动将测试脚本复制到他们的本地工作站)

到目前为止,我只考虑在 VM 中安装 Selenium,然后它会正常执行。但是如果我 运行 Selenium Grid,它将 运行 虚拟机内的虚拟机(?)。我对 VM 的唯一担心是它 运行 缓慢。

如果有人能想到更好的解决方案或建议,请给我一些建议。提前谢谢你。

一个想法。您可以创建一个结合 Jenkins/Selenium/Amazon.

的基础架构

以下是我从另一个post得到的解决方案。

你可以用网格来做。

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

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

接下来,创建 Jenkins 服务器。您可以将 Selenium Hub 用作 Jenkins 主站或从站。

最后一步是在 Jenkins-Selenium 机器中将作业配置为 运行。这项工作需要 linked 到您的代码存储库(git,mercurial ...)使用 jenkins 的参数化构建插件,您可以告诉该工作提取您想要的修订(每个开发人员都可以使用新更改和新测试拉出修订版)和 运行 该构建中的 Selenium 测试使用当前 breanch/revision 并针对一个独特的硒。您可以使用 ANT 或 Maven 运行 Jenkins 中的 Selenium 测试。

可能理解起来比较复杂,因为这里有很多概念,但它很健壮,而且工作得很好!

如有疑问,请告诉我!

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

Selenium 为 Selenium Hub 和 Node 提供预配置的 docker 图像(参考 here for more information ). For making use of docker selenium all you need to do is find a machine (preferably unix machine), install docker on it by following instructions detailed here 然后通过启动这些容器来启动 hub 和节点。在 [=24 的情况下=] 您可以从字面上将 VM(或)物理机转换为 VM 场,但不必担心速度慢等问题,因为我相信 docker 针对这些进行了优化并且 运行 是您的VM 作为进程。

使用 Amazon 云来 运行 连接您的 selenium 节点没问题,但是如果您的公司策略阻止来自 Internet 的传入流量进入您的 Intranet 区域,那么我不确定如何far 亚马逊云会有用。

另请记住,Jenkins 不是绝对必需的,但参与设置会更好,因为它可以让任何人 运行 从网络 UI 进行测试。然而,这将要求您的所有测试都已签入并在您组织的中央版本控制系统中可用。

PS : 之所以将 Internet Explorer 称为例外是因为 IE 运行 仅在 windows 上并且没有 docker 图像(尚未)对于 windows。所有 docker 图像都是基于 UNIX 的图像。