0

在发布这个之前,我在这个网站和谷歌上检查了很多,以找出我的问题。我正在测试我的 Web 应用程序,该应用程序主要使用 Symfony2 框架在 PHP 中编码。

我正在使用 Selenium 进行功能测试。目前我想做的就是使用 Selenium Grid 在我的本地机器上并行运行我的功能测试。我所做的是在 Selenium IDE 上记录测试并以 phpunit 格式导出测试用例。我尝试使用 selenium 网格,但我的 phpunit 测试仍在按顺序运行。

我做了什么:

1) java -jar selenium-server-standalone-2.24.1.jar -role hub

2) java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=firefox,maxInstances=2,maxSession=2"

3) 蚂蚁

在我的 build.xml 中有一个 phpunit 目标:

<target name="phpunit" description="Run unit tests">
  <exec executable="phpunit" failonerror="true"/>
</target>

在我的 phpunit.xml 中存在这部分代码:

<testsuites>
    <testsuite name="LoginSuite">
       <file suffix="Test.php">../../src/Tests/FunctionalTests/LoginSuite_testLoginTest.php</file>
    </testsuite>
</testsuites>

我的 LoginSuite_testLoginTest.php 看起来像这样:

<?php

namespace Tests\FunctionalTests;
use Tests\FunctionalTests\SetUpTest;

class LoginSuite_testLoginTest extends SetUpTest
{
  public function testLogin()
  {
    $this->open("/home");
    $this->click("link=Login");
    $this->type("id=username", "test.user@gmail.com");
    $this->type("id=password", "test");
    $this->click("id=_submit");
    $this->waitForPageToLoad("30000");
  }


  public function testLogin2()
  {
    $this->open("/home");
    $this->click("link=Login");
    $this->type("id=username", "test.user2@gmail.com");
    $this->type("id=password", "test");
    $this->click("id=_submit");
    $this->waitForPageToLoad("30000");
  }
}
?>

在第三步,当我启动 ant 命令时,我收到了一个码头错误 500 访问 /selenium-server/driver/ 问题

如果不是这样做:

java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444  /grid/register -browser "browserName=firefox,maxInstances=2,maxSession=2"

我在没有 -browser 信息的情况下执行相同的命令,它启动了我的测试但不是并行的......,太奇怪了。

我看到要并行启动 phpunit 测试,我们必须创建自己的脚本来完成它。那么在这种情况下我是否需要硒网格?我很困扰。谢谢你的帮助。

4

2 回答 2

0

phpunit 命令行有一个并行包装器https://github.com/siivonen/parallel-phpunit所以你不需要写它。您需要在某处运行 Selenium Hub(连接一些节点)。然后您运行指向该位置的测试,集线器会将调用代理到空闲节点。

我们使用 parallel-phpunit 和 Selenium Grid,四个节点连接到一个集线器。我们的 CI 在 3 分钟内运行 30 分钟的 Selenium 测试。

于 2012-11-06T13:39:31.347 回答
0

可能有不同的问题。一种是,在运行预先记录的步骤时,您应该在“浏览器”参数中添加 seleniumProtocol=Selenium,因为默认情况下它将是 webdriver。

于 2015-04-04T07:26:59.293 回答