我有一个运行的selenium grid2集线器和2个节点(节点a和节点b)。我该如何使用它们?我如何一次在多个节点上运行测试?我觉得我错过了一些明显的东西。
如果尝试过这个:
phpunit tests/phpunit/GUI/
有2个测试用例(RegTest,LoginTest)既执行(按顺序)又只在一个节点上执行。 (节点a)第二个节点没有被触摸过一次。
我错过了什么?
node a (ubuntu) java -jar selenium-server-standalone-2.18.0.jar -role node -hub http://localhost:4444/grid/register node b (xp) java -jar selenium-server-standalone-2.18.0.jar -role node -hub http://localhost:4444/grid/register
两个节点都安装了firefox。我正在使用此电话连接到集线器:
$this->oWebDriver = new WebDriver( self::SELENIUM_SERVER, self::SELENIUM_SERVER_PORT);
$this->oWebDriver->connect('firefox');
这个php webdriver:http://code.google.com/p/php-webdriver-bindings/
答案 0 :(得分:1)
所以我们在2周后。通过一些扩展的阅读和更多的智力,我能够自己解决这个问题。
您可以轻松地使用多个节点,一次启动多个phpunit测试。问题是phpunit测试(3.6)几乎一个接一个地运行。 您可以使用ant(或类似工具)来绕过此问题。正如你在这里看到的: http://jenkins-php.org/
您可以使用<parallel threadCount="2">
启动并行任务,这可能是phpunit测试。仍有可能不是每个测试都适合并行运行(例如,如果你在setUp方法中将数据库加载到数据库中)
除此之外,没有办法(至少我找不到)通过集线器寻址特定节点(可能不是集线器的意义)但您可以使用Capabilities来解决特定平台或浏览器或浏览器版本
如果集线器无法找到任何适合您功能的内容,它将返回错误,否则它将使用适合您描述的功能的浏览器之一
这里的问题是平台是一个ENUM字段,你必须用它来限定值来描述你的noced(LINUX,MAX,VISTA,WINDOWS,XP)没有W7,而且WINDOWS非常贪心。如果你有一个带有XP的2个节点和一个带有WINDOWS的节点,你在你的功能中设置了WINDOWS,那么集线器有可能选择XP(因为它是一个WINDOWS平台)所以要注意这一点。
..我认为这就是我2周前要求的所有( - ;