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.

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.

Available in English

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

Testing Web Applications with Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Testing Web Applications with Playwright
Top Content
Testing is hard, testing takes time to learn and to write, and time is money. As developers we want to test. We know we should but we don't have time. So how can we get more developers to do testing? We can create better tools.Let me introduce you to Playwright - Reliable end-to-end cross browser testing for modern web apps, by Microsoft and fully open source. Playwright's codegen generates tests for you in JavaScript, TypeScript, Dot Net, Java or Python. Now you really have no excuses. It's time to play your tests wright.
Full-Circle Testing With Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Full-Circle Testing With Cypress
Top Content
Cypress has taken the world by storm by brining an easy to use tool for end to end testing. It’s capabilities have proven to be be useful for creating stable tests for frontend applications. But end to end testing is just a small part of testing efforts. What about your API? What about your components? Well, in my talk I would like to show you how we can start with end-to-end tests, go deeper with component testing and then move up to testing our API, circ
Everyone Can Easily Write Tests
TestJS Summit 2023TestJS Summit 2023
21 min
Everyone Can Easily Write Tests
Let’s take a look at how Playwright can help you get your end to end tests written with tools like Codegen that generate tests on user interaction. Let’s explore UI mode for a better developer experience and then go over some tips to make sure you don’t have flakey tests. Then let’s talk about how to get your tests up and running on CI, debugging on CI and scaling using shards.
Tiny Tests, Large Results
TestJS Summit 2022TestJS Summit 2022
21 min
Tiny Tests, Large Results
Yes, Big things do come in small packages. For example, isn’t a unit test’s speed, feedback, and reliability fantastic? Did you know we can also have fast, focused, and reliable feedback from our functional e2e tests? Atomic e2e tests are those that are targeted and focused. They’re tiny in size but large in their impact. This tutorial will teach you how to create atomic e2e tests with several code examples. First, we will use Cypress.io to authenticate by setting a cookie. Instead of using a UI. Second, we will use Cypress.io to set a JSON Web Token for authentication. Join me, and let’s write tiny tests for large results.
We May Not Need Component Testing
Vue.js Live 2024Vue.js Live 2024
26 min
We May Not Need Component Testing
Testings are mandatory and unit tests are the foundation for building a good testing system for our project. But for front end projects which involve components, how many unit tests are considered efficient and not overkill? Should we use additional libraries like Testing Library or Vue Test Utils with Vitest to test a component, when we can perform the same with just Playwright? Whether a component test using an E2E framework like Playwright is really a kill for? Let's find out in my talk.
Testing Mail Service With Playwright
TestJS Summit 2022TestJS Summit 2022
17 min
Testing Mail Service With Playwright
Top Content
We send emails to our users - account verification and newsletters. We allow the user to contact us by sending an email via inbuild form. Do we? Does the user receive an account verification email or exactly what notification they signed up for? We can cover this functionality as part of E2E tests: get an email and open it to check what is in it. We will need Playwright and a fake SMTP server to capture emails sent by the app.

Workshops on related topic

Detox 101: How to write stable end-to-end tests for your React Native application
React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.
Building out a meaningful test suite that's not all E2E
TestJS Summit 2023TestJS Summit 2023
89 min
Building out a meaningful test suite that's not all E2E
Workshop
David Burns
David Burns
We're all taught to follow the Testing Pyramid but the reality is that we build out the Testing Christmas Tree. In this workshop, David will talk you through how to break down projects and put the tests where they need to be. By the end of the workshop you will be able to update your projects so that anyone and everyone can start contributing and truly living up to "Quality is everyone job".
He will walk you through:- Component Testing- API Testing- Visual Regression Testing- A11Y testing
He will also talk you through how to get these all setup in your CI/CD pipeline so that you can get shorter and faster feedback loops.
Live e2e test debugging for a distributed serverless application
TestJS Summit 2021TestJS Summit 2021
146 min
Live e2e test debugging for a distributed serverless application
WorkshopFree
Serkan Ozal
Oguzhan Ozdemir
2 authors
In this workshop, we will be building a testing environment for a pre-built application, then we will write and automate end-to-end tests for our serverless application. And in the final step, we will demonstrate how easy it is to understand the root cause of an erroneous test using distributed testing and how to debug it in our CI/CD pipeline with Thundra Foresight.

Table of contents:
- How to set up and test your cloud infrastructure
- How to write and automate end-to-end tests for your serverless workloads
- How to debug, trace, and troubleshot test failures with Thundra Foresight in your CI/CD pipelines
Uniform Browser Automation Infrastructure
TestJS Summit - January, 2021TestJS Summit - January, 2021
127 min
Uniform Browser Automation Infrastructure
Workshop
Ivan Krutov
Ivan Krutov
In this workshop, I will show you how to quickly deploy and use browser automation infrastructure with Moon solution. We will start deploying everything on your workstation and will soon be able to run Selenium, Playwright and Puppeteer tests in parallel in the same cluster. Then I will demonstrate how to easily deliver the same experience for your team using a remote cluster in the cloud platform.