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.

28 min
15 Jun, 2021

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.

3. Introducción a Concept.js

Short description:

Concept.js es un marco de pruebas de estilo BDD centrado en las pruebas del navegador. Delega la ejecución de pruebas a varios motores como Playwright, WebDriver, Protractor, Puppeteer y Testcafe. Admite cambiar fácilmente entre motores y ofrece soporte para BDD con Cucumber. Concept.js hace que las pruebas sean legibles al admitir varias formas de hacer clic en elementos. Es fácil de instalar, viene con Playwright de forma predeterminada, pero se puede usar sin él. Comienza con un nuevo proyecto, selecciona un motor de navegador, responde una pregunta y crea tu primera prueba.

El año pasado recibimos Playwright de Microsoft. Anteriormente obtuvimos Puppeteer, también estaba TestCafe, Cypress. Así que muchas herramientas nuevas están saliendo aquí y allá y tal vez en 2021 nos traiga algo nuevo. ¿Podremos cambiar a ello? Si es tan nuevo, un supuesto asesino de Cypress, un asesino de Playwright, cualquier cosa absolutamente asesina, tal vez deberíamos probarlo también y sin reescribir las pruebas. ¿Es eso posible alguna vez? Esta pregunta la podemos dirigir a concept.js.

Concept.js es un marco de pruebas de estilo BDD. El estilo BDD significa que escribimos nuestras pruebas en un lenguaje similar al humano y tratamos de evitar algunas interacciones complejas de JavaScript y mantener el código lo más legible posible. Y se centra únicamente en las pruebas del navegador lo que lo diferencia de Mocha o Jest pero tiene una API para todos los motores de navegadores.

Entonces, a diferencia de Cypress, concept.js no intenta ejecutar las pruebas por sí mismo. Delega la ejecución a Playwright, a WebDriver, a Protractor, a Puppeteer, a Testcafe. Por lo tanto, concept.js puede cambiar fácilmente la ejecución entre todos esos motores. Y sí, viene con soporte para BDD con Cucumber en caso de que tu cliente realmente lo necesite. Así que aquí está la prueba en concept.js. Como puedes ver, puedes leerla. Sí, es muy sencillo. No necesitas consultar la documentación. No necesitas pensar en lo que está sucediendo en la pantalla. Ya puedes entender todo lo que está sucediendo aquí. Así que concept.js admite hacer clic en nombres de botones, en etiquetas de botones, en CSS, XPAS, todo. Así que puedes hacer que tus pruebas sean lo más legibles posible al escribir pruebas con concept.js.

Concept.js es bastante fácil de instalar. Es solo un comando. Y de forma predeterminada, viene con PlayWrite porque creo que PlayWrite es realmente impresionante en la actualidad. Y elegiría PlayWrite para mi próxima prueba porque es multi-navegador, multiplataforma, y se lo recomendaría a todos. Pero concept.js se puede instalar sin PlayWrite. Es solo una decisión basada en opiniones que puedes cambiar fácilmente. Así que concept.js viene con un proyecto de demostración, pero comencemos con un nuevo proyecto vacío. Deberás inicializar tus pruebas y seleccionar el motor de navegador. Selecciona el navegador, responde esta aburrida pregunta, y crea una primera prueba. Cuando hayamos hecho esto, llegaremos a la primera prueba creada.

4. Introducción a la función Pulse en Concept.js

Short description:

La prueba solo debe contener estos dos pasos: abrir una página y lanzar la función Pulse. Pulse reemplaza todas tus pruebas que necesitan ejecutarse después de abrir la página. Permíteme mostrarte. Estoy ejecutando esta prueba en mi navegador. Abre el sitio web de Airbnb con Playwright. La ejecución se pausa, así que puedo abrir mis herramientas de desarrollo y pensar en qué hacer a continuación. Puedo navegar por la página, seleccionar diferentes elementos y escribir comandos en tiempo real. Después de terminar las pruebas, vuelvo al editor, copio los comandos, elimino la pausa y ¡listo, la prueba está lista.

La prueba solo debe contener estos dos pasos: abrir una página y lanzar la función Pulse. Ahora, me gustaría presentarte otra función genial de concept.js, que es Pulse. Pulse reemplaza todas tus pruebas que necesitan ejecutarse después de abrir la página. Así que Pulse es increíble.

