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:
-
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.
-
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.
-
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.
-
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).
-
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.
-
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'