最近项目上想使用可视化测试的黑盒测试,为此我去再学习了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
      #:transaction
rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
Capybara.javascript_driver = :selenium #设置javascript服务
Capybara.register_driver :rack_test do |app|
  Capybara::Selenium::Driver.new(app,:browser => :chrome)#设置阅览器默认使用firefox
end
ActionController::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找不到阅览器时候使用的