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.
- 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.
- 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.
- 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.
- 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);
});
- 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)