Ana içeriğe geç

Yük Testi

İngilizcesi
Load Testing
Okunuşu
lod testing

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/load-testing

Kısaca

Yük testi, bir sistemin beklenen trafik altında nasıl davrandığını ölçmek için aynı anda çok sayıda kullanıcıyı ya da isteği simüle eden performans testidir.

Yük testi nedir?

Yük testi, birçok kişi uygulamayı aynı anda kullandığında uygulamanın nasıl performans gösterdiğini kontrol eder. Bir yük testi aracı, HTTP istekleri gönderen binlerce simüle kullanıcı gibi trafik üretir ve yanıt sürelerini, throughput'u (saniyede işlenen istek sayısı) ve hata oranlarını ölçer. Amaç, gerçek kullanıcılar sistemin sınırlarını bulmadan önce sistemin performans hedeflerini karşıladığını doğrulamaktır.

Tipik bir yük testi sanal kullanıcıları kademeli olarak artırır, bir süre sabit bir trafik düzeyini korur ve ardından düşürür. Sonuçlar ortalamalara değil yüzdelik dilimlere (percentile) odaklanır: 300 ms'lik bir p95 gecikmesi, isteklerin %95'inin 300 ms içinde tamamlandığı anlamına gelir; bu da bir ortalamanın gizlediği yavaş uç değerleri ortaya çıkarır. Test sürerken ekipler, darboğazı, yani ilk tükenen kaynağı bulmak için CPU, bellek, veritabanı bağlantıları ve kuyruk uzunlukları gibi sunucu metriklerini izler.

Yeni bir köprüyü halka açmadan önce üzerinden ağır kamyonlar geçirerek test etmeye benzer. Ekipler yük testlerini büyük lansmanlardan veya indirim etkinliklerinden önce, büyük mimari değişikliklerden sonra ve otomatik ölçeklendirme (autoscaling) kurallarını ayarlarken çalıştırır. Testler üretime yakından benzeyen bir ortamda çalıştırılmalıdır, çünkü küçük bir dizüstü bilgisayar kurulumundan elde edilen sonuçlar gerçek davranışı nadiren öngörür.

Yük testi sıklıkla stres testiyle karıştırılır. Yük testi, beklediğiniz trafik düzeylerindeki davranışı kontrol eder; stres testi ise kırılma noktasını bulmak ve sistemin nasıl başarısız olup nasıl toparlandığını görmek için trafiği bu düzeylerin ötesine çıkarmaya devam eder. İlgili türler arasında ani bir trafik patlaması uygulayan spike testleri ve yavaş sorunları, örneğin bellek sızıntılarını ortaya çıkarmak için saatlerce normal yükü koruyan soak testleri vardır.

Önemli noktalar

  • Yük testi, bir sisteme karşı çok sayıda eşzamanlı kullanıcıyı ya da isteği simüle eder.
  • Temel ölçümler yanıt süresi yüzdelik dilimleri, throughput ve hata oranıdır.
  • p95 ve p99 gibi yüzdelik dilimler, ortalamaların gizlediği yavaş uç değerleri ortaya çıkarır.
  • Yük testi beklenen trafiği kontrol eder; stres testi kırılma noktasını bulmak için onu aşar.
  • Üretime benzer bir ortamda ve yalnızca yük bindirmenize izin verilen sistemlerde test yapın.

Örnek

Python'ın standart kütüphanesiyle minimal bir yük testipython
import time
import urllib.request
from concurrent.futures import ThreadPoolExecutor

URL = "http://localhost:8000/"  # only load-test systems you own

def timed_request(_):
    start = time.perf_counter()
    urllib.request.urlopen(URL).read()
    return time.perf_counter() - start

# 50 concurrent virtual users send 1,000 requests in total
with ThreadPoolExecutor(max_workers=50) as pool:
    durations = sorted(pool.map(timed_request, range(1000)))
print(f"p95 latency: {durations[949] * 1000:.0f} ms")  # the 950th fastest of 1,000

Sık sorulan sorular

Yük testi ile stres testi arasındaki fark nedir?

Yük testi, normal bir yoğun gün gibi beklediğiniz trafik altında bir sistemin nasıl performans gösterdiğini ölçer. Stres testi ise kırılma noktasını bulmak ve sistemin düzgün biçimde başarısız olup toparlandığını kontrol etmek için trafiği bilerek bu düzeyin ötesine çıkarır.

p95 gecikmesi nedir?

p95 gecikmesi, isteklerin %95'inin daha hızlı yanıtlandığı yanıt süresidir. Ortalamadan daha kullanışlıdır, çünkü ortalamanın gizleme eğiliminde olduğu en yavaş kullanıcıların deneyimini gösterir.

Üretime karşı yük testi çalıştırabilir miyim?

Bazen mümkündür, ama risklidir; çünkü test trafiği gerçek kullanıcılarla rekabet eder ve kesintiye neden olabilir. Çoğu ekip üretime benzeyen bir staging ortamını test eder ve bir yük testi yalnızca size ait olan ya da test etme izniniz bulunan sistemleri hedef almalıdır.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar