如何实现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框架在两台不同机器上并行测试执行?的主要内容,如果未能解决你的问题,请参考以下文章