Hazlo bien con CodeceptJS: Una introducción a las pruebas de extremo a extremo supercargadas

Rate this content
Bookmark

CodeceptJS es un marco de pruebas de extremo a extremo estilo BDD que se integra perfectamente con todos los motores de pruebas populares. CodeceptJS tiene soporte incorporado de PageObjects, DataObjects, se integra perfectamente con TypeScript ¡e incluso tiene su propia aplicación de interfaz de usuario! En esta sesión, veremos cómo CodeceptJS se puede combinar con Playwright para hacer las pruebas simples y efectivas.

This talk has been presented at TestJS Summit - January, 2021, check out the latest edition of this JavaScript Conference.

FAQ

Concept.js es un marco de pruebas de estilo BDD (Behavior Driven Development) que se centra en las pruebas del navegador. Permite escribir pruebas en un lenguaje similar al humano, facilitando la legibilidad y mantenimiento del código. Este marco delega la ejecución de pruebas a otras herramientas como Playwright, WebDriver, entre otros, y ofrece soporte para BDD con Cucumber.

Concept.js facilita la escritura de pruebas legibles y mantenibles, permite integrar fácilmente la ejecución en diferentes motores de navegador y soporta pruebas BDD con Cucumber. Además, incluye funciones como la pausa interactiva 'Pulse' para mejorar la interacción durante la fase de desarrollo de pruebas.

Concept.js es fácil de instalar con solo un comando y por defecto viene con Playwright, dado que Playwright es destacado por su capacidad multi-navegador y multiplataforma. Sin embargo, este marco permite cambiar fácilmente a otros motores según las necesidades del usuario.

Sí, Concept.js implementa la capacidad de ejecutar pruebas en varios navegadores al mismo tiempo, lo que es útil para pruebas que requieren interacción entre diferentes sesiones de navegador o para verificar la consistencia entre diferentes plataformas y navegadores.

Concept.js ofrece una variedad de opciones para la generación de informes de pruebas, incluyendo la integración con herramientas como Allure y Report Portal. Esto permite a los usuarios crear informes detallados y visualmente atractivos que facilitan la comprensión de los resultados de las pruebas a los gestores y otros interesados.

Sí, Concept.js es adecuado para principiantes debido a su sintaxis amigable y fácil de aprender, además de su extensa documentación y autocompletado. Esto lo hace accesible para desarrolladores y testers con diferentes niveles de experiencia en automatización de pruebas.

Michael Bodnarchuk
Michael Bodnarchuk
28 min
15 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Concept.js es un marco de pruebas de estilo BDD centrado en las pruebas del navegador, que ofrece una fácil alternancia entre motores y soporte para Cucumber BDD. La función Pulse en Concept.js permite la ejecución y edición interactivas de pruebas. Concept.js proporciona una interfaz fácil de usar, opciones de informes y admite la ejecución en paralelo. CodeSap.js ofrece estrategias para lidiar con elementos de carga lenta y proporciona flexibilidad en el control del navegador. Se fomenta la contribución a Concept.js, y CodeSap.js es una buena opción para funciones avanzadas y control completo del navegador.

1. Introducción a Concept.js y Testomato

Short description:

Hola. Te presentaré Concept.js, una herramienta de prueba de extremo a extremo supercargada. Soy Michael, un desarrollador web e ingeniero de automatización de pruebas. Tengo experiencia con marcos de prueba de código abierto y he desarrollado Concept.js para resolver problemas de prueba. También trabajo en Testomato, un sistema de gestión de pruebas para pruebas de JavaScript.

♪♪♪ Hola. Espero que hayas disfrutado de la conferencia, y espero que hayas aprendido mucho hoy. Muchas herramientas nuevas, nuevos enfoques. Conociste a personas maravillosas, y me gustaría subirme al tren e introducirte a una nueva y genial herramienta, Concept.js.

Así que lo llamaría prueba de extremo a extremo supercargada. Bueno, porque puedo, y porque realmente disfruto de las pruebas con Concept.js. Mi nombre es Michael, y te presentaré esta herramienta y te mostraré el problema que realmente resuelve. Soy de Kiev, Ucrania. En realidad soy un desarrollador web, pero también trabajo como ingeniero de automatización de pruebas para practicar, para ver cómo las personas, qué problemas tienen con las pruebas automatizadas. Y así es como llevo esta experiencia a marcos de prueba de código abierto como, sorpresa, Concept.js.

Así que sí, también soy el desarrollador principal de Concept.js, pero también me gusta hacer pruebas con Concept.js. Bueno, creo que es justo decir esto. Comencé mi viaje hacia los marcos de prueba de código abierto con mi proyecto anterior, Conception, que es muy popular en la comunidad de PHP. Y Concept.js toma esta experiencia y la lleva a un nuevo nivel y se adentra en el ecosistema de JavaScript. En la actualidad, trabajo para mi propia empresa y estamos construyendo un sistema de gestión de pruebas para pruebas automatizadas, Testomato. Testomato se enfoca en pruebas de JavaScript, por lo que si tienes un desastre total con tus pruebas, Testomato puede organizarlo para ti. Esa es la idea.

2. La Era de la Incertidumbre y Elegir la Herramienta Correcta

Short description:

¿Recuerdas los días en que todo era estable y predecible, y Selenium era la única herramienta de prueba para navegadores? Ahora, en la era de la incertidumbre, tenemos un ecosistema de herramientas como Cypress, WebDriver, Playwright, Cucumber, Jest y Mocha. Elegir la herramienta correcta es un desafío, especialmente cuando los clientes solicitan características específicas como escribir pruebas en Gherkin o admitir Internet Explorer y Safari. Debemos estar preparados para adaptar nuestras pruebas a diferentes entornos, incluidos los navegadores móviles.

Así que comenzaría mi charla con la pregunta sobre ¿recuerdas esos buenos y viejos tiempos cuando todo era bastante predecible, todo era estable, y no estoy hablando de cosas como que podías viajar a todos los lugares que quisieras, podías hablar con las personas que quisieras. Estoy hablando solo de cosas de ingeniería que anteriormente teníamos solo una herramienta. Se llamaba Selenium, y lo usábamos para probar todo lo relacionado con el navegador. Si necesitabas Selenium, probablemente elegirías Java. Si necesitas, tal vez necesitarás Python o Ruby, pero elegirías Selenium. Era una decisión segura. No había absolutamente ninguna alternativa en aquellos días.

Pero hoy vivimos en la era de la incertidumbre. El JavaScript se encontró, y creó un maravilloso ecosistema de diferentes herramientas. Y hoy elegir la herramienta adecuada para el trabajo es una pregunta difícil, porque tenemos Cypress, tenemos WebDriver, Playwright, Cucumber, Jest, Mocha. Y bueno, cuántas cosas necesitas aprender hoy para elegir la herramienta adecuada para el trabajo. Definitivamente vivimos en la era de la incertidumbre, y mucho más estrés trae las preguntas que intento enumerar cuando le pregunto a un cliente sobre un nuevo proyecto de automatización de pruebas. porque podemos comenzar a escribir pruebas, pero luego el cliente sale y dice, oye, aprendí sobre BDD ayer. Es tan impresionante. Quiero escribir esta prueba yo mismo en lenguaje Gherkin. ¿Puede nuestra herramienta escribir pruebas en Gherkin? Hmm, buena pregunta. Especialmente si ya tenemos nuestras pruebas no en Gherkin, sino en JavaScript, ¿podemos introducir fácilmente el nivel BDD encima de eso? Oh, el cliente llegó. Necesito Internet Explorer. Me odiarás por esto, pero necesitamos Internet Explorer porque tengo muchos clientes enterprise. ¿Puede tu herramienta cambiar fácilmente a Enterprise Explorer sobre la marcha cuando todas las pruebas, especialmente con BDD en todas las cosas que ya hemos escrito? Esa es una buena pregunta. Oye, el cliente vuelve. Necesito soporte para Safari. Bueno, Safari está bastante bien. Safari es un navegador moderno. Todos lo usan. Y si nuestra herramienta puede hacer Safari o no, esto también puede ser complicado para algunos tipos de herramientas. Pero debemos estar preparados para todos esos cambios todo el tiempo. ¿Podemos ajustar nuestras pruebas para que se ejecuten en todos esos diferentes entornos? Y especialmente para los navegadores móviles porque el mundo se vuelve móvil, y probar en móviles también es un requisito difícil que el cliente puede no ser plenamente consciente al comienzo del viaje pero preguntará cuando tengas algunas pruebas y te pedirán, ejecuta esta prueba en móvil y esta prueba. Entonces, el navegador móvil también puede ser un nuevo requisito. Y en contra de la era de la incertidumbre, no sabemos qué nueva herramienta de automatización de pruebas surgirá este año porque cada año, alguna buena herramienta de automatización de pruebas emerge.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Pruebas de Aplicaciones Web con Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Pruebas de Aplicaciones Web con Playwright
Top Content
Testing web applications with Playwright, a reliable end-to-end testing tool. Playwright offers fast execution, powerful tooling, and support for multiple languages. It provides precise selectors, web-first assertions, and code generation for easy testing. Playwright also offers features like live debugging, tracing, and running tests on CI. The future of Playwright aims to make testing easy and fun, with a focus on creating frustration-free web experiences.
Pruebas de ciclo completo con Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Pruebas de ciclo completo con Cypress
Top Content
Cypress is a powerful tool for end-to-end testing and API testing. It provides instant feedback on test errors and allows tests to be run inside the browser. Cypress enables testing at both the application and network layers, making it easier to reach different edge cases. With features like AppActions and component testing, Cypress allows for comprehensive testing of individual components and the entire application. Join the workshops to learn more about full circle testing with Cypress.
Todos pueden escribir pruebas fácilmente
TestJS Summit 2023TestJS Summit 2023
21 min
Todos pueden escribir pruebas fácilmente
Playwright is a reliable end-to-end testing tool for modern web apps that provides one API, full isolation, fast execution, and supports multiple languages. It offers features like auto-weighting, retrying assertions, seamless testing of iframes and shadow DOM, test isolation, parallelism, and scalability. Playwright provides tools like VS Code extension, UiMode, and Trace Viewer for writing, debugging, and running tests. Effective tests prioritize user-facing attributes, use playwright locators and assertions, and avoid testing third-party dependencies. Playwright simplifies testing by generating tests, providing code generation and UI mode, and allows for easy running and debugging of tests. It helps in fixing failed tests and analyzing DOM changes, fixing locator mismatches, and scaling tests. Playwright is open source, free, and continuously growing.
Pruebas pequeñas, grandes resultados
TestJS Summit 2022TestJS Summit 2022
21 min
Pruebas pequeñas, grandes resultados
Automated atomic tests are a great way to improve UI tests by making them less brittle and faster. The tests focus on testing a single feature or component and have minimal UI interactions. The Talk explores examples of automated atomic tests and their implementation on web applications. It also discusses the analysis of atomic tests, login tests, and working with JSON Web Tokens for authentication and authorization. The Talk concludes by highlighting the use of UI and web requests in automated atomic testing.
Quizá No Necesitemos Pruebas de Componentes
Vue.js Live 2024Vue.js Live 2024
26 min
Quizá No Necesitemos Pruebas de Componentes
Component testing is a gray area between integration and unit testing. The demo app focuses on the cart component and writing test cases for Playwright component test and VTest. The first cart test encounters a bug with the invisible method in View Test.
Prueba del Servicio de Correo con Playwright
TestJS Summit 2022TestJS Summit 2022
17 min
Prueba del Servicio de Correo con Playwright
Top Content
This Talk discusses how to test mail service with Playwright, covering e-mail verification, reset password user journey, and more. It explores the use of third-party providers for reliable e-mail delivery and demonstrates how Playwright can help perform checks on e-mail content. The Talk also introduces the concept of a fake SMTP server and showcases how fixtures can be used to access the SMTP server and perform assertions on the HTML body of emails. Playwright's HTML rendering feature allows for interaction with email content as if it were a regular web page. It highlights the ability to render HTML from API calls, perform assertions on the rendered page, and exclude dynamically generated data from visual regression tests.

