Metadata-Version: 2.1
Name: TeamWebQaUPT
Version: 0.1
Summary: Un paquete para pruebas automatizadas con Selenium y pytest
Home-page: https://github.com/UPT-FAING-EPIS/proyecto-si8811a-2024-ii-u2-qa-pruebas-valverde-cano
Author: Jean Valverde y Anthony Cano
Author-email: jeanvalverdezamora@gmail.com
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: selenium
Requires-Dist: pytest
Requires-Dist: allure-pytest
Requires-Dist: pytest-selenium
Requires-Dist: pytest-xdist


# 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:
   ```bash
   pip install TeamWebQaUPT
   ```

2. Verifica la instalaciÃ³n:
   ```bash
   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:
```bash
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:
   ```bash
   brew install allure  # En macOS
   sudo apt install allure  # En Linux
   ```
   [Instrucciones de instalaciÃ³n para Windows](https://docs.qameta.io/allure/#_get_started).

2. Sirve los resultados generados:
   ```bash
   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**
```python
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**
```python
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**
```python
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**
```python
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**

```python
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:
   ```bash
   git clone https://github.com/tu_usuario/TeamWebQaUPT
   cd TeamWebQaUPT
   ```

2. Instala las dependencias para desarrollo:
   ```bash
   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.

