Un paquete para pruebas automatizadas con Selenium y pytest
Project description
TeamWebQaUPT
TeamWebQaUPT es un paquete diseñado para realizar pruebas automatizadas de interfaces web utilizando Selenium y pytest. Proporciona herramientas reutilizables y fáciles de usar para simplificar el proceso de pruebas.
CaracterÃsticas Principales
- Configuración automática de navegadores utilizando Selenium.
- Ejecución de pruebas paralelas con pytest-xdist.
- Reportes de resultados en formato Allure.
- Funciones reutilizables para interacciones comunes como dropdowns, validaciones y navegación.
Instalación
Requisitos Previos
- Tener instalado Python 3.7 o superior.
- Instalar pip (administrador de paquetes de Python).
- Tener Selenium Grid configurado y en ejecución (opcional para pruebas locales, pero necesario para pruebas distribuidas).
Instalación del Paquete
-
Instala el paquete desde PyPI:
pip install TeamWebQaUPT
-
Verifica la instalación:
python -c "import TeamWebQaUPT; print('Instalación exitosa')"
Ejecución de Pruebas
Comando para Ejecutar Todas las Pruebas
El paquete incluye un script que ejecuta todas las pruebas automáticamente y genera un reporte Allure:
ejecutar_pruebas
Por defecto, el comando:
- Ejecuta pruebas en paralelo utilizando 3 procesos (
-n 3). - Genera resultados en el directorio
allure-results.
Ver Resultados con Allure
Para visualizar los resultados en formato Allure:
-
Instala Allure:
brew install allure # En macOS sudo apt install allure # En Linux
-
Sirve los resultados generados:
allure serve allure-results
Funciones Reutilizables
El paquete incluye una serie de funciones reutilizables en el módulo utils.py. Aquà hay una lista de las más útiles:
1. Seleccionar Opción en Dropdown
from TeamWebQaUPT.utils import select_dropdown_option
select_dropdown_option(driver, dropdown_id="facultad", option_text="Facultad de IngenierÃa")
Descripción:
- Selecciona una opción en un combo box (dropdown) por texto visible.
Parámetros:
driver: Instancia de Selenium WebDriver.dropdown_id: ID del dropdown en el DOM.option_text: Texto visible de la opción a seleccionar.
2. Validar Elementos en una Lista
from TeamWebQaUPT.utils import validate_elements_in_list
validate_elements_in_list(driver, "//h3[contains(text(), '{}')]", ["Equipo A", "Equipo B"])
Descripción:
- Verifica que una lista de elementos esté visible en la página.
Parámetros:
driver: Instancia de Selenium WebDriver.xpath_template: Plantilla de XPath para encontrar los elementos (usa{}para insertar el texto del elemento).items: Lista de textos a validar.
3. Navegar por Menús
from TeamWebQaUPT.utils import navigate_menu
navigate_menu(
driver,
menu_items={
"Inicio": "http://161.132.50.153/",
"Eventos": "http://161.132.50.153/eventos"
},
base_url="http://161.132.50.153/equipos"
)
Descripción:
- Navega por un menú y valida la navegación de URLs.
Parámetros:
driver: Instancia de Selenium WebDriver.menu_items: Diccionario con texto del menú como clave y URL esperada como valor.base_url: URL base para regresar después de cada navegación.
4. Procesar Tablas Gherkin
from TeamWebQaUPT.utils import process_table_data
table_data = [
["Equipo"],
["Equipo A"],
["Equipo B"]
]
processed_data = process_table_data(table_data)
Descripción:
- Convierte datos de una tabla en un formato reutilizable.
Parámetros:
table_data: Lista de listas con los datos de la tabla (primera fila como encabezados).
Retorno:
- Una lista de diccionarios con claves basadas en la primera fila.
Ejemplo Completo de Uso
from TeamWebQaUPT.utils import (
select_dropdown_option,
validate_elements_in_list,
navigate_menu
)
from selenium import webdriver
# Configuración inicial
driver = webdriver.Chrome()
try:
# Abrir página inicial
driver.get("http://161.132.50.153/")
# Seleccionar una opción en un dropdown
select_dropdown_option(driver, "facultad", "Facultad de IngenierÃa")
# Validar elementos en una lista
validate_elements_in_list(driver, "//h3[contains(text(), '{}')]", ["Equipo A", "Equipo B"])
# Navegar por el menú
navigate_menu(
driver,
{"Inicio": "http://161.132.50.153/", "Eventos": "http://161.132.50.153/eventos"},
"http://161.132.50.153/"
)
finally:
driver.quit()
Contribuciones
Si deseas contribuir al desarrollo de TeamWebQaUPT, sigue estos pasos:
-
Clona el repositorio:
git clone https://github.com/tu_usuario/TeamWebQaUPT cd TeamWebQaUPT
-
Instala las dependencias para desarrollo:
pip install -r requirements.txt
-
Crea tus cambios y envÃa un pull request.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file teamwebqaupt-0.1.tar.gz.
File metadata
- Download URL: teamwebqaupt-0.1.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0317810075b7b692fc83cfd9ed63d6338ec92ad93ecd5cc512ec19cda638876
|
|
| MD5 |
c7d3ac5f1ccdcd48557e429d78826572
|
|
| BLAKE2b-256 |
083df09f7d9bd15220851155bb035e689ca5bfcca5947a5ab53fd9600f2d9d6c
|
File details
Details for the file TeamWebQaUPT-0.1-py3-none-any.whl.
File metadata
- Download URL: TeamWebQaUPT-0.1-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e0b57e5f56d4107ddd8ba87a21cd9ed0db21e7ecad557cfd73db0adbf53e96d
|
|
| MD5 |
ed28cb46b498c465bb2c8064d832d626
|
|
| BLAKE2b-256 |
037da5b8f5e1d62dbe56e0509ac958a87fd9cb3af6149e2e12c45fc65bc7aee3
|