Comprender la implementación de Selenium Grid2 en EC2
amazon-ec2 webdriver (1)
No hay consideraciones especiales para ejecutar grid en EC2 frente a cualquier otro entorno de red. Todo se hace a través de HTTP en los puertos que puede configurar. Dado que es casi seguro que no quiere que su red pública esté expuesta y todo en el grupo de seguridad predeterminado puede hablar con todo lo demás en la misma red, no debería tener ningún problema.
Puede configurar cosas desde la línea de comandos o mediante un archivo de configuración JSON. Yo prefiero este último El archivo de configuración predeterminado se puede encontrar en Google Code . Notarás el valor "hubPort" allí. No se muestra, pero es válido, es un elemento de configuración "hubHost". Simplemente configúralo en el nombre de host del hub.
Cuando ejecute su nodo, proporcione el argumento de línea de comandos "-nodeConfig /path/to/my/node_config.json" y estará listo para continuar.
Implementé Selenium Grid leyendo y entendiendo de la documentación dispersa / fragmentada en línea sobre Grid2. Mi implementación actual es-
Nodo de Webdriver registrado y ejecutándose en la instancia de EC2
java -jar selenium-server-standalone-2.8.0.jar -role webdriver -hub http://EC2_PUBLIC_IP:5555/grid/register -port 5556
Hub registrado y ejecutándose en la misma instancia de EC2
java -jar selenium-server-standalone-2.8.0.jar -role hub -hubhost EC2_PUBLIC_IP -port 5555
Estoy ejecutando mis pruebas TestNG basadas en Webdriver de Eclipse en mi máquina local. La configuración del controlador es driver = new RemoteWebDriver (nueva URL ("http: // EC2_PUBLIC_IP: 5556 / wd / hub"), capacidad);
Ejecutar las pruebas inicia el navegador en mi instancia de EC2.
Todavía estoy buscando algunas preguntas sin respuesta que pueden ser muy básicas y agradecería las opiniones de las personas o su comprensión sobre ellas. Quiero que mis navegadores se inicien en una máquina que tenga el Nodo respectivo ejecutándose en ella. por ejemplo, una máquina que ejecuta el controlador web + nodo Firefox debe iniciar la prueba correspondiente.
- ¿Cómo funciona la implementación de Grid2 si necesito configurar Hub y Node en máquinas separadas? Creo que la implementación sería diferente si es una combinación EC2Hub-LocalMachineNode AND cuando es una combinación EC2Hub-EC2Node . En cualquier caso, ¿qué comando / URL proporcionamos para hub, webdriver / RC node y en las pruebas de Selenium? Lo pregunto porque la mayoría de la documentación en línea habla sobre "localhost" y el puerto 4444, pero quiero que sea genérico.
- ¿Hay alguna configuración específica para los puertos / firewall mientras se configura esto?
Pude lograr esto abriendo los puertos 5554-5559 en mi instancia EC2 desde el portal AWS y también el firewall para estos puertos en mi máquina local y EC2.
Por favor, avíseme si no estoy claro o ambiguo en cualquier punto. Agradecería tus explicaciones.