我正在为我的自动化套件使用Selenium Hub和Node设置。到目前为止,我正在使用以下命令在远程机器上手动启动集线器和节点。
我想删除此手动过程。可以用java代码启动和停止集线器并注册节点吗?
您可以使用docker在远程机器上运行Selenium网格
根据您当前的配置,它将简单如下(注意:示例使用的是Selenium Grid v4,它也适用于Selenium 3项目,但如果您愿意,也可以替换Selenium Grid v3,如果这是您的首选):
version: "3"
services:
selenium-hub:
image: selenium/hub:4.0.0
container_name: selenium-hub
ports:
- "4442:4442"
- "4443:4443"
- "4444:4444"
chrome:
image: selenium/node-chrome:latest
container_name: chrome
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443
假设您只需调用上面的文件docker compose。yml,将其放在您选择的目录中。
建议以分离模式启动网格,使其在后台运行。从文件所在的目录中,执行以下命令:docker-compose up-d(您也可以在远程计算机的根目录下运行此命令,使用-f标志来声明docker-compose文件的位置:
docker-compose-f/path/to/directory/docker-compose.yml up-d)
当不再需要Selenium Grid时,执行以下命令:
docker-compose down
(您也可以使用-f标志在远程计算机的根目录下运行它来声明docker compose文件的位置:docker-compose-f /path/to/directory/docker-compose.ymldown
)
根据您运行自动化测试套件的方式,您可以启动并运行网格
使用上面提到的命令手动
- 计划作业(Windows计划服务,Linuxcrontab作业)
- 作为Jenkins舞台的一部分运行它
选项是开放的。
还有一点建议,硒。开发人员经常使用最新的安全补丁更新他们的图像(大约每2周一次)。为了确保您拥有已修复漏洞的最新版本的图像,您可以在网格未启动时使用以下命令:
docker compose pull。
继续使用现有配置到当前设置以执行测试。
要通过浏览器访问Selenium Grid v4控制台视图,请转到:http://
对请使用docker,安装非常简单。
步骤:
这将在内部创建集线器和节点并将节点附加到集线器。您可以通过此“http://localhost:4444/wd/hub”简单地开始使用节点
我在试着运行硒网格, 详细信息:win 7,selenium 2.4.5,selenium-server-独立-2.46.0,java 8,我得到一个错误: 无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。生成信息:版本:'2.45。0',修订版:'5017cb8e7ca8e37638dc3091b2440b90a1d8686f',时间:'2015-02-27 09:10:26'系
问题内容: 为了进行测试,我在不同端口上本地运行网格和节点。 因此,网格在4444上运行,而节点在5556上运行。 在我的测试中,如果我以 然后测试失败,但出现异常 如果我在节点端口5555而不是集线器端口4444上运行测试,则测试通过,如下所示 我认为,我们应该在集线器端口上运行测试,在本例中为4444,而不是5555。 如果我错了,请纠正我。 问题答案: 如果你打算使用 在 通过配置 和 配置
问题: 我想在AWS上运行Selenium Grid,并希望使用他们的动态扩展。缩小规模,它只会终止一个实例...这意味着一个节点可以就这样消失。不是我想要的行为,但使用脚本或生命周期挂钩,我可以尝试确保节点上的任何会话在终止之前都不是活动的。 似乎我可以点击这个API来断开节点与集线器的连接:http://NODE-IP:5555/selenium-服务器/驱动程序/?cmd=关闭Seleniu
我们尝试将selenium节点从一台机器迁移到多台机器,并将其中一半迁移到云。 目前,硒网格的结构如下所示: 该中心位于AWS EC2上 office中的Mac迷你节点 office中的Windows节点 AWS EC2上的2个Linux节点 当我尝试将节点连接到集线器时,节点不会显示在集线器中,并且节点无限向集线器发送注册事件。 集线器4444、4443和4442端口可以直接连接事件和集线器。
问题内容: 为了进行测试,我在不同端口上本地运行网格和节点。 因此,网格在4444上运行,而节点在5556上运行。 在我的测试中,如果我以 然后测试失败,但出现异常 如果我在节点端口5555而不是集线器端口4444上运行测试,则测试通过,如下所示 我认为,我们应该在集线器端口上运行测试,在本例中为4444,而不是5555。 如果我错了,请纠正我。 问题答案: 如果你打算使用 在 通过配置 和 配置
我试图搜索stackoverflow以找到这个问题的答案,但没有找到正确的答案。所以发布这个。请让我知道如何解决这个问题。 我正试图建立一个以本地机器为中心的selenium网格。我创建了一个microsoft azure VM,并尝试将其用作节点。 我在hub(我的本地机器)上执行了以下命令,它开始在端口4444上列出。 我在VM(节点)上执行了以下命令,但它没有在集线器中注册。 我已经打开了虚