> tpl_qav_007
API, Sözleşme ve Entegrasyon Test Planı
Şema uyumluluğunu, sınır yükü (fuzzing) testlerini, sahte sunucu (mock) doğruluğunu, kırıcı değişiklik regresyon kapılarını ve uçtan uca API birlikte çalışabilirlik doğrulamasını tanımlayan tüketici odaklı sözleşme (contract) ve dağıtık servis entegrasyon test şartnamesi.
Tüketici sözleşmelerini, şema uyumluluğunu, mock doğruluğunu ve kırıcı değişiklik kapılarını standartlaştıran API sözleşme ve entegrasyon test planı.
Önemli Teknik Doküman Şablonu ve Hukuki Uyarı
TinyCTO.tv Teknik Doküman Şablon Bildirimi: Bu şablon genel eğitim ve operasyon amaçlı bir başlangıç materyalidir. Hukuki, vergisel, muhasebesel, yatırım, satın alma, mevzuat, güvenlik veya sertifikasyon danışmanlığı değildir. Gereklilikler ülkeye, kuruma, sözleşmeye ve riske göre değişir. Kullanmadan önce yetkin uzmanlarla gözden geçirip uyarlayın.
Çözülen Üretim Problemi
Bağımsız mikroservis ekipleri geriye dönük uyumsuz API alan adı değişiklikleri veya null olabilirlik farkları içeren sürümler dağıtır; bu da CI hiçbir hata yakalamadan istemci frontend'lerini ve iş ortağı entegrasyonlarını sessizce bozar.
Ne Zaman Kullanılmalı?
- •Frontend web/mobil uygulamaları ile arka uç mikroservisleri arasında tüketici odaklı sözleşme testleri kurarken
- •Üçüncü taraf iş ortağı entegrasyonlarını ve genel API şeması geriye dönük uyumluluğunu doğrularken
- •Bağımsız dağıtım döngülerine sahip dağıtık servis ekosistemlerinde sessiz kırıcı değişiklikleri önlemek için
Ne Zaman Kullanılmamalı?
- •Sistem genelinde yüksek eşzamanlı işlem hacmi ve gecikme stres testlerinde (TPL-QAV-006 kullanın)
- •Kurumsal API ağ geçidi tasarımı ve REST mimari standartlar dokümantasyonunda (TPL-ARC-012 kullanın)
5 Şablon Bölümü ve Yapısal İskelet
Tüketici odaklı sözleşme testi iş akışı: İstemciler birim testler sırasında Pact sözleşmeleri üretir, Pact Broker'a yükler ve sağlayıcı servisler bu sözleşmeleri bağımsız olarak doğrular.
Yayınlanan OpenAPI 3.1 şemalarına karşı çalışma zamanı yük doğrulaması: Katı tipleme, zorunlu alan varlığı, enum kısıtları ve beklenmeyen alanların ayıklanması.
HTTP durum kodu anlambilimi: Doğrulama için 400, kimliksiz istek için 401, yetkisiz için 403, bulunamadı için 404, çakışma için 409 ve 422. Bozuk yükler, aşırı uzun metinler ve SQL/XSS belirteçleri.
Harici ödeme ve SMS ağ geçitleri genelinde Prism ve WireMock ile servis sanallaştırma. Sahte servislerin (mock) sözleşme doğruluk standartları.
CI'da otomatik kırıcı değişiklik tespiti (openapi-diff veya Buf ile): Silinen alanlar, değişen veri tipleri veya sürüm artırmadan eklenen zorunlu parametrelerin tespiti.
Doldurma ve Uygulama Yönergeleri
Bağımsız İnceleme ve Onay Kontrol Listesi
- Tüm zorunlu bölümler dolduruldu
- Gizli anahtar veya parola içermiyor
- Yönetici sponsor onayı alındı
API, Sözleşme ve Entegrasyon Test Planı - Örnek Vaka Analizi
Örnek Organizasyon: Çok Kiracılı SaaS Çekirdek Bankacılık ve Kredi Motoru
Çok Kiracılı SaaS Çekirdek Bankacılık ve Kredi Motoru için eksiksiz operasyonel uygulamayı gösteren gerçek dünya vaka analizi.
- •18 mikroservis genelinde Pact tüketici odaklı sözleşme testi uygulayarak dağıtım kaynaklı entegrasyon kesintilerini sıfırladı
- •GitHub Actions üzerinde OpenAPI 3.1 regresyon kapılarını otomatikleştirerek canlıya çıkmadan önce 14 kırıcı alan değişikliğini yakaladı
- •Prism ile servis sanallaştırma kullanarak tam entegrasyon test döngüsü süresini 3 saatten 6 dakikaya indirdi
Sıkça Sorulan Sorular
Sözleşme Testi geleneksel Uçtan Uca Entegrasyon Testinden nasıl ayrılır?
Geleneksel E2E entegrasyon testi, tüm servislerin yavaş ve kırılgan bir test ortamında aynı anda ayakta olmasını gerektirir. Sözleşme testi ise bağımlılıkları sözleşmelere böler; her servis diğerinden bağımsız olarak milisaniyeler içinde doğrulanır, testler 100 kat daha hızlı ve kararlı olur.
Pact ekosistemindeki "can-i-deploy" aracı nedir ve kesintileri nasıl önler?
can-i-deploy, dağıtım öncesinde Pact Broker'ı sorgulayan bir CLI aracıdır; dağıtılmakta olan sürümün hedef canlı ortamda o an çalışan istemci sürümleriyle uyumlu olup olmadığını kontrol eder. Uyumsuzluk varsa dağıtımı anında engeller.
Asenkron olay güdümlü mimariler (Kafka/RabbitMQ) sözleşmelerle nasıl test edilir?
Pact mesaj tabanlı sözleşme testini destekler. Tüketici servis, bir Kafka konusunda veya kuyrukta beklediği mesajın şema yapısını tanımlar; sağlayıcı servis ise gerçek mesaj kuyruğunu ayağa kaldırmadan mesaj üretiminin bu şemayı sağladığını doğrular.
Teknik Doküman Şablon Paketi
Giriş GerekliTüm boş şablonları, işlenmiş senaryoları ve doğrulama manifestolarını tek bir arşivde indirin.
Yetkili Standartlar ve Kaynaklar
- Pact: Contract Testing Documentation and PrinciplesPact Foundation • OFFICIAL REQUIREMENT
- OpenAPI Specification v3.1.0OpenAPI Initiative • OFFICIAL REQUIREMENT
- RFC 7807: Problem Details for HTTP APIsIETF • OFFICIAL REQUIREMENT
