Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 寻找一个;“无头浏览器”;用于黄瓜测试的PHP等价物_Zend Framework_Selenium_Cucumber_Simpletest_Headless Browser - Fatal编程技术网

Zend framework 寻找一个;“无头浏览器”;用于黄瓜测试的PHP等价物

Zend framework 寻找一个;“无头浏览器”;用于黄瓜测试的PHP等价物,zend-framework,selenium,cucumber,simpletest,headless-browser,Zend Framework,Selenium,Cucumber,Simpletest,Headless Browser,我正在尝试使用Cucumber为我的PHP项目设置一些功能/验收/集成测试。我试图理解实现这些类型测试的最佳方法 我知道Selenium可以测试javascript,但Selenium很慢,我并不总是需要测试javascript。我正在为PHP寻找一个“无头浏览器” 这两种浏览器会被归类为“无头浏览器”吗 SimpleTestWeb测试 Zend_测试PHPUnit_控制器测试用例 为实现Zend Framework项目的集成测试,您做了哪些工作?如果您正在使用Cucumber,您还没有使用

我正在尝试使用Cucumber为我的PHP项目设置一些功能/验收/集成测试。我试图理解实现这些类型测试的最佳方法

我知道Selenium可以测试javascript,但Selenium很慢,我并不总是需要测试javascript。我正在为PHP寻找一个“无头浏览器”

这两种浏览器会被归类为“无头浏览器”吗

  • SimpleTestWeb测试
  • Zend_测试PHPUnit_控制器测试用例

为实现Zend Framework项目的集成测试,您做了哪些工作?

如果您正在使用Cucumber,您还没有使用Ruby吗?为什么不使用敏捷或敏捷

我使用Cucumber with Quickrity测试了Struts 2应用程序和ColdFusion 8应用程序。基本上,您可以使用Celerity和JRuby(包装HtmlUnit)或运行在原生ruby上的Culerity来驱动您的浏览器

我建议您从以下两个项目中选择一个来帮助您开始:

-


-

如果您将Cucumber设置为使用Webrat,则可以。Mechanize本质上是一个无头浏览器。这就是我的env.rb文件的外观:

# RSpec
require 'rspec/expectations'

# Webrat
require 'webrat'

require 'test/unit/assertions'
World(Test::Unit::Assertions)

Webrat.configure do |config|
  config.mode = :mechanize
end

World do
  session = Webrat::Session.new
  session.extend(Webrat::Methods)
  session.extend(Webrat::Matchers)
  session
end
此外,根据,您可以将Cucumber设置为使用Capybara,并将其配置为使用Celerity(支持javascript的无头浏览器)。它还包括关于如何配置Capybara以使用Selenium RC的说明(我认为这是不可能的)。我还没有尝试过这种方法,所以我不知道它的效果如何。

为什么不使用behat()

它应该具有上面列出的所有要求,并且是用php编写的


它有一个Sahidriver来处理“浏览器内”测试,还有一个简单的php浏览器。

更新:看起来Akephalos已经有一段时间没有更新了,所以对于使用更新版本的Capybara来说,它可能不是一个好的解决方案


使用(Webrat的替代品)和(无头浏览器)。水豚是用来与阿克法洛斯互动的

示例
支持/env.rb

# Capybara configuration (using Akephalos)
require 'capybara/cucumber'
require 'akephalos'

Capybara.default_driver = :akephalos
Capybara.app_host = 'http://your.web.app'

Capybara.register_driver :akephalos do |app|
  # available options:
  #   :ie6, :ie7, :ie8, :firefox_3, :firefox_3_6
  Capybara::Driver::Akephalos.new(app, :browser => :firefox_3_6)
end
require 'capybara/cucumber'

Capybara.app_host = "http://your.app.com"
Capybara.default_driver = :selenium
require 'capybara/cucumber'

Capybara.app_host = "http://your.app.com"
Capybara.default_driver = :webkit

首先,您应该使用(Webrat的替代品)。它用于简化和标准化用于与浏览器交互的DSL,并提供一些不错的功能

尽管硒有点慢,但它很容易开始使用,因为它与水豚捆绑在一起。仅供参考:它默认使用Firefox

示例
支持/env.rb

# Capybara configuration (using Akephalos)
require 'capybara/cucumber'
require 'akephalos'

Capybara.default_driver = :akephalos
Capybara.app_host = 'http://your.web.app'

Capybara.register_driver :akephalos do |app|
  # available options:
  #   :ie6, :ie7, :ie8, :firefox_3, :firefox_3_6
  Capybara::Driver::Akephalos.new(app, :browser => :firefox_3_6)
end
require 'capybara/cucumber'

Capybara.app_host = "http://your.app.com"
Capybara.default_driver = :selenium
require 'capybara/cucumber'

Capybara.app_host = "http://your.app.com"
Capybara.default_driver = :webkit
既然您使用的是Capybara,那么就应该使用(真正的无头浏览器,在幕后使用Webkit)。这涉及到一些设置,但是一旦完成了,使用Selenium的速度就会提高

示例
支持/env.rb

# Capybara configuration (using Akephalos)
require 'capybara/cucumber'
require 'akephalos'

Capybara.default_driver = :akephalos
Capybara.app_host = 'http://your.web.app'

Capybara.register_driver :akephalos do |app|
  # available options:
  #   :ie6, :ie7, :ie8, :firefox_3, :firefox_3_6
  Capybara::Driver::Akephalos.new(app, :browser => :firefox_3_6)
end
require 'capybara/cucumber'

Capybara.app_host = "http://your.app.com"
Capybara.default_driver = :selenium
require 'capybara/cucumber'

Capybara.app_host = "http://your.app.com"
Capybara.default_driver = :webkit

请尝试使用Codeception:

更新:

它类似于水豚,但有一个PHP DSL。使用codeception,您可以执行以下操作:

$I = new WebGuy($scenario);
$I->wantTo('create wiki page');
$I->amOnPage('/');
$I->click('Pages');
$I->click('New');
$I->see('New Page');
$I->fillField('title', 'Hobbit');
$I->fillField('body', 'By Peter Jackson');
$I->click('Save');
$I->see('page created'); // notice generated
$I->see('Hobbit','h1'); // head of page of is our title
$I->seeInCurrentUrl('pages/hobbit'); 
$I->seeInDatabase('pages', array('title' => 'Hobbit'));
您可以使用Selenium2进行浏览,或者使用PHPBrowser(headless)在无js场景中获得更好的性能(PHPBrowser不执行javascript)

我正在使用Ruby(Cucumber)测试我的PHP web应用程序。我不太熟悉敏捷或敏捷。你能详细说明一下如何使用它吗?