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:
-
Ç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ı.
-
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.
-
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.
-
Veri yönetimi:
- Test verilerini dosyalarda (JSON, CSV) veya veritabanlarında saklama.
- Test öncesi veri hazırlama ve sonrası temizleme (gerekirse).
-
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.
-
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'