Sobes.tech
Middle

Kako možete automatizovati testiranje API-ja?

sobes.tech АИ

Одговор од АИ

Automatizacija testiranja API-ja može se izvršiti sledećim metodama:

  1. Korišćenje okvira/biblioteka:

    • Rest-Assured (Java): Popularna biblioteka za testiranje REST API-ja.
    • Requests (Python): Jednostavna i moćna biblioteka za izvršavanje HTTP zahteva.
    • SuperTest (Node.js): Biblioteka za testiranje HTTP servera i API-ja.
    • Postman/Newman: Aplikacije sa GUI i CLI za kreiranje i pokretanje API testova.
  2. Kreiranje test scenarija:

    • Za svaki endpoint se definišu pozitivni i negativni test slučajevi.
    • Scenariji uključuju slanje zahteva sa različitim parametrima, proveru statusnih kodova odgovora, sadržaja tela odgovora (JSON, XML itd.) i zaglavlja.
  3. Provera podataka:

    • Validacija JSON šeme za proveru strukture i tipova podataka u odgovoru.
    • Poređenje stvarnih vrednosti u odgovoru sa očekivanim.
  4. Upravljanje podacima:

    • Korišćenje test podataka sačuvanih u fajlovima (JSON, CSV) ili bazama podataka.
    • Priprema podataka pre izvršenja testa i čišćenje nakon toga (ako je potrebno).
  5. Integracija sa CI/CD sistemima:

    • Podešavanje pokretanja automatizovanih API testova pri svakoj promeni koda ili redovno (npr. svake večeri).
    • Korišćenje Jenkins, GitLab CI, GitHub Actions itd.
  6. Izveštavanje:

    • Generisanje detaljnih izveštaja o rezultatima testova (npr. Allure Framework).

Primer korišćenja 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() {
        // Osnovni URL API-ja
        RestAssured.baseURI = "https://reqres.in/api";

        // Slanje GET zahteva
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Provera statusnog koda
                .body("data.id", equalTo(2))  // Provera vrednosti u telu odgovora
                .body("data.first_name", equalTo("Janet"));
    }
}

Primer korišćenja 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  # Provera statusnog koda
    data = response.json()
    assert data['data']['id'] == 2  # Provera vrednosti u telu odgovora
    assert data['data']['first_name'] == 'Janet'