2011-09-27 15 views
8

Antecedentes:Ejecución de pruebas de selenio en paralelo con capibara

Tengo un conjunto de Carpincho pruebas de integración que se ejecutan en contra de mis Rails 3 Aplicación. Para las otras partes del conjunto de pruebas estoy usando Rspec.

Tengo un hub de servidor autónomo selenium 2.6.0 en mi máquina de desarrollo Mac OSX.

java -jar selenium-server-standalone-2.6.0.jar -role hub 

estoy corriendo varias máquinas virtuales cada uno conectados al concentrador con un nodo de selenio:

java -jar selenium-server-standalone-2.6.0.jar -role webdriver -hub http://0.0.1.12:4444/grid/register port 5555 -browser browserName="internet explorer",version=8,platform=WINDOWS 

Esto funciona bien, En esta captura de pantalla de la consola muestra que tengo un IE7 e IE8 una navegador conectado al cubo:

The hub console showing connected nodes

he capibara instalación para ejecutar contra el cubo de selenio (que los delegados de las pruebas a los nodos).

Capybara.app_host = "myapp.dev" 
Capybara.default_driver = :selenium 
Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, 
    :browser => :remote, 
    :url => "http://localhost:4444/wd/hub", 
    :desired_capabilities => :internet_explorer) 
end 

Funciona, sin embargo, sólo se ejecutará la prueba en un solo nodo internet_explorer. Parece ser el que está "primero en línea"; Si lo desactivo, la prueba se ejecutará correctamente en el otro nodo.

He estado probando el proyecto parallel_tests, configurando capybara según lo sugerido, pero eso solo lanzaría una prueba de integración.

¿Cómo puedo ejecutar mi integración en todos los nodos de Internet_explorer simultáneamente?

Bono pregunta: si quería pasar mis pruebas de integración en todos los nodos conectados, independientemente de la capacidad del navegador, ¿cómo iba a hacer eso?

+0

Daniel, estoy teniendo el mismo problema que usted, ¿fue capaz de encontrar una solución? – Farooq

+0

Me di cuenta de que si tienes 1 concentrador y 3 nodos en ejecución y ejecutas 3 pruebas al mismo tiempo en 3 pestañas diferentes, entonces las pruebas se ejecutarán en todos los nodos. 1 prueba para cada nodo. Básicamente, la prueba recoge el siguiente nodo vacío en línea y lo ejecuta allí. – Farooq

Respuesta

1

¡Para IE webdrive puede ejecutar como máximo 1 prueba en un nodo físico! Si desea lograr el paralelismo con IE webdriver, intente agregar/registrar más nodo físico al concentrador.

En la captura de pantalla anterior de la consola del concentrador, también muestra un solo icono de IE. El mensaje es incorrecto que "Admite hasta 5 ...", pero puede considerar la cantidad de íconos para el navegador respectivo que se muestra debajo.

2

Aquí tiene que ejecutar las mismas pruebas para diferentes exploradores, por lo que puede intentar iniciar dos procesos de pruebas, es decir, ejecutar el mismo comando dos veces.

Como ha iniciado los nodos, la Grid manejará la ejecución en diferentes nodos.

En su caso, usted está ejecutando la prueba y solo en la suite/proceso se inicia con respecto a Grid. Solo para probar Propósito intentar disparar estas pruebas dos veces una tras otra. Si no puede lograr con este uso Ant o algo similar para controlar su ejecución de pruebas.

Cuestiones relacionadas