Permíteme mostrarte. Estoy ejecutando esta prueba. Se está ejecutando en mi navegador. Abre el sitio web de Airbnb con Playwright. Y después de que se abre la página, la ejecución se pausa, así que ahora puedo abrir mis herramientas de desarrollo y pensar qué debo hacer a continuación. Ves, este es mi terminal. Ves este mensaje de Pulse aquí. Así que cuando no estoy seguro de qué debo probar, por dónde debo empezar, simplemente comienzo con un Pulse. La página se abre y las herramientas de desarrollo también se abren. Puedo navegar por la página, seleccionar diferentes elementos, probar diferentes comandos y así sucesivamente.

Por ejemplo, déjame mostrarte cómo tratamos con los calendarios aquí. Tengo mis herramientas de desarrollo abiertas en la parte inferior y la terminal a la derecha. Escribo mis comandos en la terminal y verifico si puedo encontrar elementos con los localizadores que acabo de seleccionar. Por ejemplo, descubrí que puedo seleccionar una fecha con el localizador de ID de prueba y lo intento. Sí, funcionó y se seleccionó la fecha. Luego presiono la tecla Enter y veo que el navegador actúa en consecuencia. Así que continúo realizando mis acciones escribiendo comandos, seleccionando elementos, y esto es como si estuviera escribiendo mis pruebas en tiempo real.

Cuando terminamos de seleccionar comandos y terminamos nuestras pruebas, volvemos al editor y nuestros comandos se guardaron en el archivo de historial de la CLI. Lo que hago es copiar mis comandos de este archivo, solo se guardaron los comandos exitosos. Elimino la pausa y voilà, aquí está mi prueba. Incluye todos los comandos que tenía. Así que ejecuté este navegador una vez y no hice suposiciones a ciegas, ni búsquedas a ciegas. Ejecuté la prueba y aquí está. Por cierto, pude escribir mis comentarios y tengo un excelente soporte de autocompletado. Así que todos pueden comenzar con Concept.js porque los comentarios son muy fáciles de entender. Por ejemplo, esta es la prueba que terminamos.

5. Cambiar de motores y generar informes en Concept.js

Short description:

Los ingenieros junior pueden leer y entender Concept.js fácilmente sin necesidad de aprender las API de diferentes frameworks. Cambiar los motores de navegadores es simple cambiando la configuración. Concept.js proporciona una interfaz de usuario incorporada y ejecutores de pruebas interactivos gráficos, así como soporte de informes con opciones como Concept.UI, informes allure y Report Portal. Los informes son cruciales para comprender los resultados de las pruebas y Concept.js ofrece varias opciones según el presupuesto y las necesidades. Todas las herramientas mencionadas son de código abierto.

por lo que los ingenieros junior pueden leerlo y realmente no les importa cómo se ejecuta. No necesitan aprender las API de diferentes frameworks, solo estas comunes, que están muy bien documentadas y tienen autocompletado.

¿Qué tan difícil es cambiar de motor de navegador? Básicamente así, vamos a la configuración y cambiamos de player a web driver y podemos esperar que la prueba se ejecute de manera similar, no igual, porque ves que el web driver funcionará un poco diferente que play, ¿verdad? Tal vez en algunos puntos veas fallas, pero la idea es que las cosas comunes son las mismas, por lo que todas las diferencias se pueden solucionar fácilmente agregando un poco de peso, cambiando algún localizador. Entonces, para la mayoría de las pruebas, la transición funcionará sin problemas para el 95% del código de prueba. No requerirás ningún cambio.

Entonces esto resuelve el problema que mencioné. Entonces, si necesitas transformar tu prueba a play, ¿verdad?, puedes transformarla fácilmente. Si necesitas web driver, simplemente cambia la configuración. Tal vez necesites cambiar a prueba de café para admitir Internet Explorer, esto también funciona. Y sí, esto es realmente poderoso.

Concept.js también viene con una interfaz de usuario incorporada y ejecutores de pruebas interactivos gráficos que pueden mostrar un informe paso a paso de todas las pruebas ejecutadas. Por lo tanto, puedes usarlo como una herramienta de informes. Puedes ver cómo va la ejecución. Y también tiene algunas características que tiene la Terminal, pero algunas más avanzadas también. Por ejemplo, puedes mantener un navegador sin volver a ejecutar la prueba y cambiar fácilmente entre el modo headless y el modo de ventana.

