Sürüm: 0.31.0Bu dokümantasyon Spitfire 0.31.0 içindir.
Tarayıcı adımı (Web Vitals)
Tarayıcı adımı gerçek bir tarayıcıyla (headless Chromium) bir kullanıcı yolculuğu yapar ve kullanıcının gördüğünü ölçer: LCP (en büyük içeriğin görünmesi), CLS (sayfa kayması), INP (tıklamaya tepki), TTFB ve yükleme süresi. Amaç tarayıcıyla yük üretmek değil; protokol yükü (HTTP, gRPC…) sistemi zorlarken birkaç tarayıcı VU'suyla "kullanıcı yük altında ne görüyor?" sorusunu cevaplamaktır.
Ne zaman kullanılır
- Yük testi sırasında sayfaların gerçekten yavaşlayıp yavaşlamadığını, ön yüzün (JavaScript, görseller, üçüncü taraf betikler) API'den ayrı olarak ne kadar etkilendiğini görmek için.
- Bir sürümden sonra Web Vitals'ın bozulup bozulmadığını CI'da eşikle yakalamak için (
browser_lcp p(90)<2500).
Runner gereksinimi
Tarayıcı adımı, içinde Chromium bulunan bir runner ister: algebransoft/spitfire:<sürüm>-browser imajı. Runner'lar → Runner ekle → Docker sekmesinde Tarayıcı adımları için kutusunu işaretleyin; komut bu imajı kullanır. Böyle bir runner kendini browser: chromium etiketiyle bildirir ve Spitfire tarayıcı adımı olan koşuları yalnızca bu runner'lara verir. Yeterli tarayıcılı runner yoksa koşu başlamaz ve nedeni yazılır. Docker'sız runner'larda Chromium kuruluysa SPITFIRE_CHROME ortam değişkeniyle yolunu verin.
Kapasite: tarayıcı VU'su pahalıdır: gerçek bir sayfada VU başına ~350 MB bellek ve bir çekirdeğin ~%20'si. 4 vCPU / 8 GB'lık bir runner yaklaşık 10 tarayıcı VU'su taşır. Protokol yükünü başka runner'lara vermek ölçümü daha güvenilir yapar.
Adım ekleme
- Adım ekle → Protokol: Tarayıcı.
- Eylemleri sırayla ekleyin; ilk eylem Sayfayı aç olmalıdır:
- Sayfayı aç (URL; yükleme olayını bekler)
- Tıkla (CSS seçici; öğe görünene kadar bekler)
- Yaz (seçici ve metin;
{{değişken}}kullanılabilir) - Görünene kadar bekle (seçici)
- Metni doğrula (metin; seçici boşsa bütün sayfa) — metin süre içinde gelmezse adım başarısız olur
- Bekle (okuma) (süre)
- Her eylemin zaman aşımı vardır (varsayılan 30s).
Her VU'nun kendi sekmesi ve çerezleri vardır (gizli pencere gibi); oturum adımlar ve iterasyonlar arasında korunur. Check'ler sayfanın metnini görür: Gövde içerir ile "Siparişiniz alındı" gibi bir metni doğrulayabilirsiniz.
{"id": "buy", "name": "Satın al", "protocol": "browser",
"browser": {"actions": [
{"do": "goto", "url": "{{base}}/sepet"},
{"do": "type", "selector": "#email", "text": "{{email}}"},
{"do": "click", "selector": "button[type=submit]"},
{"do": "expect", "text": "Siparişiniz alındı", "timeout": "10s"}]}}Ürettiği metrikler
| Metrik | Anlamı |
|---|---|
req_duration |
Bütün yolculuk (eylemlerin toplam süresi) |
browser_lcp |
Son sayfanın Largest Contentful Paint'i (ms) |
browser_cls |
Son sayfanın Cumulative Layout Shift'i (birimsiz) |
browser_inp |
Adımdaki en uzun etkileşim (Interaction to Next Paint, ms) |
browser_ttfb, browser_load |
İlk bayt ve yükleme olayı (ms) |
browser_lag |
Runner'ın kendi zamanlayıcısının gecikmesi (ms): runner'ın meşguliyeti |
Koşu sayfasındaki Tarayıcı kartı her adımın p90 değerlerini Google'ın eşikleriyle renklendirir (LCP ≤ 2,5 sn iyi, > 4 sn zayıf; INP ≤ 200 ms iyi, > 500 ms zayıf; CLS ≤ 0,1 iyi, > 0,25 zayıf).
Ölçümün güvenilirliği: runner doyduğunda tarayıcı ölçümleri gerçekte olduğundan kötü görünür.
browser_lagp95 100 ms'yi aşarsa kart bir uyarı gösterir: tarayıcı VU'larını azaltın ya da tarayıcı adımlarına ayrı runner verin.
Chrome'un tanımlarına dikkat: kullanıcı girdisi (tıklama, yazma) LCP ölçümünü durdurur ve girdiden sonraki 500 ms içindeki kaymalar CLS'ye sayılmaz. Düşük içerikli görseller (düz renk) LCP adayı değildir.
Lisans
Bir koşuda en fazla: ücretsiz sürümde 1, Growth planlarında 5, Scale'de 20 tarayıcı VU'su; Enterprise'da sınır yok. Sayılan, tarayıcı adımı olan senaryoların VU'larıdır.
Sık karşılaşılan sorunlar
Belirti: Koşu "browser steps need runners with a browser" ile başlamıyor.
Neden: Seçilen ya da boştaki runner'larda tarayıcı yok.
Çözüm: -browser imajıyla bir runner ekleyin; Runner'lar sayfasında browser etiketini görün.
Belirti: Tarayıcı ölçümleri koşudan koşuya çok oynuyor, kartta "runner meşguldü" uyarısı var. Neden: Runner'ın CPU'su yetmiyor. Çözüm: Tarayıcı VU'larını azaltın, runner'ı büyütün ya da protokol yükünü başka runner'lara verin.