最近项目上想使用可视化测试的黑盒测试,为此我去再学习了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找不到阅览器时候使用的