在发布这个之前,我在这个网站和谷歌上检查了很多,以找出我的问题。我正在测试我的 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 测试,我们必须创建自己的脚本来完成它。那么在这种情况下我是否需要硒网格?我很困扰。谢谢你的帮助。