https://github.com/upex-galaxy/upex-selenium-python-demo
New SELENIUM-PYTHON Project (SwagLabs) for Automation Tester in UPEX Galaxy
https://github.com/upex-galaxy/upex-selenium-python-demo
Last synced: 8 months ago
JSON representation
New SELENIUM-PYTHON Project (SwagLabs) for Automation Tester in UPEX Galaxy
- Host: GitHub
- URL: https://github.com/upex-galaxy/upex-selenium-python-demo
- Owner: upex-galaxy
- License: mit
- Created: 2023-09-19T13:50:28.000Z (about 2 years ago)
- Default Branch: QA
- Last Pushed: 2023-10-25T17:39:10.000Z (almost 2 years ago)
- Last Synced: 2025-01-04T13:48:20.761Z (10 months ago)
- Language: Python
- Homepage:
- Size: 82 KB
- Stars: 0
- Watchers: 9
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
[![vscode-logo]][vscode-site] [![selenium-logo]][selenium-site] [![python-logo]][python-site] [![behave-logo]][behave-site]
🧪Testing Automation: 🐍Selenium 4.5 +Behave
# Pruebas Automatizadas con Python🐍
¡Python es un lenguaje de programación que no necesita presentación! Es uno de los lenguajes preferidos cuando se trata de proyectos que involucran aprendizaje automático (ML) , inteligencia artificial (IA) y más. En un campo de batalla diferente, la combinación de Selenium Python es ampliamente preferida en lo que respecta a la automatización de sitios web.
Según la Encuesta de desarrolladores de Stack Overflow 2021, Python es el tercer lenguaje más popular después de JavaScript y HTML/CSS. La destreza de Selenium y Python ayuda a automatizar las interacciones con WebElements en el DOM (Document Object Model).
# CÓMO EMPEZAR DIRECTO AL GRANO:
1. **Precondición**:
- Tener instalado Anaconda en la PC local (Es un Manager de Ambiente Virtual).
- Puedes confirmar abriendo "Anaconda Prompt" y ejecutar `conda --version`
- Setear la Variable de Ambiente en Windows con el mismo path de anaconda, normalmente sería: `C:\Users\Username\anaconda3` para poder usar Anaconda en las terminales.2. **Clona el Proyecto con la Terminal de VSC**:
```
git clone https://github.com/upex-galaxy/L1-selpy-demo.git
```3. `Opción VSCODE:` **Abrir el Command Palette (Ctrl+Shift+P) y realizar las acciones:**
- Seleccionar Python: Create Environment
- Seleccionar Conda
- Seleccionar versión de Python (la que recomiende)
- Esperar que realice el proceso de creación de environment.
- Debería crearse un archivo `.conda` en el root del repo.
- Para ver el listado en envs creados con `conda info --envs`
- Copia el env creado full path.
- Activar el environment con `conda activate `4. `Opción Manual (Cómoda):` **Entra en la Carpeta del Proyecto clonado `selenium-python` en VSC y Crea un Ambiente de Conda con la Terminal**:
```
conda create -n
```- **EN WINDOWS: Activa el Ambiente Conda creado a través de**:
```
source activate
```- **EN LINUX: Activa el Ambiente Conda creado a través de**:
```
activate
```5. **MUY IMPORTANTE: ACTIVAR EL INTÉRPRETE PYTHON** Por más que se hayan instalado las dependencias, es importante activar ahora el intérprete para poder trabajar sobre el mismo. Para ello:
- Abrir el Command Palette (Ctrl+Shift+P)
- Seleccionar la opción: "Python: select interpreter"
- Seleccionar la ruta python que el ENV activado para el proyecto.
- Refrescar VSCODE para efectuar todas las configuraciones.6. **Instala todas las dependencias del archivo requirements.txt con el ENV creado de Conda, ejecutando el siguiente comando luego haber activado el ambiente conda y el intérprete de Python**:
```
pip install -r requirements.txt
```
- Aquí se está usando con el mismo pip se instala las dependencias del proyecto actual ubicado. Esto instalará todas las dependencias del Proyecto en el ENV creado para comenzar a trabajar directo.
- Si estás usando la Opción VSCODE, el cual usa una ruta directa, debes usar esta misma ruta y adentrarte en el archivo python.exe para ejecutar el mismo comando.# PLAN DE PRUEBA: ESTRATEGIA Y DISEÑO
### 🚩NORMATIVAS A SEGUIR:
1. Perfecta Nomenclatura del nombre de Archivo de prueba:
`test_{GXID}_{StoryShortName}.py ej: test_GX50_AgregarItemsAlCart.py`
2. El Archivo de Prueba dentro estar en el directorio "coverage" con la carpeta del Componente correspondiente, ejemplo:
`tests/coverage/example/test_example.py`.
3. Buen diseño del Test Suite elaborado (Esto implica que se vean bien el código en general, que al menos funcione).
4. **En caso de usar el Utils u otros módulos**: Ya los tienes todo disponible en el archivo principal Testbase que puedes importar desde tu archivo, usando:
`from tests.testbase import *`.
5. **En caso de usar PageObjectModel**: Aplicar las buenas prácticas del patrón de diseño POM. Recuerda usar el tipo de función lambda para generar los locators y crear buenos nombres de los métodos.
6. **En caso de usar el CI Pipeline**: Usar únicamente el archivo predeterminado del proyecto `sanity.yml`, y asegurarse de modificarlo correctamente (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á automaticamente cuando los cambios hayan mergeado a QA.
7. **En caso de usar Behave (BDD)**: Chequear que el archivo Gherkin (.feature) y los StepDefinitions (.py) estén correctamente diseñados. Lee las guías o el curso para más información de su uso.---
# 🚩NIVELES DE TESTER QA en UPEX Galaxy:
El 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 Tester debe alcanzar para llegar a su mayor **SENIORITY**:
## QA Engineer (Pruebas Manuales)
Capacidad de realizar análisis, planificación, ejecución y gestión de:
- Pruebas Manuales de UI
- Bases de Datos
- API Testing### 🧪L1
Capaz de realizar tareas (US) sencillas de frontend sin mucha complejidad.
##### Prácticas:
- Entiende y puede seguir guías y protocolos de prueba previamente definidos.
- Identifica errores obvios en la interfaz y reporta con claridad.
- Familiarizado con herramientas básicas de testing y reporting.
- Capaz de realizar pruebas de regresión siguiendo casos de prueba definidos.### 🧪L2
Capaz de realizar tareas (US) avanzadas de frontend y también tareas de Backend (Pruebas de Bases de Datos y Pruebas de API).
##### Prácticas:
- Realiza pruebas exploratorias identificando puntos críticos en las aplicaciones.
- Puede diseñar casos de prueba simples basados en requisitos.
- Familiarizado con SQL básico para realizar pruebas en Bases de Datos.
- Inicia pruebas básicas en APIs usando herramientas como Postman o similares.
- Entiende la importancia de ciclos de vida de defectos y los gestiona correctamente.### 🧪L3
Capaz de realizar tareas (US) de performance y/o diseñar nuevas Historias de Usuario.
##### Prácticas:
- Diseña y ajusta casos de prueba complejos basados en cambios de requisitos.
- Identifica y reporta problemas de rendimiento usando herramientas básicas.
- Realiza pruebas exploratorias avanzadas e identifica áreas no cubiertas.
- Gestiona los Planes de Prueba (Cobertura, Regresión, Sanity, Smoke) de manera efectiva.
- Ofrece guía y mentoría a testers de niveles inferiores (Capacidad de ser Tutor).
- Tiene una comprensión básica sobre automatización de pruebas.## QA Automation Engineer (Pruebas Automatizadas)
Capacidad de realizar análisis, planificación, ejecución y gestión de:
- Pruebas Automatizadas de E2E
- Integration Testing (Aplicando para cualquiera de los Frameworks de automatización de Browsers/Apps)### 🧪L3
Capaz de realizar tareas (TechDept) para Automatizar pruebas UI de historias implementadas.
##### Prácticas:
- Capaz de manejar el flujo completo de trabajo ordinario.
- Capaz de realizar pruebas Frontend con data sin iteración (hardcodeada).
- Capaz de realizar Page-Object-Model básico.
- Capaz de realizar controles de versionado de código (conocimiento básico en GIT).### 🧪L4
Capaz de realizar tareas (TD) para Automatizar pruebas complejas y de integración de historias implementadas.
##### Prácticas:
- Capacidad de resolución de problemas y conflictos de pruebas (Debugging).
- Capaz de realizar pruebas E2E con data en iteración (Parametrizadas).
- Capaz de escribir código con Excelentes prácticas y principios (POM, “DRY”, etc.).
- Capaz de escribir scripts de prueba con Estructura de Datos, condicionales, bucles, etc.
- Capaz de entender y ejecutar Pipelines de Regresión en Continuous Integration (CI).
- Capaz de escribir scripts de prueba para intercepción y assertions de API Testing.### 🧪L5
Capaz de realizar cualquier tarea (TD) de Automatización y gestionar los Planes de Prueba.
##### Prácticas:
- Capacidad de resolución de conflictos de GIT con facilidad.
- Capacidad de resolución de problemas de ambientes y errores de config del Repo.
- Capaz de realizar Planes de Prueba generales y para Automatización de pruebas.
- Capaz de planificar, armar y hacer funcionar los Repositorios de Automatización de Prueba.
- Capaz de configurar integraciones de aplicaciones de Reporte de Prueba con el Repo.
- Capaz de realizar pruebas automatizadas de Performance (con ciertas herramientas).---
### 🧙🏻♂️APRENDE Y GANA EXPERIENCIA COMO QA AUTOMATION EN UPEX GALAXY🚀
Suscríbete a un Sprint y trabaja como un QA Automation Engineer!
### 🚩ENTRA EN [UPEXDOCU](https://linktree.com/upexjira) Y BUSCA LAS GUÍAS DE SELENIUM-PYTHON AL GRANO!
---
## CURSO YOUTUBE DE SELENIUM-PYTHON AL GRANO:
- [🛸CURSO: "AUTOMATION SELENIUM-PYTHON AL GRANO" (UPEX GALAXY)]()
[vscode-logo]: https://img.shields.io/badge/VSCode-black?logo=visualstudiocode&style=for-the-badge
[vscode-site]: https://code.visualstudio.com/
[selenium-logo]: https://img.shields.io/badge/Selenium-black?logo=selenium&style=for-the-badge
[selenium-site]: https://www.selenium.dev/documentation/webdriver/
[python-logo]: https://img.shields.io/badge/Python-black?logo=python&style=for-the-badge
[python-site]: https://www.python.org/
[behave-logo]: https://img.shields.io/badge/Behave-black?logo=cucumber&style=for-the-badge
[behave-site]: https://behave.readthedocs.io/
[slack-logo]: https://img.shields.io/badge/Slack-black?logo=slack&style=for-the-badge
[slack-join]: https://linktr.ee/upex
[linkedin-logo]: https://img.shields.io/badge/LinkedIn-black?style=for-the-badge&logo=linkedin
[linkedin-link]: https://www.linkedin.com/in/elyermad/