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

标签 java selenium robotframework selenium-grid

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

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

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

首先我启动 hub

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关键字Open Browser中使用

打开浏览器 |网址 |浏览器=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 infra(SauceLabsZaleniumAerokube Selenoid)。
  2. 并行执行器 ( Pabot )

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

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

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

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

关于java - Robot框架如何在两台不同的机器上实现并行测试执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51187203/

相关文章:

java - 如何使用 Selenium ChromeDriver 从 span 类获取文本

python - Raspberry Pi 上的 Chromium-Chromedriver 缺少 libgfx 库

javascript - 我应该从 Protractor 中 Element 的 getText() promise 分配变量还是返回变量

xpath - 将XPath集中在资源文件中,如何从机器人文件传递参数?

java - LeanFT & Java : Run tests in Docker containers

java - 使用 maven 构建后未找到来自 src/main/resources 的资源

java - 在 Activity 类中找不到方法 sendMessage(View)

c# - 测试文件是否已下载 Selenium/C# (Google Chrome)

python - 在机器人框架中记录 HTML 请求

python - 如何在 Robot Framework 中生成 UUID?