Implemente pruebas de humo automatizadas utilizando el modo sin cabeza de Amazon Nova Act

Las pruebas de humo automatizadas que utilizan el modo sin cabeza de Amazon Nova Act ayudan a los equipos de desarrollo a validar la funcionalidad principal en las canalizaciones de integración y entrega continua (CI/CD). Los equipos de desarrollo suelen implementar código varias veces al día, por lo que las pruebas rápidas ayudan a mantener la calidad de la aplicación. Las pruebas tradicionales de un extremo a otro pueden tardar horas en completarse, lo que genera retrasos en su proceso de CI/CD.

Las pruebas de humo son un subconjunto de pruebas que validan que las funciones más críticas de una aplicación funcionen correctamente después de la implementación. Estas pruebas se centran en flujos de trabajo clave, como el inicio de sesión de usuarios, la navegación principal y las transacciones clave, en lugar de una cobertura exhaustiva de funciones. Las pruebas de humo generalmente se completan en minutos en lugar de horas, lo que las hace ideales para canalizaciones de CI/CD donde la retroalimentación rápida sobre los cambios de código es esencial.

Amazon Nova Act utiliza la comprensión de la interfaz de usuario basada en IA y el procesamiento del lenguaje natural para interactuar con aplicaciones web, reemplazando los selectores de CSS tradicionales. En lugar de mantener frágiles selectores de CSS y complejos scripts de prueba, puede escribir pruebas utilizando comandos simples en inglés que se adapten a los cambios de la interfaz de usuario.

Esta publicación muestra cómo implementar pruebas de humo automatizadas utilizando el modo sin cabeza de Amazon Nova Act en canalizaciones de CI/CD. Usamos SauceDemo, una aplicación de comercio electrónico de muestra, como objetivo de demostración. Demostramos la configuración de Amazon Nova Act para la automatización del navegador sin cabeza en entornos CI/CD y la creación de pruebas de humo que validan los flujos de trabajo de los usuarios clave. Luego mostramos cómo implementar la ejecución paralela para maximizar la eficiencia de las pruebas, configurar GitLab CI/CD para la ejecución automática de pruebas en cada implementación y aplicar las mejores prácticas para una automatización de pruebas escalable y mantenible.

Descripción general de la solución

La solución incluye un ejecutor de pruebas de Python que ejecuta pruebas de humo, validación del flujo de trabajo de comercio electrónico para recorridos completos del usuario, integración de GitLab CI/CD para automatización y ejecución paralela para acelerar las pruebas. El modo sin cabeza ejecuta pruebas del navegador en segundo plano sin abrir una ventana del navegador, lo que funciona bien para pruebas automatizadas.

El siguiente diagrama ilustra el flujo de trabajo de prueba.

Analizamos los siguientes pasos para implementar pruebas de humo automatizadas con Amazon Nova Act:

Configure su proyecto y sus dependencias. Cree una prueba de humo con validación de inicio de sesión. Configure la validación para todo el flujo de trabajo de comercio electrónico. Configure el proceso de prueba automatizado. Configurar la ejecución paralela.

Requisitos previos

Para completar este tutorial, debe tener lo siguiente:

Configurar proyecto y dependencias

Crea tu proyecto e instala las dependencias:

# Cree y navegue hasta el proyecto uv init nova-act-smoke-tests # Abra en VS Code code nova-act-smoke-tests # Instale los paquetes necesarios uv add nova-act

UV es un rápido administrador de paquetes de Python que maneja automáticamente la instalación de dependencias y la administración del entorno virtual, similar a npm para proyectos de Node.js.

Crear un corredor de prueba

Crea smoke_tests.py:

importar sistema operativo desde nova_act importar NovaAct # Verifique la clave API si no os.getenv("NOVA_ACT_API_KEY"): exit("❌ Establecer la variable de entorno NOVA_ACT_API_KEY") SAUCEDEMO_URL = "https://www.saucedemo.com/" con NovaAct(starting_page=SAUCEDEMO_URL) como nova: nova.act("Verifique que esté en la página de inicio de sesión") print("✅ ¡Configuración de la base completa!")

Pruebe su configuración

Pruebe su configuración con los siguientes comandos:

exportar NOVA_ACT_API_KEY="tu-clave-api" uv ejecutar smoke_tests.py

Las variables de entorno como NOVA_ACT_API_KEY mantienen la información confidencial segura y separada de su código.

Esta solución implementa las siguientes características de seguridad:

Almacena claves API en variables de entorno o archivos .env (agregue .env a .gitignore) Utiliza diferentes claves API para entornos de desarrollo, ensayo y producción Implementa la rotación de claves cada 90 días mediante scripts automatizados o recordatorios de calendario Monitorea el uso de claves API a través de registros para detectar accesos no autorizados

Ahora tiene un proyecto Python moderno con Amazon Nova Act configurado y listo para probar. A continuación, mostramos cómo crear una prueba de humo funcional que utiliza la automatización del navegador en lenguaje natural.

Crear prueba de humo para la validación de inicio de sesión

Ampliemos su código básico para incluir una prueba de inicio de sesión completa con la estructura adecuada.

Agregar función principal y prueba de inicio de sesión

Actualizar smoke_tests.py:

import os from nova_act import NovaAct SAUCEDEMO_URL = "https://www.saucedemo.com/" def test_login_flow(): """Pruebe el flujo de inicio de sesión completo y la verificación de la página del producto""" con NovaAct(starting_page=SAUCEDEMO_URL) como nova: nova.act("Ingrese 'standard_user' en el campo de nombre de usuario") nova.act("Ingrese 'secret_sauce' en la contraseña field") nova.act("Haga clic en el botón de inicio de sesión") nova.act("Verifique que los productos aparezcan en la página") def main(): # Verifique la clave API si no os.getenv("NOVA_ACT_API_KEY"): exit("❌ Establezca la variable de entorno NOVA_ACT_API_KEY") print("🚀 Iniciando la prueba de humo de Nova Act") intente: test_login_flow() print("✅ Prueba de inicio de sesión: PASS") excepto excepción como e: print(f"❌ Prueba de inicio de sesión: FAIL – {e}") exit(1) print("🎉 ¡Todas las pruebas pasaron!") if __name__ == "__main__": main()

Pruebe su flujo de inicio de sesión

Ejecute su prueba de inicio de sesión completa:

exportar NOVA_ACT_API_KEY="tu-clave-api" uv ejecutar smoke_tests.py

Deberías ver el siguiente resultado:

🚀 Iniciando la prueba de humo NovaAct ✅ Prueba de inicio de sesión: PASA 🎉 ¡Todas las pruebas pasaron!

Su prueba de humo ahora valida un recorrido de usuario completo que utiliza lenguaje natural con Amazon Nova Act. La prueba maneja la verificación de la página para confirmar que está en la página de inicio de sesión, interacciones de formulario que ingresan las credenciales de nombre de usuario y contraseña, ejecución de acciones que hacen clic en el botón de inicio de sesión y validación exitosa que verifica que la página de productos se carga correctamente. El manejo de errores incorporado proporciona una lógica de reintento si el proceso de inicio de sesión encuentra algún problema, lo que muestra cómo la automatización impulsada por IA de Amazon Nova Act se adapta a aplicaciones web dinámicas sin la fragilidad de los marcos de prueba tradicionales basados ​​en selectores de CSS.

Aunque una prueba de inicio de sesión proporciona una validación valiosa, las aplicaciones del mundo real requieren probar flujos de trabajo de usuario completos que abarcan varias páginas e interacciones complejas. A continuación, ampliamos las capacidades de prueba mediante la creación de un recorrido de comercio electrónico integral que valide toda la experiencia del cliente.

Configurar la validación del flujo de trabajo de comercio electrónico

Creemos un flujo de trabajo de comercio electrónico integral que pruebe el recorrido del cliente de un extremo a otro, desde el inicio hasta el cierre de sesión.

Añadir prueba completa de comercio electrónico

Actualice smoke_tests.py para incluir el flujo de trabajo completo:

import os from nova_act import NovaAct SAUCEDEMO_URL = "https://www.saucedemo.com/" def test_login_flow(): """Pruebe el flujo de inicio de sesión completo y la verificación de la página del producto""" con NovaAct(starting_page=SAUCEDEMO_URL) como nova: nova.act("Ingrese 'standard_user' en el campo de nombre de usuario") nova.act("Ingrese 'secret_sauce' en la contraseña field") nova.act("Haga clic en el botón de inicio de sesión") nova.act("Verifique que los productos aparezcan en la página") def test_ecommerce_workflow(): """Pruebe el flujo de trabajo de comercio electrónico completo: iniciar sesión → comprar → pagar → cerrar sesión""" con NovaAct(starting_page=SAUCEDEMO_URL) como nova: # Iniciar sesión nova.act("Ingrese 'standard_user' en el campo de nombre de usuario") nova.act("Entrar 'secret_sauce' en el campo de contraseña") nova.act("Haga clic en el botón de inicio de sesión") nova.act("Verifique que los productos aparezcan en la página") # Compras nova.act("Seleccione la mochila Sauce Labs") nova.act("Agregue la mochila Sauce Labs al carrito") nova.act("Vuelva a la página de productos") nova.act("Seleccione el mono de Sauce Labs") nova.act("Agregue el mono de Sauce Labs al carrito") nova.act("Volver a la página de productos") # Verificación del carrito nova.act("Haga clic en el carrito y navegue a la página del carrito") nova.act("Verifique que haya 2 artículos en el carrito") # Proceso de pago nova.act("Haga clic en el botón Pagar") nova.act("Ingrese 'John' en el campo Nombre") nova.act("Ingrese 'Doe' en el campo Apellido") nova.act("Ingrese '12345' en el campo Código postal") nova.act("Haga clic en el botón Continuar") # Finalización del pedido nova.act("Verifique el pago: aparece la página de descripción general") nova.act("Haga clic en el botón Finalizar") nova.act("Verifique que 'GRACIAS POR SU PEDIDO' aparece en la página") # Regrese y cierre sesión nova.act("Haga clic en el botón Volver a inicio") nova.act("Haga clic en el menú de hamburguesas a la izquierda") nova.act("Haga clic en el enlace Cerrar sesión") nova.act("Verifique que el usuario esté en la página de inicio de sesión") def main(): # Verifique la clave API si no os.getenv("NOVA_ACT_API_KEY"): exit("❌ Establezca la variable de entorno NOVA_ACT_API_KEY") print("🚀 Iniciando las pruebas de comercio electrónico de Nova Act") tests = [ ("Flujo de inicio de sesión", test_login_flow), ("Flujo de trabajo de comercio electrónico", test_ecommerce_workflow) ] pasó = 0 para test_name, test_func en pruebas: intente: test_func() print(f"✅ {test_name}: PASS") pasó += 1 excepto Excepción como e: print(f"❌ {test_name}: FAIL – {e}") print(f"n📊 Resultados: {pasó}/{len(tests)} pruebas pasadas") si pasó == len(pruebas): print("🎉 ¡Todas las pruebas pasaron!") else: exit(1) if __name__ == "__main__": main()

Pruebe su flujo de trabajo de comercio electrónico

Ejecute su conjunto de pruebas completo:

exportar NOVA_ACT_API_KEY="tu-clave-api" uv ejecutar smoke_tests.py

Deberías ver el siguiente resultado:

🚀 Inicio de las pruebas de comercio electrónico de Nova Act ✅ Flujo de inicio de sesión: APROBADO ✅ Flujo de trabajo de comercio electrónico: APROBADO 📊 Resultados: 2/2 pruebas aprobadas 🎉 ¡Todas las pruebas aprobadas!

Comprender el viaje del comercio electrónico

El flujo de trabajo prueba una experiencia completa del cliente:

Autenticación: inicie sesión con credenciales válidas Descubrimiento de productos: busque y seleccione productos Carrito de compras: agregue artículos y verifique el contenido del carrito Proceso de pago: ingrese la información de envío Finalización del pedido: complete la compra y verifique el éxito Navegación: regrese a los productos y cierre sesión

La siguiente captura de pantalla muestra la guía visual paso a paso del recorrido del usuario.

Demostración interactiva del proceso de pago de compras en línea, desde la revisión del carrito hasta la confirmación del pedido.

Sus pruebas de humo ahora validan recorridos completos de los usuarios que reflejan las experiencias reales de los clientes. El flujo de trabajo de comercio electrónico muestra cómo Amazon Nova Act maneja procesos complejos de varios pasos en varias páginas. Al probar todo el recorrido del cliente, desde la autenticación hasta la finalización del pedido, está validando los flujos de trabajo principales que generan ingresos en su aplicación.

Este enfoque reduce los gastos generales de mantenimiento al tiempo que proporciona una cobertura integral de la funcionalidad principal de su aplicación.

La ejecución manual de estas pruebas proporciona un valor inmediato, pero el verdadero poder proviene de integrarlas en su flujo de trabajo de desarrollo. La automatización de la ejecución de pruebas garantiza que los cambios de código se validen con respecto a los recorridos críticos de los usuarios antes de llegar a producción.

Configurar el proceso de pruebas automatizadas

Con su flujo de trabajo de comercio electrónico integral implementado, está listo para integrar estas pruebas en su canal de CI. Este paso muestra cómo configurar GitLab CI/CD para ejecutar automáticamente estas pruebas de humo en cada cambio de código, asegurándose de que los recorridos de los usuarios clave sigan siendo funcionales durante todo el ciclo de desarrollo. Mostramos cómo configurar el modo sin cabeza para entornos de CI mientras mantenemos las capacidades de depuración visual para el desarrollo local.

Agregar modo sin cabeza para CI/CD

Actualice smoke_tests.py para admitir el modo sin cabeza para entornos de CI agregando las siguientes líneas a ambas funciones de prueba:

def test_login_flow(): """Prueba el flujo de inicio de sesión completo y la verificación de la página del producto""" headless = os.getenv("HEADLESS", "false").lower() == "true" con NovaAct(starting_page=SAUCEDEMO_URL, headless=headless) como nova: # … el resto del código de prueba sigue siendo el mismo def test_ecommerce_workflow(): """Prueba el flujo de trabajo completo del comercio electrónico: iniciar sesión → comprar → finalizar la compra → cerrar sesión""" headless = os.getenv("HEADLESS", "false").lower() == "true" con NovaAct(starting_page=SAUCEDEMO_URL, headless=headless) como nova: # … el resto del código de prueba sigue siendo el mismo

Crear flujo de trabajo de acciones de GitHub

GitLab CI/CD es el sistema de CI integrado de GitLab que ejecuta automáticamente canalizaciones cuando se producen cambios en el código. Las canalizaciones se definen en archivos YAML que especifican cuándo ejecutar pruebas y qué pasos ejecutar.

Cree .gitlab-ci.yml:

etapas: – pruebas de humo de prueba: etapa: imagen de prueba: mcr.microsoft.com/playwright/python:v1.40.0-jammy reglas: – si: $CI_COMMIT_BRANCH == "principal" – si: $CI_COMMIT_BRANCH == "desarrollar" – si: $CI_PIPELINE_SOURCE == "merge_request_event" – si: $CI_PIPELINE_SOURCE == "web" before_script: – pip install uv – uv sync – uv run playwright install chromium script: – uv run python smoke_tests.py variables: HEADLESS: 'verdadero' NOVA_ACT_SKIP_PLAYWRIGHT_INSTALL: 'verdadero'

Configurar variables de GitLab CI/CD

Las variables CI/CD de GitLab proporcionan almacenamiento seguro para información confidencial como claves API. Estos valores están cifrados y solo son accesibles para sus canalizaciones de CI/CD de GitLab. Complete los siguientes pasos para agregar una variable:

En su proyecto, elija Configuración, CI/CD y Variables. Elija Agregar variable. Para la clave, ingrese NOVA_ACT_API_KEY. Para obtener el valor, ingrese su clave API de Amazon Nova Act. Seleccione Enmascarar variable para ocultar el valor en los registros de trabajo. Elija Agregar variable.

Comprender los cambios de código

El cambio clave es la configuración del modo sin cabeza:

headless = os.getenv("HEADLESS", "false").lower() == "true" con NovaAct(starting_page=SAUCEDEMO_URL, headless=headless) como nova:

Esta configuración proporciona flexibilidad para diferentes entornos de desarrollo. Durante el desarrollo local, cuando la variable de entorno HEADLESS no está configurada, el parámetro headless tiene por defecto False, lo que abre una ventana del navegador para que pueda ver la automatización en acción. Esta retroalimentación visual es invaluable para depurar fallas de prueba y comprender cómo interactúa Amazon Nova Act con su aplicación. En entornos CI/CD donde HEADLESS está configurado en verdadero, el navegador se ejecuta en segundo plano sin abrir ninguna ventana, lo que lo hace ideal para procesos de prueba automatizados que no tienen capacidades de visualización y necesitan ejecutarse de manera eficiente sin sobrecarga visual.

Pruebe su configuración de CI/CD

Inserte su código para activar el flujo de trabajo:

git agregar. git commit -m "Agregar pruebas de humo de Nova Act con CI/CD" git push origin main

Consulte la sección Pipelines en su proyecto GitLab para ver las pruebas en ejecución.

Vista de canalización de GitLab que muestra pruebas de humo en ejecución con indicadores de estado, información de sucursales y controles de acción

Sus pruebas de humo ahora se ejecutan automáticamente como parte de su proceso de CI, lo que proporciona información inmediata sobre los cambios de código. La integración de GitLab CI/CD garantiza que los recorridos críticos de los usuarios se validen antes de que cualquier implementación llegue a producción, lo que reduce el riesgo de enviar funcionalidades rotas a los clientes.

La implementación muestra cómo la gestión moderna de paquetes con UV reduce el tiempo de ejecución de la canalización de CI/CD en comparación con las instalaciones de tuberías tradicionales. Combinado con la administración segura de claves API a través de variables CI/CD de GitLab, su infraestructura de pruebas sigue las mejores prácticas de seguridad empresarial.

A medida que su conjunto de pruebas crece, es posible que observe que ejecutar pruebas de forma secuencial puede convertirse en un cuello de botella en su proceso de implementación. La siguiente sección aborda este desafío implementando la ejecución paralela para maximizar su eficiencia de CI/CD.

Configurar la ejecución paralela

Una vez que su canal de CI/CD valide con éxito casos de prueba individuales, la siguiente optimización se centra en la mejora del rendimiento mediante la ejecución paralela. La ejecución simultánea de pruebas puede reducir el tiempo total de prueba al ejecutar varias instancias del navegador simultáneamente, maximizando la eficiencia de sus recursos de CI/CD y al mismo tiempo manteniendo la confiabilidad y el aislamiento de las pruebas.

Agregar marco de ejecución paralela

Actualice smoke_tests.py para admitir pruebas simultáneas:

import os from concurrent.futures import ThreadPoolExecutor, as_completed from nova_act import NovaAct SAUCEDEMO_URL = "https://www.saucedemo.com/" headless = os.getenv("HEADLESS", "false").lower() == "true" def test_login_flow(): """Pruebe el flujo de inicio de sesión completo y la verificación de la página del producto""" con NovaAct(starting_page=SAUCEDEMO_URL, headless=headless) as nova: nova.act("Ingrese 'standard_user' en el campo de nombre de usuario") nova.act("Ingrese 'secret_sauce' en el campo de contraseña") nova.act("Haga clic en el botón de inicio de sesión") # nova.act("En caso de error, asegúrese de que el nombre de usuario y la contraseña sean correctos; si es necesario, vuelva a ingresar el nombre de usuario y la contraseña") nova.act("Verifique que aparezcan los productos en la página") def test_ecommerce_workflow(): """Pruebe el flujo de trabajo completo del comercio electrónico: iniciar sesión → comprar → pagar → cerrar sesión""" con NovaAct(starting_page=SAUCEDEMO_URL, headless=headless) como nova: # Iniciar sesión nova.act("Ingrese 'standard_user' en el campo de nombre de usuario") nova.act("Ingrese 'secret_sauce' en el campo de contraseña") nova.act("Haga clic en iniciar sesión botón") nova.act("Verificar que los productos aparezcan en la página") # Compras nova.act("Seleccione la mochila Sauce Labs") nova.act("Agregar la mochila Sauce Labs al carrito") nova.act("Volver a la página de productos") nova.act("Seleccionar el mono de Sauce Labs") nova.act("Agregar el mono de Sauce Labs al carrito") nova.act("Volver a la página de productos") # Verificación del carrito nova.act("Haga clic en el carrito y Navegue a la página del carrito") nova.act("Verifique que haya 2 artículos en el carrito") # Proceso de pago nova.act("Haga clic en el botón Pagar") nova.act("Ingrese 'John' en el campo Nombre") nova.act("Ingrese 'Doe' en el campo Apellido") nova.act("Ingrese '12345' en el campo Código postal") nova.act("Haga clic en el botón Continuar") # Finalización del pedido nova.act("Verificar pago: aparece la página de descripción general") nova.act("Haga clic en el botón Finalizar") nova.act("Verifique que aparezca 'GRACIAS POR SU PEDIDO' en la página") # Regresar y cerrar sesión nova.act("Haga clic en el botón Volver a inicio") nova.act("Haga clic en el menú de hamburguesas a la izquierda") nova.act("Haga clic en el enlace Cerrar sesión") nova.act("Verifique que el usuario esté en la página de inicio de sesión") def run_test(test_name, test_func): """Ejecutar una sola prueba y devolver el resultado""" try: test_func() print(f"✅ {test_name}: PASS") return True excepto Excepción como e: print(f"❌ {test_name}: FAIL – {e}") return False def main(): # Verifique la clave API si no os.getenv("NOVA_ACT_API_KEY"): exit("❌ Set Variable de entorno NOVA_ACT_API_KEY") print("🚀 Iniciando pruebas de Nova Act (paralelo)") tests = [ ("Login Flow", test_login_flow), ("E-commerce Workflow", test_ecommerce_workflow) ] # Configurar la ejecución paralela max_workers = int(os.getenv("MAX_WORKERS", "2")) # Ejecutar pruebas en paralelo resultados =[]con ThreadPoolExecutor(max_workers=max_workers) como ejecutor: Future_to_test = { executor.submit(run_test, name, func): nombre por nombre, func en pruebas } para futuro en as_completed(future_to_test): results.append(future.result()) # Informar resultados aprobados = suma(resultados) total = len(resultados) print(f"n📊 Resultados: {aprobado}/{total} pruebas aprobadas") si se aprobó == total: print("🎉 ¡Todas las pruebas aprobadas!") else: exit(1) if __name__ == "__main__": main()

Actualice GitLab CI/CD para ejecución paralela

La ejecución paralela ya está configurada en su .gitlab-ci.yml con la variable MAX_WORKERS= "2". La tubería utiliza automáticamente el marco paralelo al ejecutar las pruebas de humo.

Probar la ejecución paralela

Ejecute sus pruebas optimizadas:

exportar NOVA_ACT_API_KEY="tu-clave-api" exportar MAX_WORKERS="2" uv ejecutar smoke_tests.py

Deberías ver ambas pruebas ejecutándose simultáneamente:

🚀 Inicio de las pruebas de Nova Act (paralelo) ✅ Flujo de inicio de sesión: APROBADO ✅ Flujo de trabajo de comercio electrónico: APROBADO 📊 Resultados: 2/2 pruebas aprobadas 🎉 ¡Todas las pruebas aprobadas!

Comprender la ejecución paralela

ThreadPoolExecutor es una clase de Python que administra un grupo de subprocesos de trabajo, lo que permite ejecutar múltiples tareas simultáneamente. En este caso, cada subproceso ejecuta una prueba de navegador independiente, lo que reduce el tiempo total de ejecución.

# Configurar el recuento de trabajadores max_workers = int(os.getenv("MAX_WORKERS", "2")) # Ejecutar pruebas simultáneamente con ThreadPoolExecutor(max_workers=max_workers) como ejecutor: Future_to_test = { executor.submit(run_test, name, func): nombre por nombre, func en pruebas }

La ejecución paralela proporciona beneficios como una ejecución más rápida (porque las pruebas se ejecutan simultáneamente en lugar de secuencialmente), trabajadores configurables que se ajustan en función de los recursos del sistema, eficiencia de recursos que optimiza el tiempo de procesamiento de CI/CD y escalabilidad que hace que sea sencillo agregar más pruebas sin aumentar el tiempo de ejecución total.

Sin embargo, hay consideraciones importantes a tener en cuenta. Cada prueba abre una instancia del navegador (lo que aumenta el uso de recursos), las pruebas deben ser independientes entre sí para mantener un aislamiento adecuado y debe equilibrar el recuento de trabajadores con los límites de memoria y CPU disponibles en entornos de CI.

Cada prueba paralela utiliza recursos del sistema e implica el uso de API. Comience con dos trabajadores y ajuste según la capacidad y los requisitos de costos de su entorno. Supervise su uso de Amazon Nova Act para optimizar el equilibrio entre la velocidad de las pruebas y los gastos.

La mejora del rendimiento es significativa cuando se compara la ejecución secuencial con la paralela. En la ejecución secuencial, las pruebas se ejecutan una tras otra y el tiempo total es la suma de todas las duraciones de las pruebas individuales. Con la ejecución paralela, se ejecutan varias pruebas simultáneamente, completándose aproximadamente en el tiempo de la prueba más larga, lo que genera ahorros de tiempo sustanciales que se vuelven más valiosos a medida que crece su conjunto de pruebas.

Sus pruebas de humo ahora cuentan con ejecución simultánea que reduce significativamente el tiempo total de prueba y al mismo tiempo mantiene un aislamiento y confiabilidad completos de la prueba. La implementación de ThreadPoolExecutor permite que se ejecuten múltiples instancias del navegador simultáneamente, transformando su conjunto de pruebas secuenciales en una ejecución paralela que se completa mucho más rápido. Esta mejora del rendimiento se vuelve cada vez más valiosa a medida que crece su conjunto de pruebas, por lo que la validación integral no se convierte en un cuello de botella en su proceso de implementación.

El recuento de trabajadores configurable a través de la variable de entorno MAX_WORKERS proporciona flexibilidad para optimizar el rendimiento en función de los recursos disponibles del sistema. En entornos CI/CD, esto le permite equilibrar la velocidad de ejecución de las pruebas con las limitaciones de recursos, y el desarrollo local puede utilizar capacidades completas del sistema para ciclos de retroalimentación más rápidos. La arquitectura mantiene una total independencia de las pruebas, asegurándose de que la ejecución paralela no introduzca fallas o dependencias entre pruebas que puedan comprometer la confiabilidad. Como práctica recomendada, mantenga las pruebas independientes: cada prueba debería funcionar correctamente independientemente del orden de ejecución o de otras pruebas que se ejecuten simultáneamente.

Mejores prácticas

Una vez que haya completado su marco de pruebas de rendimiento optimizado, considere las siguientes prácticas para la preparación para la producción:

Mantenga las pruebas independientes. Las pruebas no se ven afectadas por el orden de ejecución ni por otras pruebas que se ejecutan simultáneamente. Agregue lógica de reintento envolviendo sus funciones de prueba en bloques try-catch con un mecanismo de reintento para manejar problemas transitorios de red. Configure su proceso de CI/CD de GitLab con un tiempo de espera razonable y considere agregar una ejecución programada para la validación diaria de su entorno de producción. Para un mantenimiento continuo, establezca un cronograma de rotación para sus claves de API de Amazon Nova Act y supervise los tiempos de ejecución de sus pruebas para detectar las regresiones de rendimiento con anticipación. A medida que su aplicación crece, puede agregar nuevas funciones de prueba al marco de ejecución paralela sin afectar el tiempo de ejecución general, lo que hace que esta solución sea altamente escalable para necesidades futuras.

Limpiar

Para evitar incurrir en cargos futuros y mantener la seguridad, limpie los recursos que creó:

Elimine o deshabilite las canalizaciones de GitLab CI/CD no utilizadas. Rote las claves API cada 90 días y revoque las claves no utilizadas. Elimine los repositorios proporcionados con esta publicación. Elimine las claves API de proyectos inactivos. Borre las credenciales almacenadas en caché y los archivos temporales de su entorno local.

Conclusión

En esta publicación, mostramos cómo implementar pruebas de humo automatizadas utilizando el modo sin cabeza de Amazon Nova Act para canalizaciones de CI/CD. Demostramos cómo crear pruebas integrales de flujo de trabajo de comercio electrónico que validen los recorridos de los usuarios, implementen la ejecución paralela para completar las pruebas más rápidamente e integren pruebas automatizadas con GitLab CI/CD para una validación continua.

El enfoque de lenguaje natural que utiliza Amazon Nova Act necesita menos mantenimiento que los marcos tradicionales que utilizan selectores de CSS. Combinada con herramientas modernas como la gestión de paquetes UV y GitLab CI/CD, esta solución proporciona una ejecución de pruebas rápida y confiable que se adapta a su flujo de trabajo de desarrollo. Su implementación ahora detecta problemas antes de que lleguen a producción, proporcionando la retroalimentación rápida esencial para una implementación continua segura y al mismo tiempo manteniendo altos estándares de calidad de las aplicaciones.

Para obtener más información sobre la automatización del navegador y las estrategias de prueba en AWS, explore los siguientes recursos:

Intente implementar estas pruebas de humo en sus propias aplicaciones y considere ampliar el marco con escenarios de prueba adicionales que coincidan con sus recorridos de usuario específicos. Comparta su experiencia y cualquier optimización que descubra en la sección de comentarios.

Sobre los autores

Sakthi Chellapparimanam Sakthivel es arquitecto de soluciones en AWS y se especializa en modernización de .NET y transformaciones de la nube empresarial. Ayuda a GSI y a los clientes de software/servicios a crear soluciones escalables e innovadoras en AWS. Diseña marcos de automatización inteligentes y aplicaciones impulsadas por GenAI que impulsan resultados comerciales mensurables en diversas industrias. Más allá de sus actividades técnicas, a Sakthivel le gusta pasar tiempo de calidad con su familia y jugar al cricket.

Shyam Soundar es arquitecto de soluciones en AWS con una amplia experiencia en seguridad, optimización de costos y ofertas de análisis. Shyam trabaja con clientes empresariales para ayudarlos a crear y escalar aplicaciones para lograr sus resultados comerciales con un costo menor.

Reena M es arquitecta de soluciones FSI en AWS y se especializa en análisis y cargas de trabajo generativas basadas en IA, ayudando a los mercados de capitales y a los clientes bancarios a crear soluciones seguras, escalables y eficientes en AWS. Ella diseña plataformas de datos de vanguardia y aplicaciones impulsadas por inteligencia artificial que transforman la forma en que las instituciones financieras aprovechan las tecnologías de la nube. Más allá de sus actividades técnicas, Reena también es escritora y le gusta pasar tiempo con su familia.