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:
-
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.
-
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ı.
-
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 } }
-
-
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.
-
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.
-
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.