Yük Testi Nedir? (Örnekler)

⚡ Akıllı Özet

Yük testi, bir yazılım uygulamasının, beklenen en yüksek kullanım oranına kadar, birçok kullanıcının aynı anda erişmesi durumunda nasıl davrandığını ölçer. Maksimum çalışma kapasitesini, onu sınırlayan darboğazları ve mevcut altyapının yeterli olup olmadığını belirler.

  • 👥 Temel Tanım: Beklenen en yüksek kullanıcı yükünü uygulayan ve yanıtı ölçen, işlevsel olmayan bir test.
  • ⏱️ Başlıca Ölçüt: Yanıt süresi, nicel, ilgili, gerçekçi, ulaşılabilir ve ölçülebilir olmalıdır.
  • 🏗️ Buldukları: Maksimum kapasite, altyapı eksiklikleri, veritabanı sınırları ve yapılandırma sorunları.
  • 📉 Yük ve Gerilim: Yük, beklenen tepe noktasında durur; gerilim, kırılma noktasını bulmak için kasıtlı olarak bu noktayı aşar.
  • ️ Takım Seçenekleri: JMeterGatling ve k6 açık kaynaklıdır; LoadRunner ise yerleşik ticari bir seçenektir.
  • ???? Önkoşul: Bu işlemi yalnızca uygulama işlevsel olarak kararlı hale geldikten sonra çalıştırın, aksi takdirde kusurlar performans sonuçlarını gizleyecektir.

Yük testi nedir?

Yük Testi Nedir?

Yük Testi yazılım uygulamasının performansının belirli bir beklenen yük altında test edildiği işlevsel olmayan bir yazılım test sürecidir. Yazılım uygulamasının aynı anda birden fazla kullanıcı tarafından erişilirken nasıl davrandığını belirler. Yük Testinin amacı, performans darboğazlarını iyileştirmek ve dağıtımdan önce yazılım uygulamasının kararlılığını ve sorunsuz çalışmasını sağlamaktır.

Bu test genellikle şunları tanımlar:

  • Bir uygulamanın maksimum çalışma kapasitesi
  • Mevcut altyapının uygulamayı çalıştırmak için yeterli olup olmadığını belirleyin
  • En yüksek kullanıcı yüküne göre uygulamanın sürdürülebilirliği
  • Bir uygulamanın destekleyebileceği eşzamanlı kullanıcı sayısı ve daha fazla kullanıcının uygulamaya erişmesine olanak tanıyan ölçeklenebilirlik.

Bir tür işlevsel olmayan testtir. Yazılım Mühendisliğinde, Yük testi genellikle İstemci/Sunucu, Web tabanlı uygulamalar (hem İntranet hem de İnternet) için kullanılır.

Yük Testi

Yük testi neden gereklidir?

Bazı son derece popüler siteler, yoğun trafik hacimlerine ulaştıklarında ciddi kesintiler yaşamaktadır. E-ticaret web siteleri reklam kampanyalarına büyük yatırım yapar, ancak pazarlamanın trafik getirdiği durumlarda optimum sistem performansını sağlamak için Yük Testine yatırım yapmaz.

Yük testi örnekleri

  • Toysrus.com, kendi reklam kampanyasının yarattığı trafiği kaldıramadı ve hem pazarlama harcamalarını hem de üretmesi gereken satışları kaybetti.
  • Bir Havayolu web sitesi, bir festival teklifi sırasında 10000'den fazla kullanıcıyı idare edemedi.
  • Encyclopedia Britannica, çevrimiçi veritabanlarına ücretsiz erişimi bir promosyon teklifi olarak ilan etti. Haftalarca gelen trafik saldırısını karşılayamadılar.

