Skip to content
Javier López edited this page May 9, 2022 · 24 revisions

Análisis y comentarios sobre herramientas

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)

Playwright

Pro

  • 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.

Contra

  • No hace pruebas en aplicaciones móviles nativa

Kraken

Pro

  • 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.

Contra

  • 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.
  • 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:
    • 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.
      • 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
    • 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

Conclusión

Nos encanta playwright, de kraken solo nos gusta el lenguaje estilo gherkins.

Clone this wiki locally