Este proyecto tiene como objetivo automatizar pruebas de interfaz de usuario (UI) para una "Practice Page" utilizando Playwright con TypeScript. Se implementa el patrón Page Object Model (POM) para lograr mayor modularidad, mantenibilidad y escalabilidad en las pruebas.
- Automatizar pruebas UI de manera robusta y escalable.
- Implementar el patrón POM para separar responsabilidades.
- Integrar Allure para la generación de reportes detallados.
-
Capa de Objetos de Página (Page Objects):
- BasePage: Clase base para encapsular acciones comunes como la navegación.
- PracticePage: Gestiona interacciones con elementos de la página, incluyendo:
- Radio Buttons (seleccionados con atributos combinados).
- Checkboxes (accedidos por su id).
- Dropdown (
<select>
identificado por su id). - Alertas y confirmaciones (manejo de diálogos de JavaScript en Playwright).
- Mouse Hover (para visualizar contenidos adicionales).
- TableHandler: Maneja la extracción de datos de tablas a través de selectores específicos.
- PageObjectManager: Centraliza la instancia de las páginas para facilitar la reutilización en los tests.
-
Capa de Pruebas (Tests):
- Los tests se encuentran en la carpeta
tests/demo
y utilizan los Page Objects para ejecutar escenarios de prueba.
- Los tests se encuentran en la carpeta
El proyecto utiliza Allure para generar reportes detallados:
- Se configura Allure en
playwright.config.ts
para recoger resultados en el directorioallure-results
. - Se utiliza
allure.step
en los métodos del POM para documentar cada acción significativa y facilitar el diagnóstico de errores en los reportes.
Para ejecutar las pruebas, utiliza el siguiente comando:
npx playwright test
Para generar y visualizar el reporte de Allure, ejecuta:
npx allure generate allure-results && npx allure open allure-report
-
Objetivo y Alcance: Automatización de pruebas UI para una "Practice Page" mediante Playwright y TypeScript, aplicando el patrón POM.
-
Estructura del Proyecto:
- Page Objects: BasePage, PracticePage, TableHandler.
- Tests ubicados en
tests/demo
y gestión centralizada con PageObjectManager.
-
Integración con Allure: Reportes detallados configurados mediante
playwright.config.ts
y uso deallure.step
. -
Ventajas:
- Modularidad y mantenibilidad.
- Reportes claros y detallados.
- Reutilización de código para múltiples escenarios de prueba.
El proyecto fue inicialmente desarrollado como parte de una entrevista de trabajo y ahora se utiliza como parte del portfolio en GitHub, demostrando habilidades en automatización de pruebas y buenas prácticas en ingeniería de software.
- Node.js
- npm
- Playwright
- Allure Commandline
-
Clona el repositorio:
git clone https://github.com/fcabanilla/interview-demo
-
Instala las dependencias:
npm install
-
Configura Playwright (si es necesario, ejecuta):
npx playwright install
/tests/demo
: Contiene los archivos de prueba./pages
: Contiene los Page Objects./allure-results
: Directorio generado para los resultados de Allure./allure-report
: Directorio generado para los reportes de Allure.
Aquí tienes el contenido modificado y completado:
Las contribuciones son bienvenidas. Si deseas mejorar el proyecto, por favor abre un issue para discutir los cambios importantes o envía un pull request con tus propuestas. Asegúrate de seguir las buenas prácticas de desarrollo, incluir pruebas y documentar adecuadamente tus cambios.
Este proyecto se distribuye bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más información.
Para consultas, sugerencias o colaboraciones, puedes contactarme a través de mi perfil de GitHub: fcabanilla o enviarme un correo a federico.cabanilla@gmail.com.
Las pruebas fueron realizadas para la siguiente página web:
Practice Page