当前位置: 首页 > 知识库问答 >
问题:

使用机器人框架实现Selenium网格

澹台俊达
2023-03-14

我想用机器人框架实现selenium网格。我已经配置了selenium网格集线器和两个节点,但是我不知道如何在此设置后触发并行测试用例执行,在哪里使用python语言和selenium 2库关键字更新机器人框架中的线程数和并行测试执行设置?此外,在哪里分配集线器url来触发执行?请建议可能的解决方案。注意:我们在脚本中使用selenium 2库关键字,而不是web驱动程序关键字,因此我无法使用“webdriver.remote”关键字来创建集线器实例。谢谢!

我的框架有:目录-

共有1个答案

谭光辉
2023-03-14

我不知道如何触发并行测试用例执行

Robot对并行运行测试没有任何内置支持,除了您可以同时运行Robot两次之外。如果您想在两个不同的浏览器上运行相同的测试,则必须运行robot两次,每次测试运行都有一组不同的参数(即:浏览器规范)。

您可能可以使用pabot,尽管它的设计目的是将一个测试分成两个或多个部分,而不是两次运行一个测试。你也许可以根据自己的需要进行调整。

还有许多其他解决方案。例如,如果您使用的是CI服务器,则可以设置两个要运行的作业,并创建第三个作业,当这两个作业完成时会触发该作业,这将获取两个作业的输出,并将它们合并到单个报告中。

如果您在一个带有bash shell的系统上,另一种解决方案是编写自己的测试启动器,其外观如下所示(尽管这是完全未经测试的):

# run two robot jobs in the background
robot -A firefox.args /path/to/tests.robot &
robot -A chrome.args /path/to/tests.robot &

# wait for the jobs to finish, then generate a consolidated report
wait
rebot --output ./output.xml firefox/output.xml chrome/.output.xml

在上面的示例中。args文件是标准的robot框架参数文件。您可以在其中指定命令行参数,如selenium网格URL、输出文件的唯一文件夹路径等。

例如:

# firefox.args
--variable GRID_URL: http://127.0.0.1/wd/hub
--variable CAPABILITIES:browserName:ff,version:45,platform:WINDOWS
--outputdir firefox_results

此外,在何处分配中心url以触发执行?

当您使用open browser关键字打开浏览器时,可以执行此操作。具体来说,使用参数。例如,测试用例可能如下所示,其中在参数文件中定义${GRID\u URL}${CAPABILITIES}

*** Settings ***

| Library | Selenium2Library

*** Test cases ***
| Example of connecting to selenium grid
| | [Setup] | Open Browser
| | ... | http://example.com
| | ... | remote_url=${GRID_URL}
| | ... | desired_capabilities=${CAPABILITIES}

因此,我正在寻找通过并行运行测试用例来减少总执行时间的解决方案。

您有两个选择:

  1. 使用pabot将一个大型套件自动拆分为多个并行测试运行
  2. 为测试套件的不同部分手动创建多个作业(例如:pybot测试/suite1;pybot测试/suite2;pybot测试/suite3等)
 类似资料:
  • 我有一个聊天机器人解决方案创建使用。Net Framework,该框架与Facebook messenger集成,使用Microsoft提供的以下说明: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-facebook?view=azure-bot-service-4.0 现在他们添加了一

  • 你好,我是一个新的初级测试软件,我被要求学习X射线和机器人框架,以及如何实现两者。 在我开始学习机器人框架之后,我用X射线做了一些测试用例,直到一切都很好。 现在我一直在尝试实施我在机器人上做的测试案例的结果到X射线中的测试执行,但每次我尝试将output.xml从机器人导入X射线而不是“同步”这个测试X射线创造了我新的测试关心机器人的结果。 有没有人以前做过这件事可以帮我?我曾尝试在robot中

  • 有人提到要工作吗?我已经设置了网格https://github.com/sterodium/selenium-grid-extensions网格设置本身似乎没问题,但当我实际运行使用sikulilibrary关键字的测试时,我得到了以下错误;Java语言lang.NoClassDefFoundError:无法初始化类组织。西库利。剧本Finder$Finder2。 我的网格设置: 机器人框架3.1

  • 我正在尝试设置一个容器,以便在Chrome上使用RobotFramework进行测试。 但是当我运行容器时,我总是得到一个WebDriverException。我已经找过了,但找不到任何对我有效的修复方法。 这是我的Dockerfile

  • 本文向大家介绍使用Python的Tornado框架实现一个简单的WebQQ机器人,包括了使用Python的Tornado框架实现一个简单的WebQQ机器人的使用技巧和注意事项,需要的朋友参考一下 我打算将WebQQ单独出来运行, 一开始直接拷贝了pyxmpp2的mainloop, 但是跑起来问题多多, 所以我又研究了利用Tornado进行网络编程(这里), 所以我放弃了Pyxmpp2的mainlo

  • 我是Robot框架的新手,致力于使用带有Selenium和java关键字的Robot框架。我知道RF是基于python的,但是,该项目要求使用java关键字。 我的想法是创建java函数和文本文件,然后使用: