Örnek sorular
Pf Scripting Correlation ParameterizationZorluk 1
Performans testi betikleme (scripting) bağlamında "korelasyon" (correlation) ne anlama gelir?
- aVerim (throughput) karşılaştırmak için iki betiği aynı anda çalıştırmak
- bİsteklerdeki raporlama için istekleri mantıksal işlemler halinde gruplamak
- cSunucu yanıtından dinamik bir değeri çıkarıp sonraki bir istekte yeniden kullanmak✓
- dSanal kullanıcı oranını gerçek üretim kullanıcı oranıyla eşleştirmek
Açıklama:Korelasyon, sunucunun döndürdüğü dinamik bir değeri (oturum kimliği, token, CSRF değeri vb.) yakalayıp sonraki isteklerde kullanma tekniğidir; böylece betik gerçek bir istemci gibi davranır.
Pf Scripting Correlation ParameterizationZorluk 1
Kaydedilen bir performans testi betiği, korelasyon yapılmadan yeniden oynatıldığında (replay) neden sıkça başarısız olur?
- aÇünkü kaydedilen betikler hiçbir zaman geçerli HTTP başlığı içermez
- bKaydedilen oturum token'ı yeniden oynatmada geçersiz kalır✓
- cÇünkü kayıt aracı yanıt gövdesini her zaman sıkıştırır
- dÇünkü yeniden oynatma araçları POST isteği gönderemez
Açıklama:Kayıt sırasında sunucunun ürettiği dinamik değerler betiğe düz metin olarak gömülür. Yeniden oynatmada sunucu yeni değerler üretir; korelasyon (dinamik çıkarma ve yeniden enjeksiyon) yapılmazsa sabit değerler geçersiz kalır.
Pf Scripting Correlation ParameterizationZorluk 1
Giriş yapıp ardından ödeme (checkout) yapılan bir performans testi senaryosunda korelasyon gerektiren tipik bir değer örneği nedir?
- aGiriş sayfası HTML'inde dönen ve giriş POST isteğinde gerekli olan bir CSRF token'ı✓
- bGiriş sayfasını biçimlendirmek için kullanılan statik CSS dosya yolu
- cTest planında yapılandırılan sanal kullanıcının think-time değeri
- dTest koşumu için yapılandırılan thread sayısı
Açıklama:Giriş formu yanıtına gömülü CSRF token'ı klasik bir dinamik değerdir: oturum/istek bazında değişir ve yanıttan çıkarılıp sonraki istekte geri gönderilmelidir; statik varlıklardan veya test aracı yapılandırma değerlerinden farklıdır.
Pf Scripting Correlation ParameterizationZorluk 1
Performans testi betiklemede "parametrizasyon" (parameterization) nedir?
- aTestin tüm süresi boyunca kullanılan tam sanal kullanıcı sayısını sabitlemek
- bSonraki bir istekte yeniden kullanmak için bir HTTP yanıt başlığından dinamik bir token çıkarmak
- cGerçek trafik göndermeye başlamadan önce bir yük testi senaryosu için ramp-up süresini ayarlamak
- dBetikteki sabit kodlanmış girdi değerlerini harici bir veri kaynağından alınan değerlerle değiştirmek✓
Açıklama:Parametrizasyon, sabit kodlanmış değerleri (ör. tek bir kullanıcı adı) bir veri dosyasından ya da üreticiden alınan değerlerle değiştirmek demektir; böylece her sanal kullanıcı veya iterasyon farklı, gerçekçi girdi verisi kullanabilir.
Pf Scripting Correlation ParameterizationZorluk 1
500 sanal kullanıcıyla bir giriş (login) endpoint'ini yük testine tabi tutarken parametrizasyon neden önemlidir?
- aYük üretici makinenin CPU kullanımını azaltır
- bAynı kimlik bilgileri hesap başına tek oturum sınırına takılabilir✓
- cSunucuya hiç gönderilmeden önce istekteki şifre alanını otomatik olarak şifreler
- dÖdeme akışının geri kalanı için korelasyon ihtiyacını tamamen ortadan kaldırır
Açıklama:Her sanal kullanıcı aynı sabit kimlik bilgileriyle giriş yaparsa, test gerçekçi eşzamanlı kullanımı temsil etmez ve gerçek performans davranışını maskeleyen ilgisiz hatalara (hesap kilitlenmesi, oturum çakışması gibi) yol açabilir.
Pf Scripting Correlation ParameterizationZorluk 2
k6'da büyük bir parametrizasyon veri kümesini (ör. binlerce kullanıcı adı) bir kez yükleyip tüm sanal kullanıcılar arasında salt-okunur şekilde paylaşmak için hangi yapı önerilir?
- adefault fonksiyonu içinde tanımlanan normal bir JavaScript dizisi
- bRastgele dizi verisi saklayabildiği için bir k6 Counter metriği
- cBüyük tablosal veri kümeleri tutmak için tasarlanmış olan __ENV nesnesi
- dVeriyi init'te bir kez ayrıştırıp VU'lar arasında paylaşan SharedArray✓
Açıklama:k6'nın SharedArray'i veriyi init bağlamında bir kez yükleyip ayrıştırır, ardından aynı belleği tüm VU'lar arasında paylaşır; böylece her VU'nun büyük veri kümesinin kendi kopyasını ayrıştırmasının getirdiği bellek yükünden kaçınılır.