Also habe ich begonnen, einige Ruby-Unit-Tests zu erstellen, die Selenium RC verwenden, um meine Web-App direkt im Browser zu testen. Ich benutze die Selenum-Client für Ruby. Ich habe eine Basisklasse für alle meine anderen Selentests erstellt, von denen ich erben kann.Selenium RC: Tests automatisch in mehreren Browsern starten
Dies erstellt zahlreiche SeleniumDriver-Instanzen und alle Methoden, die fehlen, werden für jede Instanz aufgerufen. Dies führt im Wesentlichen die Tests parallel durch.
Wie haben andere Leute das automatisiert?
Dies ist meine Implementierung:
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
Dies funktioniert, aber wenn ein Browser ausfällt, der gesamte Test nicht und es gibt keine Möglichkeit zu wissen, welchen Browser sie gescheitert an.
Hallo Daniel, ich habe eine ähnliche Frage. Ich habe mich gefragt, ob du helfen kannst. [Selenium RC: So starten Sie interaktive Tests mit mehreren Browsern] (http://stackoverflow.com/questions/2836313/selenium-rchow-to-launch-interactive-testing-with-multiple-browsers) – onesith