最近项目上想使用可视化测试的黑盒测试,为此我去再学习了ruby界中的出名的cucumber测试框架,以前只是大约摸了一下,并没有深究,这次要求是测试中要可视化每个特征功能(Feature)按我所设定的情景(Scenario)跑一次,而现在我主要实现了web自动化测试,(GUI的还在研究这个框架的可行性),
首先介绍下我使用的GEM如下所示
group :development, :test do gem "selenium-webdriver" gem "database_cleaner" gem "rspec-rails" gem "rspec", '~>2.11.0' gem "cucumber-rails" gem "webrat" gem "rspec-mocks" gem "spork", '~> 1.0rc' gem "factory_girl", '~>2.6.4' gem "factory_girl_rails", '~>1.7.0' gem "capybara" ,"2.1.0" gem "poltergeist","1.3.0"end
项目环境配置
genertor cucumber install --capybara --spork
在生成的env.rb中这样配置
require 'rubygems'require 'cucumber/rails'require 'capybara/rails'require 'capybara/cucumber'require 'capybara/dsl'require 'capybara/session'require 'cucumber/rspec/doubles'require 'database_cleaner/cucumber'require 'selenium-webdriver'require 'database_cleaner'require 'database_cleaner/cucumber'begin DatabaseCleaner.strategy = nil #:transactionrescue NameError raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."endCapybara.javascript_driver = :selenium #设置javascript服务Capybara.register_driver :rack_test do |app| Capybara::Selenium::Driver.new(app,:browser => :chrome)#设置阅览器默认使用firefoxendActionController::Base.allow_rescue = false
下面是一些语法介绍主要是capybara页面操作
首先介绍一个技巧在ruby中可以这样打印类所有的方法
puts capybara.methods
像上面就会打印所有capybara的方法
下面就是capybara的一些语法
page.current_url #获取当前的url
还有关于windows下关于找不到firefox阅览器设置方法
Selenium::WebDriver::Firefox::Binary.path='C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
这是当selenium找不到阅览器时候使用的