【问题标题】:Use same browser session while using selenium with phpUnit将 selenium 与 phpUnit 一起使用时使用相同的浏览器会话
【发布时间】:2012-12-26 06:02:00
【问题描述】:

我有一个用 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 服务器时是否有任何命令行参数?

【问题讨论】:

  • 为什么需要在同一个窗口中运行所有测试?测试的重点是您测试 Web 应用程序的一个独立部分,对吗?

标签: selenium phpunit selenium-rc


【解决方案1】:

"[I am] 使用 selenium 使用 phpUnit 进行单元测试"

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

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

它包含 Guzzle,让您可以使用一堆不同的驱动程序进行基于会话的验收测试。它具有用于无头浏览器的 Goutte,并且可以与 Selenium 和 Sahi 以及其他一些浏览器一起使用。

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

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

HTH。

【讨论】:

    【解决方案2】:

    问题已经回答。 未接受的答案为我完成了工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 2013-08-17
      • 2016-08-02
      • 2011-08-21
      • 1970-01-01
      • 2020-11-20
      • 2019-06-28
      相关资源
      最近更新 更多