Sobes.tech
Middle

Wie können Sie API-Tests automatisieren?

sobes.tech KI

Antwort von AI

Die Automatisierung von API-Tests kann auf folgende Weisen erfolgen:

  1. Verwendung von Frameworks/Bibliotheken:

    • Rest-Assured (Java): Beliebte Bibliothek zum Testen von REST-APIs.
    • Requests (Python): Einfache und leistungsstarke Bibliothek für HTTP-Anfragen.
    • SuperTest (Node.js): Bibliothek zum Testen von HTTP-Servern und APIs.
    • Postman/Newman: GUI- und CLI-Anwendungen zum Erstellen und Ausführen von API-Tests.
  2. Erstellung von Testszenarien:

    • Für jeden Endpunkt werden positive und negative Testfälle definiert.
    • Szenarien umfassen das Senden von Anfragen mit verschiedenen Parametern, die Überprüfung von Statuscodes, Antwortinhalten (JSON, XML usw.) und Headern.
  3. Datenüberprüfung:

    • Validierung des JSON-Schemas zur Überprüfung der Struktur und Datentypen in der Antwort.
    • Vergleich der tatsächlichen Werte in der Antwort mit den erwarteten.
  4. Datenmanagement:

    • Verwendung von Testdaten, die in Dateien (JSON, CSV) oder Datenbanken gespeichert sind.
    • Vorbereitung der Daten vor dem Test und Bereinigung danach (falls erforderlich).
  5. Integration mit CI/CD-Systemen:

    • Automatisiertes Ausführen von API-Tests bei jeder Codeänderung oder regelmäßig (z.B. jede Nacht).
    • Verwendung von Jenkins, GitLab CI, GitHub Actions usw.
  6. Berichtswesen:

    • Generierung detaillierter Berichte über die Testergebnisse (z.B. Allure Framework).

Beispiel für die Verwendung von 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() {
        // Basis-URL der API
        RestAssured.baseURI = "https://reqres.in/api";

        // Senden einer GET-Anfrage
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Überprüfung des Statuscodes
                .body("data.id", equalTo(2))  // Überprüfung des Werts im Antwortkörper
                .body("data.first_name", equalTo("Janet"));
    }
}

Beispiel für die Verwendung von 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  # Überprüfung des Statuscodes
    data = response.json()
    assert data['data']['id'] == 2  # Überprüfung des Werts im Antwortkörper
    assert data['data']['first_name'] == 'Janet'