Fundamentos de Pruebas de API y Automatización con Python

Las pruebas de interfaz de programación de aplicaciones (API) se centran en verificar la funcionalidad, fiabilidad y seguridad de la comunicación entre sistemas. A diefrencia de las pruebas de interfaz de usuario (UI), estas validan la lógica de negocio en la capa de servicios.

  1. Arquitectura Cliente-Servidor y Formatos de Datos

En el ecosistema de desarrollo, el cliente (navegadores web, aplicaciones Android o iOS) envía peticiones a un servidor (desarrollado en lenguajes como Java, Python o PHP). Aunque históricamente se utilizaba XML, actualmente el formato JSON es el estándar predominante para el intercambio de información debido a su ligereza.

  1. Métodos HTTP: GET vs. POST

Para interactuar con una API, es fundamental comprender los métodos de petición:

  • GET: Se utiliza para solicitar datos. Los parámetros se envían directamente en la URL (ejemplo: /api/productos?id=500&categoria=electronica). No posee cuerpo de mensaje.
  • POST: Se emplea para enviar datos al servidor (como crear un registro). La información viaja en el cuerpo (body) de la petición, lo que permite manejar archivos y datos sensibles de forma más estructurada. Requiere cabeceras (headers) como Content-Type.
  1. Gestión de Estado: Cookies y Sessions

Dado que el protocolo HTTP es "stateless" (sin estado), se utilizan mecanismos para identificar al usuario:

  • Cookie: Archivo de texto pequeño guardado en el lado del cliente (navegador).
  • Session: Almacenamiento de datos en el servidor, vinculado a un identificador único que el cliente presenta en cada petición.
  1. Automatización con Postman

Postman es una herramienta esencial para la ejecución de pruebas automtaizadas mediante Colecciones (Collections). El flujo de trabajo profesional incluye:

  • Parametrización: Uso de variables con la sintaxis {{nombre_variable}} para reutilizar valores en diferentes entornos.
  • Pruebas basadas en datos: Carga de archivos CSV donde la primera fila define las variables y las siguientes los valores de prueba.
  • Validaciones (Tests): Uso de scripts en JavaScript para confirmar resultados. Ejemplo de validación dinámica:
pm.test("Validar contenido de la respuesta", function () {
    var valorEsperado = pm.variables.get("resultado_esperado");
    pm.expect(pm.response.text()).to.include(valorEsperado);
});
  1. Introducción a la Lógica de Programación con Python

Python es el lenguaje predilecto para la automatización debido a su sintaxis legible. A continuación, se presentan conceptos clave con ejemplos renovados:

Tipos de Datos y Variables

saludo = "Iniciando pruebas"
intentos = 3
tasa_exito = 98.5
lista_usuarios = ["admin", "tester", "dev"]

Estructuras de Control (Condicionales)

nota_final = int(input("Ingrese la calificación del sistema: "))

if nota_final >= 95:
    print("Sistema Excelente")
elif nota_final >= 80:
    print("Sistema Estable")
elif nota_final >= 60:
    print("Requiere Optimización")
else:
    print("Fallo Crítico")

Bucle While: Juego de Adivinanza

import random

numero_secreto = random.randint(1, 50)
oportunidades = 0

while oportunidades < 5:
    usuario_input = int(input("Adivina el número (1-50): "))
    oportunidades += 1
    
    if usuario_input == numero_secreto:
        print(f"¡Correcto! Lo lograste en el intento {oportunidades}")
        break
    elif usuario_input < numero_secreto:
        print("El número es mayor.")
    else:
        print("El número es menor.")
else:
    print(f"Lo siento, el número era {numero_secreto}")

Bucle For y Formateo de Cadenas

El uso de f-strings es la forma moderna y eficiente de concatenar cadenas en Python:

from datetime import datetime

usuarios = ["Carlos", "Marta", "Sofia"]
fecha_hoy = datetime.now().strftime("%Y-%m-%d")

for nombre in usuarios:
    mensaje = f"Usuario: {nombre} | Acceso verificado el: {fecha_hoy}"
    print(mensaje)

Etiquetas: API testing Postman Python HTTP Methods Automation Testing

Publicado el 7-19 08:12