Middle
Web hizmetini nasıl kontrol edeceksiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Web hizmetinin doğrulanması birkaç temel aşama ve test türünü içerir:
-
Gereksinimlerin ve spesifikasyonların anlaşılması:
- Dokümantasyonun incelenmesi (Swagger/OpenAPI, WSDL, fonksiyonel spesifikasyonlar).
- Geliştirme ekibi veya iş analistleri ile anlaşılmayan noktaların netleştirilmesi.
-
Test planlaması:
- Test stratejisinin belirlenmesi.
- Test yöntemleri ve araçlarının seçimi.
- Test verisi hacminin planlanması.
-
Fonksiyonellik testleri:
- Pozitif senaryolar: Doğru giriş verileriyle beklenen davranışın kontrolü.
- Negatif senaryolar: Yanlış verilerin işlenmesi, hatalar, sınır değerleri.
- Tüm işlemlerin (GET, POST, PUT, DELETE vb.) testi.
- İstek ve yanıtların yapısının doğrulanması (JSON, XML).
- HTTP yanıt durum kodlarının kontrolü (2xx - başarı, 4xx - istemci hatası, 5xx - sunucu hatası).
- Çalışma sırasında sunucunun yeniden başlatılması (negatif senaryo için).
-
Entegrasyon testleri:
- Web hizmetinin diğer hizmetler veya sistemlerle etkileşiminin kontrolü.
- Bağımlı hizmetlerin yanıtlarını taklit edebilen araçların kullanımı (mock sunucular).
-
Performans testleri:
- Yük testi: Hizmetin beklenen yük altında davranışının kontrolü.
- Stres testi: Beklenenden daha yüksek yük altında çalışmanın doğrulanması ve arıza noktasının belirlenmesi.
- Dayanıklılık testleri (Endurance testing): Hizmetin uzun süreli yük altında çalışmasının kontrolü.
- Yanıt süresi ve bant genişliğinin ölçümü.
-
Güvenlik testleri:
- Kimlik doğrulama ve yetkilendirme kontrolleri.
- SQL enjeksiyonları, XSS ve diğer güvenlik açıklarını önlemek için girişlerin doğrulanması.
- HTTPS kullanımının kontrolü.
-
Veri testleri:
- Hizmet tarafından döndürülen verilerin doğruluğunun kontrolü.
- Oluşturma, güncelleme ve silme işlemlerinde veri bütünlüğünün sağlanması.
- Büyük veri hacimleriyle testler.
-
Test otomasyonu:
- Rutin fonksiyonel testlerin otomasyonu.
- API testleri için kütüphaneler ve çerçevelerin kullanımı (Rest Assured, JUnit/TestNG, Pytest, Postman Newman).
- Testlerin otomatik çalışması için CI/CD yapılandırması.
-
Araçlar:
- Postman, Insomnia (elle ve otomatik testler).
- Apache JMeter, LoadRunner, Gatling (performans testleri).
- OWASP ZAP, Burp Suite (güvenlik testleri).
- Programlama dilleri için kütüphaneler (Java için Rest Assured, Python için Requests vb.).
-
Raporlama:
- Bulunan hataların detaylı açıklamalarıyla kaydı, tekrar adımlar, beklenen ve gerçek sonuçlar, istek/yanıt verileri, HTTP durumu ve loglar.
- Test ilerleme raporlarının hazırlanması.
Java'da Rest Assured kullanılarak otomatikleştirilmiş test örneği:
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;
class UserServiceTest {
@Test
void testGetUserById() {
int userId = 1;
given()
.baseUri("http://api.example.com") // Servisin temel URL'si
.when()
.get("/users/" + userId) // Metod ve endpoint
.then()
.statusCode(200) // Durum kodunun kontrolü
.body("id", equalTo(userId)) // Yanıt içindeki alanın kontrolü
.body("name", equalTo("John Doe")); // Diğer alanın kontrolü
}
@Test
void testCreateUser() {
String requestBody = "{\n" +
" \"name\": \"Jane Smith\",\n" +
" \"email\": \"jane.smith@example.com\"\n" +
"}";
given()
.baseUri("http://api.example.com")
.contentType("application/json") // İçerik türünü ayarla
.body(requestBody) // İstek gövdesi
.when()
.post("/users") // Oluşturmak için metod ve endpoint
.then()
.statusCode(201) // "Oluşturuldu" durum kodu
.body("name", equalTo("Jane Smith"))
.body("id", org.hamcrest.Matchers.notNullValue()); // Oluşturulan ID'yi kontrol et
}
}