使用webdriver进行分布式测试

时间:2014-03-03 23:21:31

标签: selenium selenium-grid

我已经读过,使用网格,我们可以跨多个节点分发测试。

假设我有4个测试用例和2个节点(两个都有相同的配置,平台:窗口,浏览器:firefox和maxSession = 1,maxInstances:1)我希望在节点1上运行2个测试用例,在节点2上运行2个

但是当我运行时,我会看到所有4个测试用例都在节点1或节点2上运行,具体取决于谁最后注册。我已经注册了不同端口的bug。

我的理解是否正确,每个节点运行2次测试,或者这是不可能的。?

如何实现WebDriver的分布式测试?

1 个答案:

答案 0 :(得分:4)

我认为你的意思是并行执行(这是分布式测试)? Selenium网格将提供以分布式方式运行这些测试的体系结构(即,将测试执行分布在多个节点上),但您仍需要并行触发这些测试。

目前,您的测试是按顺序触发的,因此Selenium Grid Hub利用它获得的第一个可用节点,这恰好是每次第一个节点(出于显而易见的原因)。

要快速查看硒网格如何通过并行执行获益,请打开4个命令提示/终端,并在每个触发器中执行4个测试中的1个。如果您只有2个节点,并且每个节点只能运行一个浏览器,您将看到

  • 节点A - 测试1
  • 节点B - 测试2
  • 等待免费/可用节点{测试3和测试4}

然后,根据哪个测试(1或2)完成首先执行该节点,并且测试3将在该节点上启动。

当然,您需要以编程方式并行触发这些测试。


在python中你可以使用nose并触发你的测试运行: -

nosetests --processes=2 allmytests #Starts 2 processes