También en Concept.js, tenemos soporte de informes incorporado. Por lo tanto, una de las mejores herramientas compatibles aquí es Concept.UI sin duda, porque los Concept.UI están hechos para Concept.js. Pero la captura de pantalla a la derecha no es de Concept.UI. Tal vez ya adivinaste qué es. Es el informe allure. Por lo tanto, Concept.js tiene soporte incorporado para informes allure. En caso de que necesites mejores informes para mostrar a tus clientes o simplemente para ver qué sucedió en CI en producción para que puedas rastrear los cambios en tus pruebas. También admitimos tecnologías más empresariales como Report Portal. Tenemos un agente oficial de Concept.js en la organización de Report Portal. Por lo tanto, puedes tener informes de Report Portal con Concept.js y Testomatio, la herramienta en la que estoy trabajando también intenta brindar mejores informes para tus pruebas de extremo a extremo. Por lo tanto, los informes son bastante importantes en las pruebas de hoy en día porque todo se puede mostrar desde una consola y seguramente tus gerentes, tus clientes no mirarán la consola para ver qué pruebas se aprobaron, qué pruebas no, por qué razones. Quieren una interfaz gráfica limpia y agradable para comprender esto. Es por eso que Concept.js ofrece tantas opciones para informes porque según tu presupuesto, según tus condiciones, puedes elegir la herramienta que desees. Por cierto, todas esas tres herramientas son absolutamente de código abierto. Puedes comenzar a trabajar con ellas y con Concept.js hoy mismo.

6. Características importantes de Concept.js

Short description:

Concept.js admite la ejecución en paralelo mediante trabajadores, proporciona una solución para pasos fallidos y utiliza el concepto tradicional de objetos de página. También ofrece soporte para Cucumber BDD y la capacidad de comunicarse con tu aplicación a través de una API. Concept.js se centra en las pruebas de extremo a extremo y es gratuito y de código abierto.

Permíteme resumir algunas características importantes de Concept.js. No mencionaré las características de Concept.js porque ya has oído hablar de cambiar entre motores, pausa interactiva, sintaxis fácil de aprender. ¿Qué más tenemos? Y sí, ya lo mostré un poco. Tal vez ya lo hayas visto.

Además, tenemos soporte incorporado para la ejecución en paralelo mediante trabajadores. Una API muy moderna y elegante. Puedes escribir tus propios ejecutores personalizados para paralelizar tus pruebas como desees. Por ejemplo, puedes agrupar las pruebas en dos grupos, en dos navegadores de Firefox, o hacer cuatro grupos en Safari. Puedes dividir las pruebas como desees en grupos, llevar tantos navegadores como necesites y tener ejecuciones en paralelo y un informe único después de esto. Eso es realmente genial.

También tenemos una solución incorporada y simple para pasos fallidos. Intenta automáticamente los pasos nuevamente. Entonces, si algún elemento no se encuentra en la página en el primer intento, ni siquiera lo notarás. Concept.js lo intentará nuevamente y esperará a que aparezca sin siquiera notificarte. Funciona para cualquier comando, clic, ver, lo que sea. Simplemente funciona, no lo toques y estarás bien.

Concept.js utiliza el concepto tradicional de objetos de página y está integrado en el marco de trabajo para que puedas refactorizar fácilmente tu código para que sea fácil de usar en otras pruebas. Los objetos de página, objetos de pasos y objetos de datos están todos integrados. Como mencioné anteriormente, tenemos soporte para Cucumber BDD basado en Concept.js. Esto es realmente increíble porque puedes combinar el verdadero BDD con especificaciones en JavaScript, como las pruebas de Concept.js. Esto es importante porque no todas las pruebas deben escribirse de manera verdaderamente BDD, ya que no todas las pruebas son características. Porque necesitas tener pruebas de regresión para la caja. Mi punto es que debes combinar el enfoque BDD con el enfoque clásico y solo el marco de pruebas Concept.js te permite hacer esto.

Otra característica genial que me gusta mucho es si tienes una API y puedes comunicarte con tu aplicación a través de esa API, por ejemplo, puedes crear fixtures a través de esta API, eliminar fixtures. Y es mucho más fácil hacerlo a través de la interfaz de API REST en lugar de la interfaz web. Por lo tanto, puedes combinarlos fácilmente. Y esos son mis puntos finales. Concept.js es un marco de pruebas y lo que lo diferencia de los demás es que se centra en las pruebas de extremo a extremo sin ejecutar tus pruebas de extremo a extremo por sí mismo. Intenta brindar la mejor experiencia de usuario para hacer que las pruebas sean lo más fáciles posible. Concept.js es completamente gratuito y de código abierto.

QnA

Contribuir a Concept.js y las características de CodeSapJS