Birçok site yoğun trafikle karşılaştığında yükleme süreleri gecikir. Birkaç Gerçek –

  • Sayfa yükleme süresi yaklaşık 3 saniyeyi geçtikten sonra terk edilme oranı hızla artıyor ve bu etki mobil bağlantılarda daha da belirginleşiyor.
  • Yavaş çalışan sayfalar, e-ticaret sitelerine her ziyaret başına ölçülebilir gelir kaybına neden olur; bu nedenle performans, teknik bir ölçüt olmaktan ziyade bir işletme ölçütü olarak ele alınır.

Neden Yük Testi?

  • Yük testi sisteme, güvenilirliğine ve performansına güven verir.
  • Yük Testi, yoğun kullanıcı stresi senaryoları altında sistemdeki darboğazların üretim ortamında meydana gelmeden önce belirlenmesine yardımcı olur.
  • Yük testi, düşük performansa karşı mükemmel koruma sağlar ve performans yönetimi ve üretim ortamının izlenmesi için tamamlayıcı stratejiler içerir.

Yük Testinin Hedefleri

Yükleme testi, uygulamayı pazara veya üretime taşımadan önce aşağıdaki sorunları belirler:

  • Her işlem için yanıt süresi
  • Sistem bileşenlerinin çeşitli yükler altında performansı
  • Farklı yükler altında Veritabanı bileşenlerinin performansı
  • İstemci ile sunucu arasındaki ağ gecikmesi
  • Yazılım tasarımı sorunları
  • Web sunucusu, uygulama sunucusu, veritabanı sunucusu vb. gibi sunucu yapılandırma sorunları.
  • CPU maksimuma çıkarma, bellek sınırlamaları, ağ darboğazı vb. gibi donanım sınırlama sorunları.

Yük testi, performansı artırmak için sistemde ince ayar yapılmasının mı yoksa donanım ve yazılımda değişiklik yapılmasının mı gerekli olduğunu belirleyecektir. Yük testini etkili bir şekilde gerçekleştirmek için çeşitli yöntemlerden yararlanabilirsiniz. performans test araçları İyileştirilecek alanları belirlemenize yardımcı olmak için mevcut olanlardır.

Yük Testinin Ön Koşulları

Yük testinin ana ölçüsü tepki süresidir. Yük testine başlamadan önce şunları belirlemelisiniz:

  • Tepki süresinin önceden ölçülüp karşılaştırılmadığı – Niceliksel
  • Yanıt süresinin iş sürecine uygulanabilir olup olmadığı – İlgili
  • Yanıt süresinin haklı olup olmadığı – Gerçekçi
  • Tepki süresinin ulaşılabilir olup olmadığı – Ulaşılabilir
  • Tepki süresinin bir alet veya kronometre kullanılarak ölçülebilir olup olmadığı – Ölçülebilir

Yük testi öncesinde ortam kurulumu

Donanım Platformu Yazılım Konfigürasyon
  • Sunucu Makineleri
  • İşlemciler
  • Bellek
  • Disk kapasitesi
  • Makine yapılandırmasını yükle
  • Ağ yapılandırması
  • OperaZamanlama Sistemi
  • Sunucu Yazılımı

Yük Testi Stratejileri

Yük testi yapmanın birçok yolu vardır. Aşağıda birkaç yük testi stratejisi verilmiştir:

Yük Testi Stratejileri

  • Manuel Yük Testi: Bu, yük testi yürütme stratejilerinden biridir, ancak tekrarlanabilir sonuçlar üretmez, bir uygulamada ölçülebilir stres seviyeleri sağlayamaz ve koordine edilmesi imkansız bir süreçtir.
  • Şirket içinde geliştirilmiş yük testi araçları: Yük testinin öneminin farkına varan bir kuruluş, yük testlerini gerçekleştirmek için kendi araçlarını geliştirebilir.
  • Açık kaynak yük testi araçları: Açık kaynak olarak sunulan ve ücretsiz olan çeşitli yük test araçları mevcuttur. Ücretli muadilleri kadar karmaşık olmayabilirler, ancak bütçeniz kısıtlıysa en iyi seçimdirler.
  • Kurumsal sınıf yük testi araçları: Genellikle yakalama/oynatma özelliğiyle birlikte gelirler. Çok sayıda protokolü destekliyorlar. Olağanüstü sayıda kullanıcıyı simüle edebilirler.

