使用selenium和phpUnit时使用相同的浏览器会话

时间:2013-01-11 15:56:10

标签: selenium phpunit selenium-rc

我有一个用php制作的应用程序,它使用selenium进行单元测试,使用phpUnit。问题是我必须先设置环境才能进行测试。例如。我必须设置会话变量,登录和从远程服务器获取数据。所有这些都需要花费很多时间,并且在每个测试功能中重新设置它是不可行的。

我正在寻找一种方法,以便我可以使用相同的浏览器会话来运行其中的所有测试。我尝试在网上寻找资源,但找不到任何好的资源。我写的代码是

protected function setUp()
{
  parent::setUp();
  $this->setBrowserUrl("http://localhost/devel/");
}

public function start()
{
  parent::start();
  $this->open("");
  //Setting up the environment here
}

public function testFunction()
{
   //A test function
}

public function testFunction2()
{
   //Another test function
}

但这是为这两个功能打开浏览器实例。这有什么工作吗?或者为此启动selenium服务器时是否有任何命令行参数?

2 个答案:

答案 0 :(得分:0)

“[我]使用selenium进行单元测试,使用phpUnit”

不,你不是。您正在使用PHPUnit和selenium进行功能测试。 : - )

但是,由于重新发明那个轮子可能不符合你的最佳利益,你想要Mink:http://mink.behat.org/

它包含了Guzzle,允许您使用一堆不同的驱动程序进行基于会话的验收测试。它有一个无头浏览器的Goutte,可以与Selenium和Sahi以及其他一些人合作。

另外值得注意的是,根据您的需要,Behat:http://behat.org/

它允许您编写客户端可读的测试文档,这些文档可以转换为基于Mink的验收测试。

HTH。

答案 1 :(得分:0)

问题已经回答了。 不可接受的答案为我做了这份工作。

@see How do I run a PHPUnit Selenium test without having a new browser window run for each function?