Short description:

Puedes contribuir a Concept.js. Diferentes motores sirven para diferentes propósitos, lo que te permite elegir la herramienta adecuada. Cypress es popular por su enfoque amigable para los desarrolladores, mientras que WebDriver es adecuado para ingenieros de QA que requieren un mayor control del navegador. Hemos recibido preguntas sobre la compatibilidad del modo multi-navegador de CodeSapJS, y sí, lo soporta. CodeSap delega ciertos compromisos a los motores subyacentes, lo que lo hace más flexible que Cypress. Si necesitas un control total del navegador y funciones avanzadas, CodeSap js es una mejor opción.

Puedes contribuir en ello. Ya hay grandes y pequeñas empresas que utilizan Concept.js y se están uniendo a él. Así que únete a nuestro equipo, únete a nuestra community, prueba Concept.js por ti mismo para comprobarlo y funciona realmente genial con Playwright. Gracias por ver, mi nombre es Michael y nos vemos pronto.

Sí, pensé que Cypress tendría incluso más números aquí. Estoy bastante impresionado de que alguien esté utilizando Concept.js. Lo que quería mostrar con estas encuestas es que hay diferentes motores y para diferentes propósitos, puedes elegir las herramientas que se ajusten mejor a ti. Así que creo que Cypress es muy popular porque es muy amigable para los desarrolladores y ha captado a muchos desarrolladores que no les gustaba testing, que no querían hacer esto y las pruebas de navegador les parecían complicadas porque siempre era un producto de Selenium con el que lidiar. Y por otro lado, WebDriver es más para ingenieros de QA que trabajan en pruebas de extremo a extremo porque necesitan un mayor control del navegador. Así que creo que aquí hay dos audiencias y sí, son bastante diferentes pero necesitamos involucrar a todos ellos para colaborar y hacer mejores pruebas.

Eso tiene mucho sentido. También hemos empezado a recibir preguntas para tu charla. Así que tengo algunas preguntas para ti, si está bien. Voy a empezar con ellas y no voy a mencionar los nombres de las personas que han hecho las preguntas porque voy a destrozar el nombre, así que no tiene sentido. Pero una de las primeras preguntas fue, ¿funciona CodeSapJS en modo multi-navegador? Por ejemplo, un par de navegadores están interactuando entre sí.

Claro, claro. Implementamos esta característica hace como un año, no, hace dos años. Así que sí, hace bastante tiempo. Funcionaba, estaba bien probado y sí, puedes usarlo. O dos navegadores diferentes si lo deseas.

Vale, vale. Eso está muy bien. Alguien hizo el comentario de que CodeSap tiene diferentes compromisos como lo hace Cypress. Cypress, por ejemplo, dice que no tiene mucho soporte de pestañas y no puedes usarlo para controlar dos navegadores al mismo tiempo. ¿Cómo se compara CodeSap en relación a eso?

CodeSap no resuelve estos problemas. Los delega a los motores que ya resuelven este problema. Por eso prefiero herramientas como Playwright o Puppeteer que tienen un control total del navegador, y por eso no me gusta Cypress para la mayoría de mi trabajo de testing. Pero sí, esto es una preferencia del usuario y lo que mejor se adapte a tu trabajo. Así que si necesitas probar una aplicación de una sola página con los componentes individuales, Cypress está muy bien. Pero si necesitas un control total del navegador y más y más características, CodeSap js es mejor porque puedes elegir el motor mientras escribes tus pruebas.

CodeSap.js Estrategias y Limitaciones

Short description:

CodeSap.js ofrece estrategias para lidiar con elementos de carga lenta, incluyendo esperas explícitas, reintentos manuales y reintentos del escenario completo. No hay restricciones en CodeSap.js en sí, ya que delega el control del navegador a Playwright. Sin embargo, si necesitas APIs especiales, puedes escribir código de Playwright, Puppeteer o WebDriver. No se recomienda grabar interacciones en un navegador, ya que el modo de pausa interactiva en CodeSap.js proporciona más flexibilidad y efectividad en las pruebas.

Entonces, la base de código está creciendo, pero aún puedes elegir un motor mejor si lo necesitas. Eso tiene mucho sentido y me gusta, especialmente porque la gente se inclinaba mucho hacia uno de los motores disponibles.

¿Cómo maneja CodeSap.js las cosas que tardan en aparecer en la página? Por ejemplo, una aplicación de una sola página. Perdón, ¿cómo, qué? ¿Cómo maneja CodeSap.js las cosas que tardan en aparecer? Es decir, que tardan en cargarse en la página porque es una página grande, como una aplicación de una sola página donde todo tiene que cargarse antes de poder interactuar con ello.

