Sobes.tech
Middle

Hogyan automatizálhatja az API-teszteket?

sobes.tech MI

Válasz az MI-től

Az API tesztelés automatizálása a következő módokon valósítható meg:

  1. Frameworkök/könyvtárak használata:

    • Rest-Assured (Java): Népszerű könyvtár REST API-k teszteléséhez.
    • Requests (Python): Egyszerű és erőteljes könyvtár HTTP kérésekhez.
    • SuperTest (Node.js): Könyvtár HTTP szerverek és API-k teszteléséhez.
    • Postman/Newman: GUI és CLI alkalmazások API tesztek létrehozásához és futtatásához.
  2. Teszt forgatókönyvek készítése:

    • Pozitív és negatív tesztesetek meghatározása minden végpont esetében.
    • Forgatókönyvek különböző paraméterekkel küldött kéréseket, válasz státuszkódokat, tartalmat (JSON, XML stb.) és fejlécet ellenőriznek.
  3. Adatok ellenőrzése:

    • JSON séma validálása a válasz szerkezetének és adattípusainak ellenőrzéséhez.
    • A tényleges értékek összehasonlítása a várt értékekkel.
  4. Adatkezelés:

    • Tesztadatok fájlokban (JSON, CSV) vagy adatbázisokban való tárolása.
    • Az adatok előkészítése a teszt futtatása előtt és tisztítása utána (ha szükséges).
  5. CI/CD rendszerekkel való integráció:

    • Automatikus API tesztek futtatásának beállítása minden kódváltozásnál vagy rendszeresen (pl. minden este).
    • Jenkins, GitLab CI, GitHub Actions stb. használata.
  6. Jelentéskészítés:

    • Részletes jelentések generálása a tesztek eredményeiről (pl. Allure Framework).

Rest-Assured példakód:

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() {
        // API alap URL
        RestAssured.baseURI = "https://reqres.in/api";

        // GET kérés küldése
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // státuszkód ellenőrzése
                .body("data.id", equalTo(2))  // érték ellenőrzése a válasz testében
                .body("data.first_name", equalTo("Janet"));
    }
}

Requests (Python) példakód:

import requests

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

    assert response.status_code == 200  # státuszkód ellenőrzése
    data = response.json()
    assert data['data']['id'] == 2  # érték ellenőrzése a válasz testében
    assert data['data']['first_name'] == 'Janet'