Sobes.tech
Middle

API testlərini necə avtomatlaşdırmaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

API testlərinin avtomatlaşdırılması aşağıdakı üsullarla həyata keçirilə bilər:

  1. Frameworklər/bibliotekalar istifadə etmək:

    • Rest-Assured (Java): REST API-lərin test edilməsi üçün məşhur kitabxana.
    • Requests (Python): Sadə və güclü HTTP sorğuları kitabxanası.
    • SuperTest (Node.js): HTTP serverləri və API-ləri test etmək üçün kitabxana.
    • Postman/Newman: GUI və CLI ilə API testləri yaratmaq və işlətmək üçün tətbiqlər.
  2. Test ssenarilərinin yaradılması:

    • Hər endpoint üçün müsbət və mənfi test halları müəyyən edilir.
    • Ssenarilər müxtəlif parametrlərlə sorğu göndərməyi, cavab status kodlarını, cavabın məzmununu (JSON, XML və s.) və başlıqları yoxlamağı əhatə edir.
  3. Məlumatların yoxlanması:

    • JSON sxemlərinin doğrulanması ilə cavabın strukturu və məlumat tiplərinin yoxlanması.
    • Əsl dəyərlərlə gözlənilən dəyərlərin müqayisəsi.
  4. Məlumatların idarə olunması:

    • Test məlumatlarının fayllarda (JSON, CSV) və ya verilənlər bazalarında saxlanması.
    • Testdən əvvəl məlumatların hazırlanması və sonra təmizlənməsi (lazım olarsa).
  5. CI/CD sistemləri ilə inteqrasiya:

    • Hər kod dəyişiklikdə və ya müntəzəm olaraq API testlərinin avtomatik işlədilməsi.
    • Jenkins, GitLab CI, GitHub Actions və s. istifadə etmək.
  6. Hesabatların hazırlanması:

    • Test nəticələri haqqında ətraflı hesabatların yaradılması (məsələn, Allure Framework).

Rest-Assured istifadə nümunəsi:

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-nin əsas URL-si
        RestAssured.baseURI = "https://reqres.in/api";

        // GET sorğusunun göndərilməsi
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Status kodunun yoxlanması
                .body("data.id", equalTo(2))  // Cavabın gövdəsindəki dəyərin yoxlanması
                .body("data.first_name", equalTo("Janet"));
    }
}

Requests (Python) istifadə nümunəsi:

import requests

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

    assert response.status_code == 200  # Status kodunun yoxlanması
    data = response.json()
    assert data['data']['id'] == 2  # Cavabın gövdəsindəki dəyərin yoxlanması
    assert data['data']['first_name'] == 'Janet'