同一台机器上有多个Selenium实例?

时间:2016-01-21 02:34:43

标签: python firefox selenium

如果测试用于:

,并行运行多个selenium实例的最佳方法是什么?
  1. 相同的浏览器类型
  2. 同一台机器
  3. 我已经读过这个:https://code.google.com/p/selenium/wiki/ScalingWebDriver并且似​​乎存在关于在同一台机器上运行多个Selenium实例的系统性问题。但是我想问一下社区是否有一种我没有看到的方式。

    我有一个工作的selenium实例运行e2e测试。但是,我现在想使用相同的浏览器类型并行运行其中5个selenium实例。

    我已经查看了Selenium Grid 2,我不确定它是否适合我的用例。似乎Selenium Grid 2的主要观点是能够根据浏览器版本/操作系统分发测试。但就我而言,每个测试都是针对相同类型,相同的浏览器版本。

    运行独立测试非常有效!

    运行多个Firefox进程:

    但是当我尝试通过生成多个Firefox进程进行扩展时,我得到的错误主要涉及HTTP和requests错误,包括BadClientStatusError以及Exception: Request cannot be sent:< / p>

    webdriver.Firefox()

    使用网格

    我已经挖掘了webdriver.Firefox()代码,它看起来像在幕后,它在本地连接:

    class WebDriver(RemoteWebDriver): def __init__(self, firefox_profile=None, firefox_binary=None, timeout=30, capabilities=None, proxy=None): ... RemoteWebDriver.__init__(self, command_executor=ExtensionConnection("127.0.0.1", self.profile, self.binary, timeout))

    RemoteWebDriver实例似乎只是在找到的空闲端口上连接到localhost。这似乎是Grid在注册节点时使用的相同命令:

    java -jar selenium-server-standalone-2.44.0.jar -role node -hub http://localhost:4444/grid/register

    Grid是否与在相同的计算机上运行并行Selenium实例有任何关联?或者它主要是在各种不同机器上运行的实例的负载均衡器?

    是否可以在相同的机器上并行运行可靠的,非片状的Selenium实例?我并行运行时会出现HTTP flakiness(无法发送大量请求或Bad Status Error或浏览器关闭之前可以从socket读取信息)

    Selenium Grid 2的重点是什么?它是否只是作为多台机器上并行测试运行的负载平衡器?如果我在本地运行网格与同一台机器上的集线器和节点(全部用于FF),它是否与我运行多个webdriver.Firefox()进程实际上相同?

    或者幕后有更多的魔力吗?

0 个答案:

没有答案