Селен RC: Запустите тесты в нескольких браузерах автоматически

set_index и назначить его

df['B2']=df2.drop_duplicates('A2').set_index('A2')['B2']
df
Out[728]: 
   A  B  B2
A  1  0  AA
B  1  0  BB
C  0  0  CC
D  1  0  DD
E  0  0  EE
F  1  1  FF
G  0  1  GG
8
задан Daniel Beardsley 17 October 2008 в 19:00
поделиться

4 ответа

Вы пробовали Сетку Селена? Я думаю, что это создает довольно хороший сводный отчет, который показывает детали, в которых Вы нуждаетесь. Я могу быть неправым, поскольку я не использовал его долгое время.

4
ответ дан 5 December 2019 в 23:17
поделиться

Я закончил тем, что изменил protocol.rb Селена для повышения AssertionFailedError с обоими @browser_string и сообщение возвратило из Селена RC, если ответ не запускался с "OK". Я также изменил http_post метод для возврата целого органа по ответу и method_missing возвратить массив возвращаемых значений для издания get_X управляет к Селену RC.

Добавьте этот код к коду в вопросе, и необходимо смочь видеть, какие утверждения перестали работать на который браузеры.

# Overrides a few Driver methods to make assertions return the
# browser string if they fail
module Selenium
  module Client
    class Driver
      def remote_control_command(verb, args=[])
        timeout(default_timeout_in_seconds) do
          status, response = http_post(http_request_for(verb, args))
          raise Test::Unit::AssertionFailedError.new("Browser:#{@browser_string} result:#{response}") if status != 'OK'
          return response[3..-1]
        end
      end

      def http_post(data)
        http = Net::HTTP.new(@server_host, @server_port)
        response = http.post('/selenium-server/driver/', data, HTTP_HEADERS)
        #return the first 2 characters and the entire response body
        [ response.body[0..1], response.body ]
      end
    end
  end
end

#Modify your method_missing to use seleniums.map to return the
#results of all the function calls as an array
class SeleniumTest < Test::Unit::TestCase
  def method_missing(method_name, *args)
    self.class.seleniums.map do |selenium_driver|
      selenium_driver.send(method_name, *args)
    end
  end
end   
1
ответ дан 5 December 2019 в 23:17
поделиться

Отказ от ответственности: Не эксперт по селену.

Вы просто хотите знать, какой браузер перестал работать, или Вы хотите запустить тест через все браузеры и затем сообщить о полных отказах, когда он сделан?

Первый довольно прост, если Вы храните драйверы хешем в Вашей установке. (Я уверен, что существует неженка способ сделать это с Hash.inject, но я ленив.)

@seleniums = {}
%w(*firefox *iexplore).each do |browser|
  puts 'creating browser ' + browser
  @seleniums[browser] = Selenium::SeleniumDriver.new("localhost", 4444, browser, "http://localhost:3003", 10000)
end

Затем измените свою базовую функцию для изменения исключений для включения названия используемого драйвера, что-то как:

@seleniums.each do |name, driver|
  begin
    driver.send method_name, *args
  rescue Exception => ex
    raise ex.exception(ex.message + " (in #{name})")
  end
end

Должен получить Вас близко.

0
ответ дан 5 December 2019 в 23:17
поделиться

вам нужно обрабатывать каждый тест независимо. Таким образом, если один тест не прошел, он продолжит тестирование других тестов. Ознакомьтесь с phpunit и selenium rc

0
ответ дан 5 December 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: