-
Notifications
You must be signed in to change notification settings - Fork 4
E2E
NOTA: nuestro grupo solo está conformado por 3 integrantes. el profesor mario conoce la situación de nuestro grupo y él mismo nos confirmó que nosotros debíamos realizar 30 escenarios (15 en playwright y 15 en kraken). adjuntamos chat con el profesor:
Mario Linares hace 4 días
Mario: Hola Javier, en el caso de 4 se esperan 40 escenarios (20 cada herramienta), al ser 3 ustedes deben entregar 30 escenarios (15 cada herramienta)
-
Su lenguaje robusto, da gran facilidad para escribir las pruebas, permitiendo detallar bastante cada una de ellas.
-
Permite realizar DEBUG con puntos de depuración, que adicional, resalta el elemento en el navegador, mostrando visualmente en que parte de la prueba se encuentra.
-
Gran ergonomía en su configuración y runner se pueden pasar opciones como
--headed
--workers
--repeat-each N
y muchas más que permiten dar una visión general de como están las pruebas y concentrase en una en específico. También se destaca mucho la habilidad de escoger cual prueba se quiere correr pasando un flag como-g 'my test'
para filtrar solo los test que hagan match con el string.- La gran ergonomía es algo invaluable, pues en pruebas e2e de interfaz flaky es la regla y no la excepción!
-
Tiene una amplia documentación, increíblemente descriptiva con todos sus métodos documentados. Que permiten facilmente encontrar las funciones necesarias. Acompañado de tutoriales y ejemplos completos y actualizados.
-
Excelente reportes y feedback, el output que genera cuando hay fallas es excelente con pantallazos, y bien descrito que punto de la prueba generó la excepción mostrando las lineas incluso con syntax highlighting, esto hace que sea mucho más fácil entender los errores.
-
La funcionalidad de sus
Selector
es excelente para encontrar los elementos necesario, un API muy completa y robusta. -
Excelente code-completion/code-intelligence gracias a el correcto uso de TypeScript (tipado completamente) permite saber que es cada cosa en cada contexto de ejecución.
-
Permite correr los escenarios en paralelo para rápido feedback localmente.
-
La instalación es realmente sencilla sin depender de versiones específicas o versiones anterioes de las herramientas utilizadas para su instalación y ejecución de pruebas, como el entorno de ejecución (NodeJs), la librería para generar datos aleatorios (Faker), etc.
-
Posee varios accesorios (fixtures) que ofrecen un entorno de pruebas robusto para las pruebas E2E, adicional se pueden agregar accesorios propios que serán preparados para la ejecución de las pruebas.
-
Reportes (screenshots) paso a paso, debugging de alta calidad.
-
Todo el dinero de Microsoft para apoyar su desarrollo.
- No hace pruebas en aplicaciones móviles nativa
-
Funciona para hacer testing E2E tanto para aplicaciones web, como aplicaciones móviles
-
Escritura de test con gherkins, lo que facilita la escritura de pruebas en "lenguaje natural" y reuso muy sencillo de lógica (steps) escritos anteriormente.
-
Soporte integrado con signaling monkeys y parameters
-
Es rápido en la ejecución de tests.
-
Buenos reportes.
-
Su instalación se hace demasiado compleja y los tutoriales no aportan mucho al proceso.
- Ejemplo: pide dependencias que no son 100% necesarias, la herramienta no corre si
adb
no está instalado muy a pesar de que solo se corran pruebas web.
- Ejemplo: pide dependencias que no son 100% necesarias, la herramienta no corre si
-
Documentación de bajo nivel:
-
Cuando se empieza a hacer una prueba es verdaderamente un panorama oscuro, no se explican las siguientes cosas:
- Cual es el contexto y a que se tiene acceso dentro de un step de gerkin
- Que es
this.driver
no se explica que es webdriver.io ni cuales son sus métodos pues queda uno adivinando como y que es cada cosa, se está perdido completamente si no se usa la herramienta. - A pesar de que el proyecto está escrito en TypeScript por no hacer buen uso del lenguaje la información útil no se propaga al usuario:
- Ejemplo: El browser debería tener su tipo pero se usa
any
por lo cual hay 0 ayuda por parte de el code intelligence.
- Ejemplo: El browser debería tener su tipo pero se usa
- Que es
- Cual es el contexto y a que se tiene acceso dentro de un step de gerkin
-
Herramienta poco ergonómica para correr las pruebas:
- Logging excesivo, se usa por defecto
INFO
y por lo tanto puppeteer lanza miles de lineas mostrando información para nada importante, que no dejan ver donde está el error o los logs que el desarrollador está tratando de lanzar.- Fue necesario implementar una clase interna de Kraken para configurar puppeteer en log level
WARN
y así poder tener unos logs que fuesen útiles.
- Fue necesario implementar una clase interna de Kraken para configurar puppeteer en log level
- No es configurable que features correr, obligatoriamente corre todos los archivos que terminan en
.feature
que encuentra en la carpeta/features
esto es muy molesto cuando se está centrando en un test nuevo, o un test flaky toca mover todos los archivos de la carpeta que no se quieran correr y dejar solo el que se quiere. Esto es tan poco ergonómico que fue necesario escribir un script para automatizar esto
- Logging excesivo, se usa por defecto
-
Inestabilidad:
- La herramienta tiene crashes inesperados por problemas internos de su módulo de reporte al hacer parsing de json incompleto sin atrapar excepciones, bug reportado
-
Nos encanta playwright, de kraken solo nos gusta el lenguaje estilo gherkins.