Middle
Kako možete automatizovati testiranje API-ja?
sobes.tech АИ
Одговор од АИ
Automatizacija testiranja API-ja može se izvršiti sledećim metodama:
-
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.
-
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.
-
Provera podataka:
- Validacija JSON šeme za proveru strukture i tipova podataka u odgovoru.
- Poređenje stvarnih vrednosti u odgovoru sa očekivanim.
-
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).
-
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.
-
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'