Zend framework 寻找一个;“无头浏览器”;用于黄瓜测试的PHP等价物
我正在尝试使用Cucumber为我的PHP项目设置一些功能/验收/集成测试。我试图理解实现这些类型测试的最佳方法 我知道Selenium可以测试javascript,但Selenium很慢,我并不总是需要测试javascript。我正在为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,您还没有使用
- 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应用程序。我不太熟悉敏捷或敏捷。你能详细说明一下如何使用它吗?