Yük Testi nasıl yapılır

Yük testi süreci kısaca aşağıdaki gibi açıklanabilir:

  1. adanmış oluşturun Test ortamı yük testi için
  2. Yük testi senaryolarını tanımlayın.
  3. Bir uygulama için yük testi işlemlerini belirleme
    • Her işlem için Veri Hazırlayın
    • Sisteme erişen Kullanıcı sayısının tahmin edilmesi gerekiyor
    • Bağlantı hızlarını belirleyin. Bazı kullanıcılar kiralık hatlar üzerinden bağlanırken bazıları çevirmeli bağlantı kullanabilir
    • Kullanıcıların kullandığı farklı tarayıcıları ve işletim sistemlerini belirleme 
    • Web, uygulama ve Veritabanı Sunucuları gibi tüm sunucuların konfigürasyonu
  4. Test Senaryosunun yürütülmesi ve izlenmesi. Çeşitli metriklerin toplanması
  5. Sonuçları analiz edin. Tavsiyelerde bulunmak
  6. Sisteme İnce Ayar Yapın
  7. Yeniden test et

Yük Testi İçin Yönergeler

Yük testi yönergeleri

  1. Uygulama işlevsel olarak kararlı hale geldikten sonra yük testi planlanmalıdır.
  2. Veri havuzunda çok sayıda benzersiz verinin hazır olması gerekir
  3. Her senaryo veya komut dosyası için kullanıcı sayısına karar verilmelidir.
  4. Disk GÇ alanından tasarruf etmek için ayrıntılı günlükler oluşturmaktan kaçının
  5. Sitedeki görsellerin indirilmesini engellemeye çalışın
  6. Yük testi test senaryolarının yürütülmesi sürecinde, geçen süre boyunca yanıt süresinin tutarlılığı kaydedilmeli ve bunlar çeşitli test çalıştırmalarıyla karşılaştırılmalıdır.

Yük ve Stres testi arasındaki fark

Yük Testi Stres testi
Yük testi, çeşitli iş yükleri altında sistemdeki darboğazları tanımlar ve yük kademeli olarak artırıldığında sistemin nasıl tepki vereceğini kontrol eder. Stres testi sistemin kırılacağı maksimum noktayı ortaya çıkaracak şekilde kırılma noktasını belirler.
Sistemin üst sınırını tanımak için uygulamanın SLA'sını ayarlayın ve sistemin ağır bir yükü nasıl kaldırabileceğini kontrol edin. Sistemin aşırı yükler altında nasıl davrandığını ve arızadan nasıl kurtulduğunu kontrol etmek.
Bir web uygulamasında daha fazla yük oluşturmak, yük testinin temel amacıdır. Stres testi, sunucuların önemli bir süre boyunca ani yüksek yük altında çökmemesini sağlamayı amaçlamaktadır.
Yük testinde kontrol edilen özellikler en yüksek performans, sunucu miktarı ve yanıt süresidir. Bu tür testler stabilite yanıt süresini vb. kontrol eder.
Yük testinde yük limiti bir kırılma eşiğidir. Stres testinde yük limiti kırılma eşiğinin üzerindedir.

Fonksiyonel ve Yük Testi Arasındaki Fark

Fonksiyonel Testler Yük Testi
Uygun adımlara ve önkoşullara sahip olduğumuz için fonksiyonel testlerin sonuçları kolayca tahmin edilebilir. Yük testlerinin sonuçları tahmin edilemez
Fonksiyonel testlerin sonuçları biraz farklılık gösterir Yük testi sonuçları büyük ölçüde farklılık gösteriyor
Yürütme sıklığı Fonksiyonel Testler yüksek olacak Yük testi yürütme sıklığı düşük olacaktır
Fonksiyonel testlerin sonuçları test verilerine bağlıdır Yük testi kullanıcı sayısına bağlıdır.

