webdriver - Chromedriver es extremadamente lento en una máquina específica que usa Selenium Grid y.net
mstest selenium-webdriver (2)
Descripción general: Chromedriver funciona normalmente en una máquina pero muy despacio en otras dos máquinas idénticas.
Preparar:
- Selenium Webdriver utiliza .Net para la codificación y Selenium Grid para distribuir las pruebas. MSTest se está utilizando desde Visual Studio 2010 para ejecutar las pruebas.
- Una máquina local de Windows 7 de 64 bits que actúa como Hub
Tres máquinas remotas Win 7 de 32 bits (dos de ellas son virtuales) en mi red local, todas configuradas como nodos. Aquí está el comando utilizado para iniciar los nodos en las máquinas remotas:
java -jar c: / seleniumWebDriver / seleniumGrid / selenium-server-standalone-2.31.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register -browser "browserName = chrome" , maxInstances = 4 -Dwebdriver.chrome.driver = "C: / seleniumWebDriver / chromedriver.exe"
El controlador se inicia así desde dentro del código:
Capacidad de Capacidades Deseadas = nuevas Capacidades Deseadas (); capacidad.SetCapability (CapabilityType.BrowserName, navegador); driver = nuevo RemoteWebDriver (nuevo Uri (hubUrl), capacidad);
La variable "navegador" y "hubUrl" de arriba se pasa a través de un archivo app.config que se genera en el tiempo de ejecución. Para este caso, browser = chrome.
Problema:
Cuando configuro la máquina 212 (que es una máquina virtual) como un nodo cromado usando el comando anterior, y luego ejecuto las secuencias de comandos desde el concentrador, veo que Chrome se inicia en la máquina remota adecuada y se ejecuta normalmente. Ocupa entre 5 y 10 comandos por segundo.
Cuando configuro la máquina 78 (máquina virtual) o la máquina 103 (máquina real) como un nodo de la misma manera, y luego ejecuto las secuencias de comandos desde el concentrador, veo que el nodo se inicia correctamente en cromo. Sin embargo, funciona muy lentamente, como 1 comando por segundo o menos.
Otra información: Como dije, en una máquina, Chrome funciona normalmente, pero en las otras, funciona muy lentamente. Firefox e IE, cuando se configuran como nodos, funcionan normalmente.
He comparado la máquina 212 (que funciona correctamente) con las otras máquinas y no puedo encontrar la diferencia. Todas las máquinas están usando ''selenium-server-standalone-2.31.0.jar'' y la misma versión de ChromeDriver.
No parece que las máquinas de nodo estén siendo sobrecargadas. Además, es una diferencia muy consistente en el rendimiento que no parece estar relacionada con ninguna carga fluctuante en la red o las máquinas.
Mi tecnología de red ha verificado que todas estas máquinas están configuradas de forma idéntica en la red.
¿Alguien ha visto algo así antes?
EDIT 1: me conecté hoy y las tres máquinas remotas se ejecutan en cromo lentamente. Antes, uno de ellos era normal, pero ahora todos son lentos.
Me encontré con un problema similar donde el controlador cromado era lento en algunas máquinas y resultó ser un problema de proxy. Al desactivar "Detectar configuraciones automáticamente" en Chrome: // configuración> Cambiar configuración de proxy> Configuración de LAN> hice que webdriver ejecute comandos más rápido en Chrome para mí.
Mi configuración proxy no usaba detección automática, pero me pareció que lo siguiente ayudó mucho. El tiempo que tardó en iniciarse el controlador disminuyó de 43 segundos a 1 segundo
driver = new ChromeDriver(new ChromeOptions{Proxy = null});