"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Automatiza tus tareas usando Pytest: una guía práctica con ejemplos

Automatiza tus tareas usando Pytest: una guía práctica con ejemplos

Publicado el 2024-11-02
Navegar:294

Automate your tasks Using Pytest: A practical guide with examples

La automatización es una parte fundamental del desarrollo y las pruebas de software moderno. Ahorra tiempo, reduce los errores manuales y garantiza la coherencia entre los procesos. El marco Pytest es una de las herramientas más populares y poderosas para automatizar tareas en Python, particularmente en pruebas. Es liviano, fácil de usar y ofrece numerosos complementos y funciones integradas para simplificar el proceso de automatización.

En este artículo, exploraremos las mejores formas de automatizar tareas utilizando el marco Pytest. Analizaremos tres ejemplos prácticos que demostrarán cómo Pytest puede automatizar diferentes tipos de tareas de manera efectiva.

¿Por qué Pytest?
Antes de profundizar en los ejemplos, analicemos por qué Pytest es una excelente opción para la automatización de tareas:

Simplicidad: Pytest tiene una sintaxis simple y concisa, lo que facilita la escritura y lectura de casos de prueba.
Extensibilidad: con una amplia gama de complementos y ganchos, Pytest se puede ampliar para admitir diferentes necesidades de prueba.
Accesorios: Pytest proporciona accesorios, que son una característica poderosa para configurar condiciones previas o estados para pruebas, mejorando la reutilización.
Integración: Pytest se integra bien con otras herramientas, incluidas las plataformas CI/CD, lo que permite la automatización de un extremo a otro.

Ejemplo 1: Automatización de pruebas de API con Pytest
Las API son la columna vertebral de muchas aplicaciones y garantizar su confiabilidad es fundamental. Pytest, junto con la biblioteca de solicitudes, facilita la automatización de las pruebas de API.

Paso 1: Instalar las bibliotecas necesarias
Primero, asegúrese de tener instalado Pytest y la biblioteca de solicitudes:

solicitudes de pytest de instalación de pip
Paso 2: escriba el guión de prueba
Automaticemos una solicitud GET simple a una API pública como JSONPlaceholder, una API REST falsa en línea para realizar pruebas.

`solicitudes de importación
importar pytest

Definir la URL base

BASE_URL = "https://jsonplaceholder.typicode.com"

@pytest.fixture
def api_client():
# Este dispositivo proporciona un objeto de sesión para realizar solicitudes de API
sesión = solicitudes.Sesión()
sesión de rendimiento
sesión.cerrar()

def test_get_posts(api_client):
# Enviar una solicitud GET para recuperar publicaciones
respuesta = api_client.get(f"{BASE_URL}/publicaciones")
# Afirmaciones
afirmar respuesta.status_code == 200
afirmar len(response.json()) > 0, "No se encontraron publicaciones"`

Explicación:
Dispositivo (api_client): este dispositivo configura una sesión reutilizable para realizar solicitudes HTTP, lo que garantiza que no necesitemos crear una nueva sesión cada vez.
Función de prueba (test_get_posts): esta función envía una solicitud GET al punto final /posts y verifica que:
El código de estado es 200, lo que indica éxito.
La respuesta contiene al menos una publicación.
Paso 3: ejecutar la prueba
Para ejecutar la prueba, ejecute el siguiente comando:

intento
Copiar código
pytest -v prueba_api.py
Por qué funciona esto
La prueba es concisa y reutilizable, y aprovecha los accesorios de Pytest para manejar la configuración y el desmontaje.
El resultado de Pytest muestra qué pruebas pasaron o fallaron, lo que facilita el seguimiento de la confiabilidad de la API a lo largo del tiempo.

Ejemplo 2: Automatización de pruebas de interfaz de usuario web con Pytest y Selenium
Las pruebas de la interfaz de usuario web garantizan que la interfaz de una aplicación se comporte como se espera. Pytest se puede combinar con Selenium para automatizar estas tareas de manera eficiente.

Paso 1: Instalar las bibliotecas necesarias
Instale Pytest, Selenium y WebDriver Manager:

pip instala pytest selenium webdriver-manager
Paso 2: escriba el guión de prueba
A continuación te explicamos cómo puedes automatizar una prueba sencilla de la interfaz de usuario web que verifica una función de búsqueda en Google:

`importar pytest
desde el controlador web de importación de selenio
desde selenium.webdriver.common.by importar por
desde selenium.webdriver.common.keys importar claves
desde webdriver_manager.chrome importar ChromeDriverManager

@pytest.fixture
navegador def():
# Configurar Chrome WebDriver
controlador = webdriver.Chrome(ChromeDriverManager().install())
controlador de rendimiento
conductor.salir()

def test_google_search(navegador):
# Navegar a Google
navegador.get("https://www.google.com")`{% endraw %}

# Find the search box and enter a query
search_box = browser.find_element(By.NAME, "q")
search_box.send_keys("Pytest Automation")
search_box.send_keys(Keys.RETURN)

# Assert that results are shown
results = browser.find_elements(By.CSS_SELECTOR, "div.g")
assert len(results) > 0, "No search results found"

Explicación:
Dispositivo (navegador): este dispositivo configura una instancia de Chrome WebDriver utilizando webdriver-manager y garantiza que se cierre correctamente después de cada prueba.
Función de prueba (test_google_search): Esta función:
Abre la página de inicio de Google.
Busca "Pytest Automation".
Afirma que la búsqueda arroja al menos un resultado.
Paso 3: ejecutar la prueba
Ejecute la prueba con:

{% raw %}pytest -v test_ui.py
Por qué funciona esto
El dispositivo de Pytest administra la instancia del navegador, lo que hace que la configuración y el desmontaje de la prueba sean limpios y eficientes.
Al utilizar Selenium, el script interactúa con la página web como un usuario real, lo que garantiza que la interfaz de usuario funcione como se espera.
Ejemplo 3: Automatización de la validación de datos con Pytest y Pandas
La validación de datos es crucial en los procesos de ingeniería de datos, análisis y ETL. Pytest puede automatizar tareas de validación de datos utilizando la biblioteca pandas.

Paso 1: Instalar las bibliotecas necesarias
Asegúrese de que Pytest y Pandas estén instalados:

pip instala pandas pytest
Paso 2: escriba el guión de prueba
Automaticemos una tarea en la que validemos que un conjunto de datos cumpla con ciertas condiciones (por ejemplo, sin valores nulos, tipos de datos correctos, etc.).

`importar pytest
importar pandas como pd

@pytest.fixture
def datos_muestra():
# Crear un marco de datos de muestra
datos = {
"nombre": ["Alicia", "Bob", "Charlie", "David"],
"edad": [25, 30, 35, 40],
"correo electrónico": ["[email protected]", "[email protected]", Ninguno, "[email protected]"]
}
df = pd.DataFrame(datos)
devolver df

def test_data_not_null(sample_data):
# Comprobar si hay valores nulos en el DataFrame
afirmar sample_data.isnull().sum().sum() == 0, "Los datos contienen valores nulos"

def test_age_column_type(sample_data):
# Verificar que la columna 'edad' sea de tipo entero
afirmar sample_data['age'].dtype == 'int64', "La columna de edad no es de tipo entero"`
Explicación:
Accesorio (sample_data): este accesorio configura un DataFrame de muestra, simulando un conjunto de datos que se puede reutilizar en múltiples pruebas.
Función de prueba (test_data_not_null): esta prueba verifica si hay valores nulos en el DataFrame y falla si se encuentra alguno.
Función de prueba (test_age_column_type): esta prueba verifica que la columna de edad sea de tipo entero, lo que garantiza la coherencia de los datos.
Paso 3: ejecutar la prueba
Ejecute la prueba con:

pytest -v prueba_data.py
Por qué funciona esto
La flexibilidad de Pytest permite realizar pruebas centradas en datos, lo que garantiza que los conjuntos de datos cumplan con los criterios esperados.
El dispositivo facilita la configuración y modificación de datos de prueba sin duplicar código.
Mejores prácticas para automatizar tareas con Pytest
Utilice accesorios para la configuración y el desmontaje: los accesorios ayudan a gestionar la configuración y el desmontaje de manera eficiente, haciendo que sus pruebas sean modulares y reutilizables.
Aproveche los complementos: Pytest tiene una variedad de complementos (p. ej., pytest-html para informes HTML, pytest-xdist para ejecución paralela) para mejorar sus esfuerzos de automatización.
Parametrizar pruebas: use @pytest.mark.parametrize para probar múltiples conjuntos de datos o entradas, reduciendo la duplicación de código.
Integre con canalizaciones de CI/CD: integre las pruebas de Pytest con herramientas de CI/CD como Jenkins o GitHub Actions para realizar pruebas continuas.

Conclusión
Pytest es una herramienta poderosa para automatizar una variedad de tareas, desde pruebas de API y UI web hasta la validación de datos. Su simplicidad, combinada con flexibilidad y amplia compatibilidad con complementos, lo convierte en una excelente opción tanto para desarrolladores como para ingenieros de control de calidad. Al aprovechar las funciones de Pytest, como accesorios, parametrización e integraciones con canales de CI/CD, puede crear marcos de automatización robustos, fáciles de mantener y escalables.

Si busca automatizar su flujo de trabajo o mejorar su proceso de prueba, Pytest es un excelente punto de partida. ¡Feliz prueba!

Declaración de liberación Este artículo se reproduce en: https://dev.to/mahmad321/automate-your-tasks-using-pytest-a-practical-guide-with-examples-5g1l?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com para eliminarlo
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3