Yük Testi Araçları

LoadRunner

HP'nin bir ürünü olan ve şimdi bir parçası olan LoadRunner OpenText Micro Focus'un satın alınmasının ardından, uygulamaları normal ve en yüksek yük altında test eder. Gerçek ağ trafiğini taklit eden sanal kullanıcılar aracılığıyla yük oluşturur ve sonuçları grafiksel olarak raporlar.

Daha fazlasını okuyun LoadRunner eğitim videosu.

Apache JMeter

Açık kaynak Java Bu araç, en yaygın kullanılan ücretsiz seçenektir. HTTP, JDBC, JMS, FTP ve daha fazlasını destekler, test planlarını XML olarak saklar ve CI işlem hatlarına entegre olur. Bkz. JMeter öğretici Ayrıntılı bilgi için.

mitralyöz

Testleri Scala dilinde kod olarak yazılan açık kaynaklı bir araç veya JavaOrta düzey donanımlarda yüksek eşzamanlılık işlemlerini yönetir ve sürüm kontrollü test komut dosyalarını tercih eden ekipler için uygun olan ayrıntılı HTML raporları üretir.

k6

Testleri İngilizce olarak yazılmış açık kaynaklı bir araç. JavaBu betik, ayrı bir kalite güvence faaliyeti olarak değil, bir sürekli entegrasyon (CI) hattı içinde geliştiricinin sorumluluğundaki performans testleri için tasarlanmıştır.

Bir araç seçme

Pick JMeter En geniş protokol kapsamı için ücretsiz olarak Gatling veya k6 kullanılabilir; ekip testlerin uygulama ile birlikte kaynak kontrolünde tutulmasını istiyorsa, kurumsal protokol desteği ve satıcı yardımı lisansı haklı çıkarıyorsa LoadRunner gibi ticari bir araç tercih edilebilir.

Yük Testinin Avantajları ve Dezavantajları

Yük testinin avantajları şunlardır:

  • Üretimden önce performans darboğazlarının belirlenmesi
  • Sistemin ölçeklenebilirliğini artırır
  • Sistemin kapalı kalma süresiyle ilgili riski en aza indirin
  • Başarısızlık maliyetlerinin azalması
  • Müşteri memnuniyetini artırın

Yük testinin dezavantajları:

  • Çoğu araç, gerçekçi senaryolar yazmak için programlama bilgisi gerektirir.
  • Fiyatlandırma desteklenen sanal kullanıcı sayısına bağlı olduğundan araçlar pahalı olabilir.

Yük Testi Sırasında Kaydedilmesi Gereken Temel Metrikler

Ön koşullar bölümü, yanıt süresini temel ölçüt olarak belirler. Uygulamada, bir yük testi raporunun altı haneli bir değer içermesi gerekir, çünkü yanıt süresi tek başına bir sistemin neden yavaşladığını size söyleyemez.

metrik Sana ne anlatıyor? Uyarı işareti
Ortalama yanıt süresi Tipik kullanıcı deneyimi Yük arttıkça yükseliyor
95. yüzdelik dilim yanıt süresi En yavaş kullanıcıların deneyimi Ortalamanın çok üzerinde
çıktı Saniyede başarıyla işlenen istek sayısı Yük yükselirken düzleşme veya düşme
Hata oranı Başarısız veya zaman aşımına uğrayan isteklerin payı Anlaşma eşiğinin üzerindeki herhangi bir artış
Eşzamanlı kullanıcılar Gerçek zamanlı oturumlar gerçekleştirildi. Beklenenden daha düşük
Sunucu kaynak kullanımı CPU, bellek, disk ve ağ kapasitesi Yaklaşık yüzde 80'in üzerindeki herhangi bir kaynak