Sí, el problema con las aplicaciones de una sola página es que no sabemos si se han cargado o no. Nunca nos dice nada al respecto. Así que no hay un estado de esta aplicación. Tenemos diferentes estrategias para esto. La estrategia predeterminada es externa, intentando cada paso. Por lo tanto, cada paso en la prueba se volverá a intentar automáticamente en caso de fallo. Tenemos esperas explícitas. Por lo tanto, puedes esperar cualquier cosa que desees. Puedes añadir reintentos manuales. Y si tienes aplicaciones muy, muy malas que no son muy inestables, puedes reintentar el escenario completo. Así es como también funciona. Creo que esas son todas las estrategias, pero tal vez haya algunas más. Pero estas son las que uso regularmente. Y funcionan.

La gente quiere saber más sobre las restricciones de usar CodeSapp.js. ¿Existen restricciones como la carga de archivos o el trabajo con iframes? ¿Cuáles son algunas de las limitaciones del framework? Eso son preguntas bastante incorrectas porque realmente lo siento como la audiencia de Cypress y no puedes hacerlo porque CodeSapp.js no controla el navegador. Se delega a Playwright y Playwright no tiene restricciones. Así que la única restricción que debes entender es que CodeSapp.js no puede hacer todo lo que Playwright puede. Por lo tanto, necesitas escribir algo de código de Playwright o código de Puppeteer o código de WebDriver si necesitas utilizar algunas APIs muy especiales. Pero sí, puedes hacer todo lo que puedes hacer con Playwright, Puppeteer, WebDriver, etc., con CodeSapp.js.

De acuerdo, eso tiene mucho sentido. Eso tiene mucho sentido. Alguien quiere saber si se puede generar una prueba de CodeSapp.js grabando interacciones en un navegador. Soy muy escéptico acerca de esta idea. Así que lo intenté, y cambié a este modo de pausa interactiva. Y encontré que esto es mucho más efectivo porque no solo estoy grabando mis acciones, sino que las estoy probando en tiempo real, lo cual no puedo hacer con un grabador. Así que esto es mucho más flexible y efectivo para mí como tester. Eso es realmente bueno.

CodeSapp Función de Respuesta Automática y Preguntas y Respuestas

Short description:

Cuando CodeSapp realiza la función de respuesta automática, ¿se graba solo en el primer intento exitoso o, por ejemplo, en el tercer intento? La persona que hace la pregunta tiene preocupación acerca de los reintentos que pueden ocultar errores intermitentes. Me gustaría hablar de esto después de mi charla en la sala. Por favor, únete a Michael para más preguntas. Gracias, Michael, por la charla y por acompañarme en las preguntas y respuestas. Gracias por invitarme. Gracias por la oportunidad de estar aquí contigo.

Hay muchas preguntas de Michael. No podremos responder a todas ellas. Tomaremos una más. Entonces, cuando CodeSapp realiza la función de respuesta automática, ¿se graba solo en el primer intento exitoso, o por ejemplo, en el tercer intento? La persona que hace la pregunta tiene preocupación acerca de los reintentos que pueden ocultar errores intermitentes. Entonces, ¿cómo ocurre la grabación de reintentos automáticos? Creo que es una pregunta bastante técnica. No estoy seguro de si podré responderla a tiempo, pero me gustaría hablar de ello después de mi charla en la sala.

Oh, perfecto. En ese caso, es perfecto para mí recordarles a todos que pueden unirse a ti en tu sala de oradores en spatial.chat. El enlace para unirse está en la línea de tiempo de la transmisión en vivo, y por favor únete a Michael para más preguntas. No tendremos tiempo para responder más. Gracias, Michael, por la charla y por acompañarme en las preguntas y respuestas. Fue realmente bueno. Gracias por invitarme. Gracias por la oportunidad de estar aquí contigo. Y gracias a todos por ver.

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

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

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
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
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
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.
TestJS Summit 2023TestJS Summit 2023
89 min
Building out a meaningful test suite that's not all E2E
Workshop
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.
TestJS Summit 2021TestJS Summit 2021
146 min
Live e2e test debugging for a distributed serverless application
WorkshopFree
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
TestJS Summit - January, 2021TestJS Summit - January, 2021
127 min
Uniform Browser Automation Infrastructure
Workshop
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.