我使用phpunit作为selenium的包装器。我有一个模拟同一网站上的两个用户的测试。所以我需要打开两个不能共享cookie的浏览器 - 它不能只是两个窗口。它们是相同的测试,因此例如用户将在第一个浏览器实例中单击某个内容而另一个用户将在另一个浏览器实例中查找更改。注销并重新登录,因为其他用户不是一个选项。
有办法做到这一点吗?
答案 0 :(得分:1)
免责声明:我根本没有尝试过,但模式可能有用。
不幸的是,PHPUnit WebDriver实现与单元测试框架代码紧密耦合。但是,您可以尝试这样的操作,以便并行运行2个不同的Web驱动程序实例:
<?php
class WebTest extends PHPUnit_Extensions_Selenium2TestCase
{
private $driver1;
private $driver2;
protected function setUp()
{
$this->driver1 = $this->createDriver();
$this->driver2 = $this->createDriver();
}
protected function createDriver()
{
$driver = new PHPUnit_Extensions_Selenium2TestCase();
$driver->setBrowser('firefox');
$driver->setBrowserUrl('http://www.example.com/');
$driver->start();
return $driver;
}
public function testTitle()
{
$this->driver1->url('http://www.example.com/');
$this->driver1->assertEquals('Example WWW Page', $this->title());
$this->driver2->url('http://www.example.com/');
$this->driver2->assertEquals('Example WWW Page', $this->title());
}
protected function tearDown() {
$this->driver1->stop();
$this->driver2->stop();
}
}
?>
Theres很多可能会出错,但你可以尝试一下。
另外,您可以放弃针对此特定测试/测试的PHPUnit集成,并使用专用的PHP WebDriver API(如PHP-SeleniumClient),这样可以更好地控制WebDriver实例。