Sobes.tech
Middle

¿Cómo puede automatizar las pruebas de API?

sobes.tech AI

Respuesta de la IA

La automatización de pruebas de API puede realizarse de las siguientes maneras:

  1. Uso de frameworks/librerías:

    • Rest-Assured (Java): Biblioteca popular para probar APIs REST.
    • Requests (Python): Biblioteca sencilla y potente para realizar solicitudes HTTP.
    • SuperTest (Node.js): Biblioteca para probar servidores HTTP y APIs.
    • Postman/Newman: Aplicaciones con GUI y CLI para crear y ejecutar pruebas de API.
  2. Creación de escenarios de prueba:

    • Se definen casos de prueba positivos y negativos para cada endpoint.
    • Los escenarios incluyen enviar solicitudes con diferentes parámetros, verificar los códigos de estado de respuesta, contenido del cuerpo (JSON, XML, etc.) y encabezados.
  3. Verificación de datos:

    • Validación de esquemas JSON para comprobar la estructura y tipos de datos en la respuesta.
    • Comparación de valores reales en la respuesta con los esperados.
  4. Gestión de datos:

    • Uso de datos de prueba almacenados en archivos (JSON, CSV) o bases de datos.
    • Preparación de datos antes de ejecutar la prueba y limpieza después (si es necesario).
  5. Integración con sistemas CI/CD:

    • Configuración para ejecutar pruebas automatizadas de API en cada cambio de código o de forma periódica (por ejemplo, cada noche).
    • Uso de Jenkins, GitLab CI, GitHub Actions, etc.
  6. Generación de informes:

    • Creación de informes detallados sobre los resultados de las pruebas (por ejemplo, Allure Framework).

Ejemplo de uso de Rest-Assured:

import io.restassured.RestAssured;
import org.junit.jupiter.api.Test;

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

public class ApiTests {

    @Test
    public void testGetUserById() {
        // URL base de la API
        RestAssured.baseURI = "https://reqres.in/api";

        // Envío de solicitud GET
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Verificación del código de estado
                .body("data.id", equalTo(2))  // Verificación del valor en el cuerpo de la respuesta
                .body("data.first_name", equalTo("Janet"));
    }
}

Ejemplo de uso de Requests (Python):

import requests

def test_get_user_by_id():
    url = "https://reqres.in/api/users/2"
    response = requests.get(url)

    assert response.status_code == 200  # Verificación del código de estado
    data = response.json()
    assert data['data']['id'] == 2  # Verificación del valor en el cuerpo de la respuesta
    assert data['data']['first_name'] == 'Janet'