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ı üçün aşağıdakıları istifadə edirəm:

  1. Alətlərin seçimi:

    • Postman: Əl ilə və yarı avtomatlaşdırılmış testlər üçün mükəmməl həll, sorğu kolleksiyalarının yaradılması, yoxlamalar üçün JavaScript-də skriptlərin yazılması və mühitlərin yaradılması.
    • Rest-Assured (Java üçün) / Requests (Python üçün): Avtomatlaşdırılmış testlərin kodda yazılması üçün kitabxanalar. Sorğuların çevik qurulması, cavabların işlənməsi və mürəkkəb yoxlamaların aparılması imkanı verir.
    • Swagger/OpenAPI: API spesifikasiyasına əsasən müştəri kodu və ya testlərin yaradılması üçün.
  2. Test ssenarilərinin müəyyənləşdirilməsi: API spesifikasiyasının analizi, endpointlərin, metodların (GET, POST, PUT, DELETE və s.), parametrlərin, başlıqların, sorğu gövdələrinin, gözlənilən status kodlarının və cavab formatlarının (JSON, XML) müəyyənləşdirilməsi. Müsbət və mənfi test ssenarilərinin hazırlanması.

  3. Testlərin həyata keçirilməsi:

    • Postman ilə:

      • Testləri qruplaşdırmaq üçün kolleksiyalar yaradılması.
      • Məlumatların hazırlanması üçün Pre-request skriptlərinin yazılması (məsələn, token alınması).
      • Status kodu, başlıqlar və cavab gövdəsinin yoxlanması üçün Tests (post-request skriptləri) yazılması (pm.response.json(), pm.expect(), chai.expect()).
      • Mühit dəyişənlərinin istifadə edilməsi (URL, giriş məlumatları və s.).
      • Kolleksiyaların Collection Runner və ya Newman vasitəsilə işlədilməsi (CI/CD üçün).
      // Postman Testi
      pm.test("Status kodu 200-dir", function () {
          pm.response.to.have.status(200);
      });
      
      pm.test("Cavab bədənində xüsusi sahə var", function () {
          const responseJson = pm.response.json();
          pm.expect(responseJson.data).to.have.property('id');
      });
      
    • Rest-Assured (Java ilə):

      • Java kodu ilə test framework-lərindən (JUnit, TestNG) istifadə.
      • Sorğuların yaradılması, parametrlərin, başlıqların, gövdənin göstərilməsi.
      • Sorğunun icrası (when().get(), post(), və s.).
      • Cavabın yoxlanması (then().statusCode(int), body(String path, Matcher<?> matcher)).
      // Rest-Assured (Java) nümunəsi JUnit istifadə edərək
      import io.restassured.RestAssured;
      import org.junit.jupiter.api.Test;
      import static io.restassured.RestAssured.given;
      import static org.hamcrest.Matchers.equalTo;
      
      public class ApiTest {
      
          @Test
          public void testGetUser() {
              RestAssured.baseURI = "https://api.example.com"; // Əsas URL-i təyin et
      
              given()
              .when()
                  .get("/users/1") // GET sorğusu göndər /users/1-ə
              .then()
                  .statusCode(200) // Status kodunun 200 olduğunu yoxla
                  .body("data.id", equalTo(1)); // Cavab bədənində sahəni yoxla
          }
      }
      
  4. Test məlumatlarının idarə olunması: Giriş məlumatlarının müxtəlif kombinasiyalarını yoxlamaq üçün parametrli testlərdən istifadə. Məlumat mənbələri CSV, JSON faylları və verilənlər bazası ola bilər.

  5. Testlərin CI/CD boru xəttində işlədilməsi: Avtomatlaşdırılmış API testlərinin Jenkins, GitLab CI, GitHub Actions kimi alətlərdən istifadə etməklə davamlı inteqrasiya / davamlı çatdırılma boru xəttinə inteqrasiyası. Bu, hər commit-də testlərin avtomatik işlədilməsinə və API-nin stabilliyi haqqında tez geri bildirim alınmasına imkan verir. Postman üçün Newman, kod həlləri üçün isə test çərçivəsinin işlədilməsi.

  6. Nəticələrin analizi və hesabatlıq: Testlərin keçidinə dair hesabatların yaradılması (məsələn, Allure, TestNG/JUnit HTML hesabatları istifadə etməklə). Nəticələrin izlənməsi və uğursuzluqların səbəblərinin analizi.

Belə yanaşma API-nin funksionallığını və stabilliyini müxtəlif inkişaf mərhələlərində müntəzəm və etibarlı şəkildə yoxlamağa imkan verir.