unit testing - ¿Cómo integrar scripts de Sikuli en Selenium?
unit-testing integration-testing (6)
Estoy usando extensamente Selenium para pruebas de integración. Funciona muy bien para todo lo normal (HTML / AJAX), pero no funciona cuando intento probar ActiveX de terceros, applets de Java y componentes de Flash.
La solución que he encontrado para esto es Sikuli . Funciona muy bien a nivel local, pero ¿cómo puedo integrar eso en Selenium?
por cierto. si eso es relevante, para Selenium estoy usando Python API.
Consulte la sección de Python de la documentación de Selenium RC: http://seleniumhq.org/docs/05_selenium_rc.html#python
Es posible que pueda ejecutar pruebas de Selenium desde Jython. En ese caso, puede simplemente integrar secuencias de comandos de Selenium en sus secuencias de comandos de Sikuli.
Pruebe lo siguiente en el IDE de Sikuli. Es posible que deba modificar las declaraciones de importación para señalar a archivos específicos en el proyecto Selenium.
from selenium import selenium # this will probably need tweaking...
slm = selenium("localhost", 4444, "*firefox", "http://www.google.com/")
slm.start()
# etc...
Este tipo parece haber tenido éxito controlando el selenio de Jython: http://adam.goucher.ca/?p=367
Mi conclusión: probablemente sea más fácil permanecer en Jython y controlar Selenium desde allí. Podría integrar ambas herramientas en una sola secuencia de comandos.
Es posible tener capacidades Sikuli en Selenium Grid. Requiere que se instalen bibliotecas adicionales en cada nodo y concentrador.
Verifique este proyecto para obtener más información
No creo que haya una manera de integrar ambos. AFAIK Sikuli no tiene una interfaz de línea de comandos ni ningún tipo de API.
FWIW, usamos iMacros Enterprise Bundle para nuestras pruebas Flash / AJAX, tiene características de reconocimiento de imágenes similares a las de Sikuli. Entonces es una especie de mezcla de Sikuli y Seleninum. Fácil de usar, pero es una solución comercial. Entonces no estoy seguro si esa es una opción para ti.
Puede extender el Servidor de Selenio para que pueda ejecutar scripts SIKULI ( vea esto sobre cómo llamarlos desde Java).
Sin embargo, deberá desarrollar en Java ya que Selenium Server es una aplicación Java.
Si desea ejecutar funciones de Sikuli de forma remota en una cuadrícula de selenio, parece que tendría que hacerlo con Selenium Augmenter de alguna manera. Ninguna de las respuestas aquí muestra cómo una red remota, como con el uso de SauceLabs, adquiriría la funcionalidad de Sikuli. ¿Quizás el proyecto Selenium aún no ha aumentado la clase Augmenter para cargar bibliotecas externas como Sikuli?
Por esta razón, cuando uso Sikuli, siempre tengo que usar una instancia de WebDriver no estándar, local y estándar.
Si no es necesario utilizar un marco de prueba personalizado o específico, una opción es Robot Framework (RF). Tiene una biblioteca de Selenium, y hay una guía sobre cómo usar Sikuli con RF. Con eso en mente, podría combinar los dos juntos usando RF. Plus RF tiene algunas buenas características de marco de automatización de prueba integradas.
robotframework.org
http://blog.mykhailo.com/2011/02/how-to-sikuli-and-robot-framework.html