Workshops on related topic

Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
Top Content
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
Esta masterclass te enseñará los conceptos básicos para escribir pruebas end-to-end útiles utilizando Cypress Test Runner.
Cubriremos la escritura de pruebas, cubriendo cada característica de la aplicación, estructurando pruebas, interceptando solicitudes de red y configurando los datos del backend.
Cualquiera que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir adelante.
Construyendo una suite de pruebas significativa que no sea todo E2E
TestJS Summit 2023TestJS Summit 2023
89 min
Construyendo una suite de pruebas significativa que no sea todo E2E
Workshop
David Burns
David Burns
Todos somos enseñados a seguir la Pirámide de Pruebas pero la realidad es que construimos el Árbol de Pruebas de Navidad. En esta masterclass, David te explicará cómo desglosar proyectos y poner las pruebas donde necesitan estar. Al final de la masterclass, podrás actualizar tus proyectos para que cualquiera y todos puedan empezar a contribuir y realmente vivir según "La calidad es el trabajo de todos".
Te guiará a través de:- Pruebas de Componentes- Pruebas de API- Pruebas de Regresión Visual- Pruebas A11Y
También te explicará cómo configurar todo esto en tu pipeline de CI/CD para que puedas obtener ciclos de feedback más cortos y rápidos.
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
TestJS Summit 2021TestJS Summit 2021
146 min
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
WorkshopFree
Serkan Ozal
Oguzhan Ozdemir
2 authors
En este masterclass, construiremos un entorno de pruebas para una aplicación preconstruida, luego escribiremos y automatizaremos pruebas de extremo a extremo para nuestra aplicación serverless. Y en el último paso, demostraremos lo fácil que es entender la causa raíz de una prueba errónea utilizando pruebas distribuidas y cómo depurarla en nuestro pipeline de CI/CD con Thundra Foresight.

Tabla de contenidos:
- Cómo configurar y probar tu infraestructura en la nube
- Cómo escribir y automatizar pruebas de extremo a extremo para tus cargas de trabajo serverless
- Cómo depurar, rastrear y solucionar problemas de fallas en las pruebas con Thundra Foresight en tus pipelines de CI/CD
Infraestructura Uniforme de Automatización de Navegadores
TestJS Summit - January, 2021TestJS Summit - January, 2021
127 min
Infraestructura Uniforme de Automatización de Navegadores
Workshop
Ivan Krutov
Ivan Krutov
En este masterclass, te mostraré cómo implementar y utilizar rápidamente una infraestructura de automatización de navegadores con la solución Moon. Comenzaremos implementando todo en tu estación de trabajo y pronto podrás ejecutar pruebas de Selenium, Playwright y Puppeteer en paralelo en el mismo clúster. Luego, te demostraré cómo ofrecer la misma experiencia de manera sencilla para tu equipo utilizando un clúster remoto en la plataforma de la nube.