Veri aktarım hızını yanıt süresiyle birlikte okuyun. Artan işlem hacmiyle birlikte artan yanıt süresi, sistemin daha yoğun çalıştığı anlamına gelir. Artan yanıt süresiyle birlikte düşen Veri aktarım hızı, sistemin kapasitesini aştığı ve artık iş kaybettiği anlamına gelir; testin amacı da tam olarak bu noktayı bulmaktır.

Ortalamayı asla tek başına bildirmeyin. 95. yüzdelik dilimi 1.1 saniye olan ortalama 900 ms, tutarlı bir sistemi tanımlar. Aynı ortalamanın 95. yüzdelik diliminin 11 saniye olması, her yirmi kullanıcıdan birinin kabul edilemez bir deneyim yaşadığı ve bu ortalamanın bunu gizlediği anlamına gelir.

Bu Test Diğer Performans Testleriyle Nasıl Karşılaştırılır?

Performans testleri, uygulanan yükün şekli bakımından farklılık gösteren bir test ailesidir ve bu nedenle kolayca karıştırılabilirler.

Test türü Artan nedir? Soruyu cevaplıyor
Yük testi Eş zamanlı kullanıcı sayısı, beklenen zirveye kadar. Normal yoğun trafik koşullarında hedeflere ulaşıyor mu?
Hacim testi Veritabanında bulunan veriler Veri kümesi büyüdükçe bu performansı sürdürebiliyor mu?
Stres testi Kapasitenin ötesinde yükleme, arızaya kadar Nereden ve nasıl kırılıyor?
Spike testi Yükle, anında ve son derece Şokun etkisinden kurtulup iyileşebilir mi?
Dayanıklılık testi Normal yük altında süre Performans zamanla düşer mi?
ıslatma testi Süre, izleme kaynakları Bellek veya bağlantı sızıntıları var mı?
Stabilite testi Değişken koşullar Koşullar değiştikçe güvenilirliğini koruyor mu?

Burada en önemli ayrım şudur: Hacim testi veriyi ölçeklendirirken, yük testi kullanıcı sayısını ölçeklendirir. On bin satırlık veriyi iki saniyede, on milyon satırlık veriyi ise iki dakikada işleyen bir raporda yük sorunu değil, hacim sorunu vardır ve ek sunucu kapasitesi de bu sorunu çözmeyecektir.

SSS

Yük testi, beklenen en yüksek yükü uygular ve hedeflere ulaşılıp ulaşılmadığını kontrol eder. Stres testi ise, sistemin arıza noktasını bulmak ve sistemin sorunsuz bir şekilde arızalanıp toparlandığını doğrulamak için kapasiteyi kasıtlı olarak aşar.

Uygulama işlevsel olarak istikrarlı hale geldikten ve keşfedilen bir darboğazın hala giderilebileceği kadar erken bir aşamada çalıştırılmalıdır. Son haftaya bırakılması, bulduğu sorunlar üzerinde harekete geçmek için zaman bırakmaz.

JMeterÇünkü ücretsizdir, en geniş protokol yelpazesini destekler ve en kapsamlı dokümantasyona sahiptir. Eğer ekip, sürüm kontrollü kod olarak yazılmış testleri tercih ediyorsa, Gatling veya k6'ya geçin.

Yapay zeka, üretim trafiği kayıtlarından gerçekçi yük profilleri çıkarır, sonuçlardaki anormallikleri otomatik olarak tespit eder ve bir çalıştırma planlanmadan önce hangi kod değişikliklerinin performansı düşürme olasılığının yüksek olduğunu tahmin eder.

Evet. Yapay zeka araçları, kaydedilmiş kullanıcı yolculuklarını veya API özelliklerini çalıştırılabilir komut dosyalarına dönüştürür. Gerçekçi olmayan değerler yanıltıcı sonuçlar doğurabileceğinden, oluşturulan düşünme sürelerini ve veri parametreleştirmesini doğrulayın.

Bu yazıyı şu şekilde özetleyin: