Итак, я начал создавать некоторые модульные тесты Ruby, которые используют Selenium RC для проверки моего веб-приложения непосредственно в браузере. Я использую Selenum-Client для рубина. Я создал базовый класс для всех моих тестов селена, чтобы наследовать.Selenium RC: автоматически запускать тесты в нескольких браузерах
Это создает многочисленные экземпляры SeleniumDriver, и все методы, которые отсутствуют, вызываются в каждом экземпляре. Это, по существу, проводит тесты параллельно.
Как другие люди автоматизировали это?
Это моя реализация:
class SeleniumTest < Test::Unit::TestCase
def setup
@seleniums = %w(*firefox *iexplore).map do |browser|
puts 'creating browser ' + browser
Selenium::SeleniumDriver.new("localhost", 4444, browser, "http://localhost:3003", 10000)
end
start
open start_address
end
def teardown
stop
end
#sub-classes should override this if they want to change it
def start_address
"http://localhost:3003/"
end
# Overrides standard "open" method
def open(addr)
method_missing 'open', addr
end
# Overrides standard "type" method
def type(inputLocator, value)
method_missing 'type', inputLocator, value
end
# Overrides standard "select" method
def select(inputLocator, optionLocator)
method_missing 'select', inputLocator, optionLocator
end
def method_missing(method_name, *args)
@seleniums.each do |selenium_driver|
if args.empty?
selenium_driver.send method_name
else
selenium_driver.send method_name, *args
end
end
end
end
Это работает, но если один браузер не удается, весь тест не удается, и нет никакого способа узнать, какой браузер он не на.
Привет, Даниэль, у меня есть аналогичный вопрос. Мне было интересно, можете ли вы помочь. [Selenium RC: как запустить интерактивное тестирование с несколькими браузерами] (http://stackoverflow.com/questions/2836313/selenium-rchow-to-launch-interactive-testing-with-multiple-browsers) – onesith