如何实现Robot框架在两台不同机器上并行测试执行?

Posted

技术标签:

【中文标题】如何实现Robot框架在两台不同机器上并行测试执行?【英文标题】:How to achieve Robot framework Parallel test execution on two different machines? 【发布时间】:2018-12-13 16:39:03 【问题描述】:

我正在使用带有 selenium2library 的 RobotFramework 自动化 Web 应用程序。

我正在寻找同时在两台不同的机器上对两个不同的测试套件进行并行测试。

我尝试使用 pabot 进行并行执行。如果我在一台机器上并行运行 3 个实例,它正在运行。但我想在不同的机器上运行它,为此我尝试了以下代码:-

首先我启动集线器

java -jar <selenium.jar> -role hub 

(可选端口 f.e.:-port 4444)

然后我运行节点:

java -jar <selenium.jar> -role webDriver (for selenium 2 library) -hub http://<selenium hub ip>:4444/grid/register 

(可选参数remoteHost f.e.:-remoteHost http://127.0.0.1:5555) 节点可以单独运行,并由附加参数 -remoteHost 指定。这个host可以用selenium关键字打开浏览器

打开浏览器 |网址 |浏览器=ff |别名=无 | remote_url=假 示例:

$REMOTE_DRIVER=    Set Variable    127.0.0.1:5555/wd/hub   
Open Browser    www.google.com    ff    None    $REMOTE_DRIVER

但是在这之后,套装在不同的机器上一个接一个地运行,而不是并行运行。

有什么方法可以实现。

【问题讨论】:

【参考方案1】:

要并行运行套件,需要两个组件:

    Selenium Grid 或其他集中式 Grid 基础设施(SauceLabs、Zalenium、Aerokube Selenoid)。 并行执行器 (Pabot)

Natively Robot Framework 仅支持一次运行 1 个套件。通过扩展,这意味着任何使用 Selenium 的机器人脚本一次只能运行 1 个套件。为了实现并行化,您需要并行运行多个 Robot Framework 实例。

Pabot 项目是一个单独的应用程序,每个套件(文件)运行一个单独的机器人框架实例。最后,它将所有单独的日志合并到一个日志文件中。它还有一些功能,但这是核心。

根据您的描述,我认为设置一个网格,其中多个节点已成功加入。如果是这种情况,那么使用网格服务器 URL 连接到您的浏览器应该足以使用节点。

请确保并行 Pabot 进程的数量(它是一个参数)不超过可用 Selenium 节点的数量。

【讨论】:

谢谢,是的,我可以将多个节点机器连接到集线器,但是 pabot 的确切命令是什么,它将并行运行多个套件。我尝试了 pabot 文档中给出的命令,但它似乎不起作用。请您提供 copmmand

以上是关于如何实现Robot框架在两台不同机器上并行测试执行?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Robot 框架实现 Selenium 网格

如何使用 git 作为云存储在两台不同的机器上工作?

如何通过socket编程在两台机器之间发送文件?

如何进行两台计算机并行计算

如何在机器人框架中并行运行多个测试套件上的多个测试用例 | Python

怎么使用三层交换机使两台机器实现不同VLAN间的通信