使用ruby+watir webdriver+cucumber和并行_测试在多个浏览器中运行测试

使用ruby+watir webdriver+cucumber和并行_测试在多个浏览器中运行测试,ruby,cucumber,Ruby,Cucumber,目前,我使用cucumber.yml中的parallel profile加载特定于环境的文件,并使用hooks.rb设置浏览器。我使用“并行功能”运行测试。my hooks.rb文件中没有太多内容: Before do @browser = Watir::Browser.new :firefox end After do @browser.close end 配置文件如下所示: parallel: FIG_NEWTON_FILE=local.yml --no-source --co

目前,我使用cucumber.yml中的parallel profile加载特定于环境的文件,并使用hooks.rb设置浏览器。我使用“并行功能”运行测试。my hooks.rb文件中没有太多内容:

Before do
  @browser = Watir::Browser.new :firefox
end

After do 
  @browser.close
end
配置文件如下所示:

parallel: FIG_NEWTON_FILE=local.yml --no-source --color --format pretty

有没有办法更改我的hooks.rb文件,使所有功能都可以在一组浏览器firefox、chrome、safari上运行?是否可以通过命令行传递文件名或环境?

您完全可以通过命令行传递环境名。查看我的env.rb文件:

case ENV['BROWSER']
  when 'ff', 'Firefox'
    browser = Selenium::WebDriver.for :firefox
    browser_name = 'Firefox'
  when 'chrome'
    browser = Selenium::WebDriver.for :chrome
    browser_name = 'Chrome'
  when 'debug'
    debug_profile = Selenium::WebDriver::Firefox::Profile.new
    debug_profile.add_extension "firebug-1.9.1-fx.xpi"
    browser = Selenium::WebDriver.for :firefox, :profile => debug_profile
    browser_name = 'Firefox (Firebug)'
  when 'mobile'
    mobile_profile = Selenium::WebDriver::Firefox::Profile.new
    mobile_profile['general.useragent.override'] = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)
      AppleWebKit/420+ (KHTML, like Gecko) Version/3.0
      Mobile/1A535b Safari/419.3"
    browser = Selenium::WebDriver.for :firefox, :profile => mobile_profile
    browser_name = 'Mobile'
  when 'headless'
    headless_profile = Headless.new
    headless_profile.start
    browser = Selenium::WebDriver.for :firefox
    browser_name = 'Firefox'
  else
   browser = Selenium::WebDriver.for :firefox
   browser_name = 'Firefox'
end

if URLS[ENV['URL']].nil?
  environment = 'dev'
  url = 'http://' + URLS['dev']
  domain = URLS['dev']
else
  environment = ENV['URL'].upcase
  url = 'http://' + URLS[ENV['URL']]
  domain = URLS[ENV['URL']]
end

if ENV['CLIENT'].nil?
  client = 'user/password'
else
  client = ENV['CLIENT']
end

puts "Browser      " + browser_name
puts "URL          " + url
puts "Environment: " + environment
puts "Client:      " + client
puts "Domain:      " + domain

test_env = {   :browser => browser,
               :browser_name => browser_name,
               :url => url,
               :env => environment,
               :client => client,
               :login => nil,
               :domain => domain }
现在,当我运行cucumber时,我通过以下操作调用环境:

黄瓜浏览器=ff


您完全可以通过命令行传递环境名称。查看我的env.rb文件:

case ENV['BROWSER']
  when 'ff', 'Firefox'
    browser = Selenium::WebDriver.for :firefox
    browser_name = 'Firefox'
  when 'chrome'
    browser = Selenium::WebDriver.for :chrome
    browser_name = 'Chrome'
  when 'debug'
    debug_profile = Selenium::WebDriver::Firefox::Profile.new
    debug_profile.add_extension "firebug-1.9.1-fx.xpi"
    browser = Selenium::WebDriver.for :firefox, :profile => debug_profile
    browser_name = 'Firefox (Firebug)'
  when 'mobile'
    mobile_profile = Selenium::WebDriver::Firefox::Profile.new
    mobile_profile['general.useragent.override'] = "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)
      AppleWebKit/420+ (KHTML, like Gecko) Version/3.0
      Mobile/1A535b Safari/419.3"
    browser = Selenium::WebDriver.for :firefox, :profile => mobile_profile
    browser_name = 'Mobile'
  when 'headless'
    headless_profile = Headless.new
    headless_profile.start
    browser = Selenium::WebDriver.for :firefox
    browser_name = 'Firefox'
  else
   browser = Selenium::WebDriver.for :firefox
   browser_name = 'Firefox'
end

if URLS[ENV['URL']].nil?
  environment = 'dev'
  url = 'http://' + URLS['dev']
  domain = URLS['dev']
else
  environment = ENV['URL'].upcase
  url = 'http://' + URLS[ENV['URL']]
  domain = URLS[ENV['URL']]
end

if ENV['CLIENT'].nil?
  client = 'user/password'
else
  client = ENV['CLIENT']
end

puts "Browser      " + browser_name
puts "URL          " + url
puts "Environment: " + environment
puts "Client:      " + client
puts "Domain:      " + domain

test_env = {   :browser => browser,
               :browser_name => browser_name,
               :url => url,
               :env => environment,
               :client => client,
               :login => nil,
               :domain => domain }
现在,当我运行cucumber时,我通过以下操作调用环境:

黄瓜浏览器=ff


谢谢惠特尼!我会尝试一下浏览器。谢谢惠特尼!我会尝试一下浏览器。