Skip to main content

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

  1. Tener instalado Python 3.7 o superior.
  2. Instalar pip (administrador de paquetes de Python).
  3. Tener Selenium Grid configurado y en ejecución (opcional para pruebas locales, pero necesario para pruebas distribuidas).

Instalación del Paquete

  1. Instala el paquete desde PyPI:

    pip install TeamWebQaUPT
    
  2. 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:

  1. Instala Allure:

    brew install allure  # En macOS
    sudo apt install allure  # En Linux
    

    Instrucciones de instalación para Windows.

  2. 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:

  1. Clona el repositorio:

    git clone https://github.com/tu_usuario/TeamWebQaUPT
    cd TeamWebQaUPT
    
  2. Instala las dependencias para desarrollo:

    pip install -r requirements.txt
    
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

teamwebqaupt-0.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

TeamWebQaUPT-0.1-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

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

Hashes for teamwebqaupt-0.1.tar.gz
Algorithm Hash digest
SHA256 e0317810075b7b692fc83cfd9ed63d6338ec92ad93ecd5cc512ec19cda638876
MD5 c7d3ac5f1ccdcd48557e429d78826572
BLAKE2b-256 083df09f7d9bd15220851155bb035e689ca5bfcca5947a5ab53fd9600f2d9d6c

See more details on using hashes here.

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

Hashes for TeamWebQaUPT-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e0b57e5f56d4107ddd8ba87a21cd9ed0db21e7ecad557cfd73db0adbf53e96d
MD5 ed28cb46b498c465bb2c8064d832d626
BLAKE2b-256 037da5b8f5e1d62dbe56e0509ac958a87fd9cb3af6149e2e12c45fc65bc7aee3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page