我是使用SeleniumTest在PHPunit中的新手。
http://phpunit.de/manual对我来说并不清楚。有很多选择,我尝试了很多,但不知道如何连接到一起工作。
我有一个测试套件,在测试套件中有4个测试用例。
我想知道下一件事:
这是4个测试用例之一:
<?php
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp()
{
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://blabla.com");
}
public function testMyTestCase()
{
$this->open("/");
$this->type("id=signin_username", "john");
$this->type("id=signin[password]", "1234567");
$this->click("id=tsubmit");
$this->waitForPageToLoad("30000");
$this->open("/shoes");
$this->assertEquals("RE", $this->getText("//div[@id='sf_admin_content']/div/table/tbody/tr[7]/td[2]"));
$this->open("/shoes/7");
$this->assertEquals("Status: Active", $this->getText("//div[@id='sf_fieldset_account']/div[2]"));
$this->open("/logout");
}
}
?>
答案 0 :(得分:0)
Selenium测试需要网站和浏览器的URL。所以你需要在测试用例中编写setUp()。 但是你可以编写扩展PHPUnit_Extensions_SeleniumTestCase的特殊类,将其放入setUp()并扩展其他测试用例。
<?php
class BlablaTestCase extends PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp()
{
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://blabla.com");
}
}
在其他文件中:
<?php
require_once 'BlablaTestCase.php';
class ExampleTestCase extends BlablaTestCase
{
public function testMyTestCase()
{
$this->open("/");
$this->type("id=signin_username", "john");
}
}
但是没有必要为一个站点分配测试。您可以在一个测试用例中编写不同的测试:
<?php
class Example extends PHPUnit_Extensions_SeleniumTestCase
{
protected function setUp()
{
$this->setBrowser("*firefox");
$this->setBrowserUrl("http://blabla.com");
}
public function testMyTestCase()
{
$this->open("/");
$this->type("id=signin_username", "john");
/* ... */
}
public function testMyTestCase2(){
$this->open("/");
$this->type("id=signin_username", "peter");
/* ... */
}
}
?>
tearDown()
是可选的。如果您需要收集一些结果或在测试后清理一些东西,您可以使用它。
您不应该在Selenium测试中连接到您的SQL DB 。所有Selenium测试都在浏览器中运行,与用户进行UI交互。