Sobes.tech
Middle

API testlerini nasıl otomatikleştirebilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

API test otomasyonu aşağıdaki yöntemlerle gerçekleştirilebilir:

  1. Çerçeve/kütüphane kullanımı:

    • Rest-Assured (Java): REST API'leri test etmek için popüler kütüphane.
    • Requests (Python): Basit ve güçlü HTTP isteği kütüphanesi.
    • SuperTest (Node.js): HTTP sunucuları ve API'leri test etmek için kütüphane.
    • Postman/Newman: API testleri oluşturmak ve çalıştırmak için GUI ve CLI uygulamaları.
  2. Test senaryoları oluşturma:

    • Her endpoint için pozitif ve negatif test vakaları tanımlanır.
    • Senaryolar, farklı parametrelerle istek göndermeyi, yanıt durum kodlarını, gövde içeriğini (JSON, XML vb.) ve başlıkları kontrol etmeyi içerir.
  3. Veri doğrulama:

    • Yanıtın yapısını ve veri tiplerini kontrol etmek için JSON şeması doğrulaması.
    • Gerçek değerleri beklenenlerle karşılaştırma.
  4. Veri yönetimi:

    • Test verilerini dosyalarda (JSON, CSV) veya veritabanlarında saklama.
    • Test öncesi veri hazırlama ve sonrası temizleme (gerekirse).
  5. CI/CD sistemleri ile entegrasyon:

    • Her kod değişikliğinde veya düzenli olarak API testlerini otomatik çalıştırma ayarları (örneğin, her gece).
    • Jenkins, GitLab CI, GitHub Actions gibi araçlar kullanma.
  6. Raporlama:

    • Test sonuçlarıyla ilgili detaylı raporlar oluşturma (örneğin, Allure Framework).

Rest-Assured kullanımı örneği:

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

        // GET isteği gönderme
        given()
                .when()
                .get("/users/2")
                .then()
                .statusCode(200)  // Durum kodunu kontrol et
                .body("data.id", equalTo(2))  // Yanıt gövdesindeki değeri kontrol et
                .body("data.first_name", equalTo("Janet"));
    }
}

Requests (Python) kullanımı örneği:

import requests

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

    assert response.status_code == 200  # Durum kodunu kontrol et
    data = response.json()
    assert data['data']['id'] == 2  # Yanıt gövdesindeki değeri kontrol et
    assert data['data']['first_name'] == 'Janet'