Skip to content

Test Matrisi ve Metrikler

Micro Socket invariant'larının ölçülebilir doğrulanması için test senaryoları ve metrikler.


İnvariant Bazlı Metrikler

İnvariantMetrikHedef
I₂ Çift işlememeÇift işlenen olay oranı (%)0%
I₃ SıralamaYeniden sıralama / gap oranı (%)0%
I₁ ACLYetkisiz erişim denemesi → REDİR/ERROR%100 red
I₅ Gecikmep50 / p95 / p99 (ms)p99 < SLO (örn. 100ms)
I₆ ResumeKesinti sonrası eksiksiz devam oranı (%)≥ 99%
I₄ TeslimKayıp mesaj oranı (QoS≥1)0%

Test Matrisi Tablosu

İhlal / SenaryoTestBeklenenHedef
Çift işlemAynı messageId ile çoklu PUBLISHİkinci ve sonrası işlenmez%0 çift işlem
Sıralama bozulmasıSıra dışı gelen mesajlarClient sırayla işler / replay ister%0 sıra hatası
Yetkisiz erişimACL'siz kullanıcı SUBSCRIBE/PUBLISHREDİR/ERROR%100 red
Gecikme aşımıYük altında publish→deliverp99 < Xms≥ %95 SLO sağlanır
Resume başarısızlığıBağlantı kes, yeniden bağlanEksiksiz veri≥ %99
Eksik veriBroker/gateway crashKayıp minimum0 veya < %1

E2E ve Yük Testleri

  • Bağlantı: 100K paralel WebSocket + SUBSCRIBE.
  • Mesaj yükü: Topic başına 1K msg/s, 50 topic; latency ve kuyruk ölçümü.
  • Kaos: Gateway'lerin yarısını kapat/aç; omurga yavaşlat; resume ve kayıp kontrolü.
  • Güvenlik: Geçersiz token, izinsiz topic; SQL-injection benzeri topic adı → hata beklenir.

Örnek Assertion (Node.js Test)

javascript
// Çift işlem: Aynı messageId iki kez publish → sadece bir kez işlensin
const messageId = 'test-idempotent-1';
client.publish('orders', { amount: 1 }, messageId);
client.publish('orders', { amount: 1 }, messageId); // duplicate
// İkinci ACK status: 'duplicate' olmalı; backend'de tek işlem

Detaylı senaryolar ve fintech odaklı kullanım: Fintech.

Star the repo on GitHub if this documentation is useful — link in the navbar above.