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

时间:2018-07-05 08:58:29

标签: java selenium robotframework selenium-grid

我正在使用带有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指定。该主机可以在硒关键字“打开浏览器”中使用

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

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

但是在这套西装在另一台机器上依次而不是并行运行之后。

有没有办法实现它。

1 个答案:

答案 0 :(得分:1)

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

  1. 硒网格或其他集中式网格基础设施(SauceLabsZaleniumAerokube类硒素)。
  2. 平行执行器(Pabot

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

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

根据您的描述,我认为要建立一个网格,其中多个节点已成功加入。如果是这种情况,那么使用Grid服务器URL连接到您的浏览器就足够利用节点了。

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