{"id":23892339,"url":"https://github.com/upex-galaxy/seleniumjava-template-gx","last_synced_at":"2025-08-03T23:36:22.238Z","repository":{"id":203010439,"uuid":"619514162","full_name":"upex-galaxy/seleniumjava-template-gx","owner":"upex-galaxy","description":"✅ Repositorio oficial de Selenium-Java Al Grano de UPEX","archived":false,"fork":false,"pushed_at":"2024-03-06T12:49:14.000Z","size":132,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"QA","last_synced_at":"2025-03-24T11:07:39.725Z","etag":null,"topics":["cucumber","maven","selenium-java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/upex-galaxy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-27T09:42:05.000Z","updated_at":"2024-11-24T20:39:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"4f8193a6-8fd6-4ecb-b408-a3675c6e1f0a","html_url":"https://github.com/upex-galaxy/seleniumjava-template-gx","commit_stats":null,"previous_names":["upex-galaxy/selenium-java","upex-galaxy/seleniumjava-template-gx"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upex-galaxy%2Fseleniumjava-template-gx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upex-galaxy%2Fseleniumjava-template-gx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upex-galaxy%2Fseleniumjava-template-gx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upex-galaxy%2Fseleniumjava-template-gx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upex-galaxy","download_url":"https://codeload.github.com/upex-galaxy/seleniumjava-template-gx/tar.gz/refs/heads/QA","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217084,"owners_count":21066633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cucumber","maven","selenium-java"],"created_at":"2025-01-04T13:46:06.128Z","updated_at":"2025-04-10T12:14:47.445Z","avatar_url":"https://github.com/upex-galaxy.png","language":"Java","readme":"[![🤖CI Regression in QA🧪](https://github.com/upex-galaxy/selenium-java/actions/workflows/regression.yml/badge.svg)](https://github.com/galaxy/selenium-java/actions/workflows/regression.yml)\n\n[![vscode-logo]][vscode-site] [![selenium-logo]][selenium-site] [![java-logo]][java-site]\n\n# 🧪Testing Automation: Selenium 4 Java con Maven\n\n![upexGX_seleniumjava](https://github.com/upex-galaxy/L1-seljava-demo/assets/91127281/3d5a98c8-7e2b-49ac-8390-4f97b4548628)\n\nEste es un proyecto Oficial de UPEX para usar Selenium4 usando Java y Maven.\n\n## INSTALACIÓN Y CÓMO EMPEZAR:\n\n1. Asegurarse de tener instalado JAVA (versión 20) y MAVEN (versión 3 o superior).\n2. Asegurarse de tener la variable de environment JAVA_HOME y MAVEN_HOME en la variable PATH del sistema.\n3. Reiniciar VSCODE por si acaso, y verifica si tienes java v20 y Maven en VSCODE corriendo:\n\n    ```bash\n    java --version\n    mvn --version\n    ```\n\n4. Para clonar el repositorio, ejecuta el siguiente comando:\n\n    ```bash\n    git clone https://github.com/upex-galaxy/selenium-java.git\n    ```\n\n5. Una vez descargado y dentro del Repo, automáticamente JAVA y MAVEN detectarán los paquetes para instalar las dependencias del archivo pom.xml, dado\n   que el nombre del archivo del proyecto es igual al `\u003cartifactId\u003e` del archivo pom.xml. (Esto es importante)\n\n6. [**IMPORTANTE**]: Recuerda ejecutar en la terminal el siguiente comando para compilar el proyecto y crear todos los correspondientes classpaths de\n   los archivos del repo:\n\n    ```bash\n    mvn clean package\n    ```\n\n7. Para comprobar que todo está instalado, EJECUTA el comando de pruebas E2E:\n\n    ```bash\n    mvn verify -Dheadless=true\n    ```\n\n    Cuyo comando ejecutará todas las pruebas activas Automatizadas de Selenium que tiene el repo (en modo headless, sin aparecer el navegador en\n    pantalla). \u003cbr\u003e **(Puedes detener esta ejecución de pruebas si te parece larga con Ctrl+C en la terminal)**\n\n8. [**PLUS**]: Como todo proyecto con \"Reporte de Pruebas\" es necesario tener una dependencia de Reportes. En nuestro caso, usaremos el MEJOR forever\n   \"Allure\". Deberás descargar e instalarlo con un comando.\n    - Para comenzar, ejecuta el siguiente comando que descargará Allure en tu repo local (cuyo directorio está ignorado por git para evitar problemas\n      de almacenamiento):\n        ```bash\n        mvn allure:serve\n        ```\n    - Luego de haberse creado la carpeta correspondiente de .allure en el directorio principal, se ejecutará automáticamente el servidor en un puerto\n      local desde tu archivo generado index.html; posiblemente te abrirá el navegador por defecto automáticamente con vista a Allure Reports.\n    - Para más información sobre ALLURE REPORTS con JUnit5 y Maven visita:\n        - [AllureReports.org](https://allurereport.org/docs/junit5/)\n        - [GitHub-Allure-Maven](https://github.com/allure-framework/allure-maven)\n\n# EJECUCIÓN DE PRUEBAS CON SELENIUM\n\n### En Visual Studio Code:\n\nPara ejecutar las pruebas, abre Visual Studio Code y asegúrate de tener el Test Runner instalado. Si no lo tienes, puedes instalarlo desde la sección\nde extensiones de Visual Studio Code.\n\nDespués, abre el archivo de prueba que deseas ejecutar y haz clic en el botón de \"Run\" que aparece al lado del nombre del archivo. Esto ejecutará\ntodas las pruebas dentro del archivo.\n\n### En la Terminal:\n\nEste proyecto utiliza un Plugin de Maven para correr las pruebas de Integración E2E. Para correr todas las pruebas, ejecuta el siguiente comando en la\nterminal de VSCODE: del proyecto:\n\n```bash\nmvn verify\n```\n\nPara correr pruebas en modo HEADLESS (significa que no va abrir el navegador en tu pantalla y que las pruebas se estarán corriendo como en\nbackground):\n\n```bash\nmvn verify -Dheadless=true\n```\n\nEl comando `-D` de Maven se usa para declarar parámetros en la ejecución del comando, en este caso se usa un parámetro llamado \"headless\", cuyo\nparámetro del sistema es usado en las configuraciones del archivo de DriverManager para las pruebas automatizadas de selenium, haciendo que cuando una\nprueba se corra con este parámetro en la terminal, se pueda declarar el argumento `true` de headless para que las pruebas se corran sin abrir el\nnavegador, lo cual es importante para el CI sobretodo.\n\nPara correr pruebas específicas, utiliza el parámetro `it.test` de Maven en el `-D`, es decir, así: `-Dit.test`. Por ejemplo si quieres correr solo\nlas pruebas en el archivo clase: `FirstTest.java`, ejecuta el siguiente comando:\n\n```bash\nmvn verify -Dit.test=FirstTest\n```\n\nRecuerda que si utilizas Visual Studio Code, puedes correr pruebas directamente utilizando la extensión Java Test Runner, cuya función está en el\npanel de navegación a un costado del Visual Studio Code.\n\n**NO OLVIDES, generar el Reporte de Pruebas con \"Allure\" para compartir tus resultados de prueba con el equipo de trabajo o tus managers!**\n\n# ESTRUCTURA DEL REPOSITORIO DE PRUEBAS\n\nEl proyecto de Automatización Selenium-Java está estructurado de la siguiente manera:\n\n```bash\n├── src\n│   ├── test\n│   │   ├── java\n│   │   │   └── e2e\n│   │   │       ├── fixtures\n│   │   │       │   ├── DriverManager.java\n│   │   │       │   └── TestBase.java\n│   │   │       ├── hooks\n│   │   │       ├── page\n│   │   │       │   └── LoginPage.java\n│   │   │       ├── steps\n│   │   │       │   ├── Account\n│   │   │       │       └── LoginTest.java\n│   │   │       └── utils\n│   │   │           └── Action.java\n│   │   │           ├── Assertion.java\n│   │   │           └── Locator.java\n│   │   └── resources\n│   │       ├── features\n│   │       │   └── ....\n│   │       └── allure.properties\n│   │       ├── cucumber.properties\n│   │       └── log4j.properties\n│   └── test-plan\n│       └── in-sprint\n│           └── S21\n│               └── GX2-4919.md\n```\n\n## USAR el TestBase para diseñar y correr las pruebas\n\nEl TestBase es una clase de utilidad que proporciona algunos métodos para la configuración del navegador y la inicialización de WebDriver. Si quieres\nutilizar esta clase en tus pruebas, simplemente extiende tu clase de prueba con TestBase y utiliza las 3 clases fundamentales de las pruebas:\n\n-   `web` =\u003e es la instancia del WebDriver por cada test.\n-   `get` =\u003e es la instancia de la clase \"Locator\" para usar selectores de una forma más legibley directa.\n-   `Do` =\u003e es la instancia de la clase \"Action\" para usar acciones importantes con los elementos o screenshots.\n-   `then` =\u003e es la instancia de los Assertions que comienzan con \"should\" para validaciones.\n\n```java\npublic class SuiteTest extends TestBase {\n\n  @Test\n  @DisplayName(\"GX-123 TC1: Verificar formulario de Facturación\")\n  public void fillForm() {\n    // Aquí puedes utilizar los métodos del TestBase directamente...\n  }\n}\n```\n\n---\n\n# PLAN DE PRUEBA: ESTRATEGIA Y DISEÑO\n\n### 🚩NORMATIVAS A SEGUIR:\n\n1. Perfecta Nomenclatura del nombre de Archivo de prueba: \u003cbr\u003e `{StoryShortName}Test.java ej: addToCartTest.java`\n2. Archivo de Prueba dentro del directorio de Steps correspondiente, ejemplo: \u003cbr\u003e `src/test/java/e2e/steps/FirstTest.java`.\n3. **En caso de usar PageObjectModel**: Chequear que el \"Page.java\" esté dentro de la carpeta \"pages\" en la de \"support\", ejemplo: \u003cbr\u003e\n   `src/test/java/e2e/page/ProductsPage.java`.\n4. **En caso de usar el CI Pipeline**: Usar únicamente el archivo predeterminado del proyecto `sanity.yml`, y asegurarse de modificarlo correctamente\n   (Solo cambiar el Path del Test Suite) y no borrar o cambiar nada más, que funcione y pase los Checks. El archivo `regression.yml` se ejecutará\n   automaticamente cuando los cambios hayan mergeado a QA.\n5. **En caso de usar Cucumber**: Chequear que el archivo Gherkin (.feature) y los StepDefinitions (.java) estén correctamente diseñados y que la\n   Ejecución en CI funcione y pase los Checks.\n\n---\n\n# 🚩NIVELES DE TESTER QA en UPEX Galaxy:\n\nEl programa **UPEX Galaxy** está diseñado para guiar a los Testers a través de 2 Etapas (Career Paths). Cada Etapa conlleva ciertos **NIVELES** que el\nTester debe alcanzar para llegar a su mayor **SENIORITY**:\n\n## QA Engineer (Pruebas Manuales)\n\nCapacidad de realizar análisis, planificación, ejecución y gestión de:\n\n-   Pruebas Manuales de UI\n-   Bases de Datos\n-   API Testing\n\n### 🧪L1\n\nCapaz de realizar tareas (US) sencillas de frontend sin mucha complejidad.\n\n##### Prácticas:\n\n-   Entiende y puede seguir guías y protocolos de prueba previamente definidos.\n-   Identifica errores obvios en la interfaz y reporta con claridad.\n-   Familiarizado con herramientas básicas de testing y reporting.\n-   Capaz de realizar pruebas de regresión siguiendo casos de prueba definidos.\n\n### 🧪L2\n\nCapaz de realizar tareas (US) avanzadas de frontend y también tareas de Backend (Pruebas de Bases de Datos y Pruebas de API).\n\n##### Prácticas:\n\n-   Realiza pruebas exploratorias identificando puntos críticos en las aplicaciones.\n-   Puede diseñar casos de prueba simples basados en requisitos.\n-   Familiarizado con SQL básico para realizar pruebas en Bases de Datos.\n-   Inicia pruebas básicas en APIs usando herramientas como Postman o similares.\n-   Entiende la importancia de ciclos de vida de defectos y los gestiona correctamente.\n\n### 🧪L3\n\nCapaz de realizar tareas (US) de performance y/o diseñar nuevas Historias de Usuario.\n\n##### Prácticas:\n\n-   Diseña y ajusta casos de prueba complejos basados en cambios de requisitos.\n-   Identifica y reporta problemas de rendimiento usando herramientas básicas.\n-   Realiza pruebas exploratorias avanzadas e identifica áreas no cubiertas.\n-   Gestiona los Planes de Prueba (Cobertura, Regresión, Sanity, Smoke) de manera efectiva.\n-   Ofrece guía y mentoría a testers de niveles inferiores (Capacidad de ser Tutor).\n-   Tiene una comprensión básica sobre automatización de pruebas.\n\n## QA Automation Engineer (Pruebas Automatizadas)\n\nCapacidad de realizar análisis, planificación, ejecución y gestión de:\n\n-   Pruebas Automatizadas de E2E\n-   Integration Testing (Aplicando para cualquiera de los Frameworks de automatización de Browsers/Apps)\n\n### 🧪L3\n\nCapaz de realizar tareas (TechDept) para Automatizar pruebas UI de historias implementadas.\n\n##### Prácticas:\n\n-   Capaz de manejar el flujo completo de trabajo ordinario.\n-   Capaz de realizar pruebas Frontend con data sin iteración (hardcodeada).\n-   Capaz de realizar Page-Object-Model básico.\n-   Capaz de realizar controles de versionado de código (conocimiento básico en GIT).\n\n### 🧪L4\n\nCapaz de realizar tareas (TD) para Automatizar pruebas complejas y de integración de historias implementadas.\n\n##### Prácticas:\n\n-   Capacidad de resolución de problemas y conflictos de pruebas (Debugging).\n-   Capaz de realizar pruebas E2E con data en iteración (Parametrizadas).\n-   Capaz de escribir código con Excelentes prácticas y principios (POM, “DRY”, etc.).\n-   Capaz de escribir scripts de prueba con Estructura de Datos, condicionales, bucles, etc.\n-   Capaz de entender y ejecutar Pipelines de Regresión en Continuous Integration (CI).\n-   Capaz de escribir scripts de prueba para intercepción y assertions de API Testing.\n\n### 🧪L5\n\nCapaz de realizar cualquier tarea (TD) de Automatización y gestionar los Planes de Prueba.\n\n##### Prácticas:\n\n-   Capacidad de resolución de conflictos de GIT con facilidad.\n-   Capacidad de resolución de problemas de ambientes y errores de config del Repo.\n-   Capaz de realizar Planes de Prueba generales y para Automatización de pruebas.\n-   Capaz de planificar, armar y hacer funcionar los Repositorios de Automatización de Prueba.\n-   Capaz de configurar integraciones de aplicaciones de Reporte de Prueba con el Repo.\n-   Capaz de realizar pruebas automatizadas de Performance (con ciertas herramientas).\n\n---\n\n### 🧙🏻‍♂️APRENDE Y GANA EXPERIENCIA COMO QA AUTOMATION EN UPEX GALAXY🚀\n\nSuscríbete a un Sprint y trabaja como un QA Automation Engineer!\n\n### 🚩ENTRA EN [UPEXDOCU](https://linktree.com/upexjira) Y BUSCA LAS GUÍAS DE CYPRESS AL GRANO!\n\n---\n\n## CURSO YOUTUBE DE SELENIUM-JAVA AL GRANO:\n\n-   [🛸CURSO: \"AUTOMATION SELENIUM-JAVA AL GRANO\" (UPEX GALAXY)]()\n\n### 🧪 Happy Testing\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[vscode-logo]: https://img.shields.io/badge/VSCode-black?logo=visualstudiocode\u0026style=for-the-badge\n[vscode-site]: https://code.visualstudio.com/\n[selenium-logo]: https://img.shields.io/badge/Selenium-black?logo=selenium\u0026style=for-the-badge\n[selenium-site]: https://www.selenium.dev\n[java-logo]: https://img.shields.io/badge/Java-black?logo=java\u0026style=for-the-badge\n[java-site]: https://www.tutorialspoint.com/java/java_documentation.htm\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupex-galaxy%2Fseleniumjava-template-gx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupex-galaxy%2Fseleniumjava-template-gx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupex-galaxy%2Fseleniumjava-template-gx/lists"}