load testing complete guide
Yeni başlayanlar için Tam Yük Testi Kılavuzu:
Bu eğitimde, neden Yük Testi yaptığımızı, bundan ne elde edildiğini, Mimariyi, bir Yük Testini başarıyla yürütmek için izlenecek yaklaşımın ne olduğunu, bir Yük Testi ortamının nasıl kurulacağını, en iyi uygulamaları öğreneceğiz. piyasadaki en iyi Yük Test Araçları.
Hem İşlevsel hem de İşlevsel Olmayan Test türlerini duyduk. İşlevsel Olmayan Testte, Performans Testi, Güvenlik Testi, Kullanıcı Arayüzü Testi vb. Gibi farklı test türlerine sahibiz.
Dolayısıyla, Yük Testi, Performans Testinin bir alt kümesi olan İşlevsel Olmayan bir test türüdür.
Bu nedenle, performans için bir uygulamayı test ettiğimizi söylediğimizde, burada neyi test ediyoruz? Uygulamayı Yük, Hacim, Kapasite, Stres vb. İçin test ediyoruz.
Ne öğreneceksin:
- Yük Testi nedir?
- Yük Testi Mimarisi
- Neden Yük Testi?
- Çevre
- Yaklaşmak
- En İyi Uygulamalar
- Sonuç
- Önerilen Kaynaklar
Yük Testi nedir?
Yük Testi, uygulamaya eşzamanlı olarak erişen birden çok kullanıcının simülasyonunu yaparak sistemin değişen yük koşulları altında yanıtını test ettiğimiz Performans Testinin bir alt kümesidir. Bu test genellikle uygulamanın hızını ve kapasitesini ölçer.
Böylece, yükü ne zaman değiştirsek, çeşitli koşullar altında sistemin davranışını izliyoruz.
Misal :Bir Oturum Açma sayfası için müşteri gereksiniminin 2-5 saniye olduğunu ve bu 2-5 saniyenin, yükleme 5000 kullanıcı olana kadar her zaman tutarlı olması gerektiğini varsayalım. Öyleyse ne duymalıyız? Bu sadece sistemin yük taşıma kapasitesi mi yoksa sadece yanıt süresi gerekliliği mi?
Cevap her ikisi. Tüm eşzamanlı kullanıcılar için 2-5 saniyelik yanıt süresine sahip 5000 kullanıcı yükünü kaldırabilecek bir sistem istiyoruz.
Öyleyse eşzamanlı bir kullanıcı ve bir sanal kullanıcı ne anlama geliyor?
Eşzamanlı kullanıcılar, uygulamaya giriş yapan ve aynı zamanda birlikte bir dizi etkinlik gerçekleştiren ve aynı zamanda uygulamadan çıkış yapan kullanıcılardır. Öte yandan, sanal kullanıcılar, diğer kullanıcı etkinliklerinden bağımsız olarak sisteme girer ve atlar.
Yük Testi Mimarisi
Aşağıdaki şemada, farklı kullanıcıların uygulamaya nasıl eriştiğini görebiliriz. Burada her kullanıcı, daha sonra bir güvenlik duvarından geçirilecek olan internet üzerinden bir talepte bulunuyor.
Güvenlik duvarından sonra, yükü web sunucularından herhangi birine dağıtan ve ardından uygulama sunucusuna ve daha sonra kullanıcı isteğine göre gerekli bilgileri aldığı veritabanı sunucusuna ileten bir Yük dengeleyicimiz var.
Yük testi manuel olarak veya bir alet kullanılarak yapılabilir. Ancak uygulamayı daha az yük için test etmediğimiz için manuel yük testi önerilmez.
Misal: Her kullanıcı tıklaması için uygulamanın yanıt süresini görmek için bir çevrimiçi alışveriş uygulamasını test etmek istediğimizi varsayalım, örn. Adım 1 - Başlatma URL'si, yanıt süresi, uygulamaya giriş yapın ve yanıt süresini not edin vb. ürün, sepete ekleme, ödeme yapma ve oturumu kapatma. Tüm bunların 10 kullanıcı için yapılması gerekiyor.
Şimdi, uygulama yükünü 10 kullanıcı için test etmemiz gerektiğinde, bunu bir araç kullanmak yerine farklı makinelerden 10 fiziksel kullanıcının yükünü manuel olarak koyarak başarabiliriz. Bu senaryoda, bir araca yatırım yapmak ve araç için bir ortam oluşturmak yerine manuel bir yük testine gitmeniz önerilir.
1500 kullanıcı için test yüklememiz gerekip gerekmediğini hayal edin, o zaman uygulamanın oluşturulduğu teknolojilere ve ayrıca proje için sahip olduğumuz bütçeye dayalı olarak mevcut araçlardan herhangi birini kullanarak yük testini otomatikleştirmemiz gerekir.
Bütçemiz varsa, Load runner gibi ticari araçlara gidebiliriz, ancak fazla bütçemiz yoksa JMeter vb. Gibi açık kaynaklı araçlara gidebiliriz.
işaretçilerin sırası c ++
İster ticari bir araç ister açık kaynaklı bir araç olsun, aracı tamamlamadan önce detaylar müşteri ile paylaşılmalıdır. Genellikle, aracı kullanarak örnek bir komut dosyası oluşturduğumuz ve nihai hale getirmeden önce aracın onayı için müşteriye örnek raporları gösterdiğimiz bir kavram kanıtı hazırlanır.
Otomatik yük testinde, gerçek zamanlı kullanıcı eylemlerini taklit eden bir otomasyon aracı yardımıyla kullanıcıları değiştiriyoruz. Yükü otomatikleştirerek hem zamandan hem de kaynaklardan tasarruf edebiliriz.
Aşağıda, kullanıcıların bir araç kullanılarak nasıl değiştirildiğini gösteren şema yer almaktadır.
Neden Yük Testi?
Normal iş günlerinde oldukça iyi giden bir çevrimiçi alışveriş web sitesi olduğunu varsayalım, yani kullanıcılar uygulamaya giriş yapabilir, farklı ürün kategorilerine göz atabilir, ürünleri seçebilir, alışveriş sepetine ürün ekleyebilir, içinde ödeme yapabilir ve oturumu kapatabilir. kabul edilebilir bir aralık ve sayfa hatası veya çok büyük yanıt süreleri yok.
Bu arada yoğun bir gün gelir, yani Şükran Günü diyelim ve sisteme giriş yapan binlerce kullanıcı var, sistem aniden çöküyor ve kullanıcılar çok yavaş bir tepki veriyor, hatta bazıları yapamadı. Siteye giriş yapın, birkaçı sepete eklenemedi ve bazıları ödeme yapamadı.
Dolayısıyla bu büyük günde şirket, çok sayıda müşteri ve çok fazla iş kaybettiği için büyük bir kayıpla karşı karşıya kaldı. Tüm bunlar, şirketin web sitesinde herhangi bir yük testi yapılmadığını tahmin etseler bile, en yoğun günler için kullanıcı yükünü tahmin etmedikleri için gerçekleşti, dolayısıyla uygulamanın ne kadar yük kaldırabileceğini bilmiyorlar. yoğun günlerde.
Bu nedenle, bu tür durumların üstesinden gelmek ve büyük gelirin üstesinden gelmek için, bu tür uygulamalar için yük testi yapılması tavsiye edilir.
- Yük Testi, güçlü ve güvenilir sistemler oluşturmaya yardımcı olur.
- Sistemdeki darboğaz, uygulama hayata geçmeden çok önce tespit edilir.
- Uygulamanın kapasitesinin belirlenmesine yardımcı olur.
Yük testi sırasında ne elde edilir?
Uygun bir Yük testi ile aşağıdakileri tam olarak anlayabiliriz:
- Sistemin kullanabileceği veya ölçeklendirebileceği kullanıcı sayısı.
- Her işlemin yanıt süresi.
- Tüm sistemin her bileşeni, Yük altında, yani Uygulama sunucusu bileşenleri, web sunucusu bileşenleri, Veritabanı bileşenleri vb. Altında nasıl davranır?
- Yükü işlemek için en iyi sunucu yapılandırması hangisidir?
- Mevcut donanımın yeterli olup olmadığı veya herhangi bir ek donanıma ihtiyaç olup olmadığı.
- CPU kullanımı, Bellek Kullanımı, Ağ gecikmeleri vb. Gibi darboğazlar belirlenir.
Çevre
Testlerimizi yürütmek için özel bir Yük Testi ortamına ihtiyacımız var. Çünkü çoğu zaman Yük testi ortamı üretim ortamı ile aynı olacak ve aynı veri olmasa da yük testi ortamındaki mevcut veriler üretimle aynı olacaktır.
SIT ortamı, QA ortamı vb. Gibi birden fazla test ortamı olacaktır, bu ortamlar aynı üretim değildir, çünkü yük testinin aksine, fonksiyonel test veya entegrasyon testi yapmak için çok fazla sunucuya veya çok fazla test verisine ihtiyaç duymazlar.
Misal:
Bir Üretim Ortamında, 3 Uygulama sunucumuz, 2 Web sunucumuz ve 2 Veritabanı Sunucumuz var. QA'da sadece 1 Uygulama Sunucumuz, 1 Web sunucumuz ve 1 Veritabanı sunucumuz var. Bu nedenle, QA ortamında Üretime eşit olmayan bir Yük testi yaparsak, testlerimiz geçersiz ve yanlıştır ve bu nedenle bu sonuçlara göre gidemeyiz.
Bu nedenle, her zaman bir üretim ortamına benzer bir Yük testi için özel bir ortama sahip olmaya çalışın.
Ayrıca, bazen sistemimizin arayacağı üçüncü taraf uygulamalarımız olabilir, bu nedenle bu tür durumlarda, veri yenileme veya başka sorunlar veya destek için üçüncü taraf satıcılarla her zaman çalışamayacağımız için saplamalar kullanabiliriz.
Ortam hazır olduğunda anlık görüntüsünü almaya çalışın, böylece ortamı yeniden inşa etmek istediğinizde bu anlık görüntüyü kullanabilirsiniz, bu da zaman yönetimine yardımcı olur. Piyasada Puppet, Docker vb. Gibi ortamı kurmak için mevcut bazı araçlar vardır.
Yaklaşmak
Yük testine başlamadan önce, sistemde halihazırda herhangi bir Yük testi yapılıp yapılmadığını anlamamız gerekir. Daha önce herhangi bir yük testi yapılmışsa, yanıt süresinin ne olduğunu, toplanan istemci ve sunucu ölçümlerini, kullanıcı yük kapasitesinin ne kadar olduğunu vb. Bilmemiz gerekir.
Ayrıca, mevcut uygulama işleme kapasitesinin ne kadar olduğuna dair bilgiye ihtiyacımız var. Bu yeni bir uygulama ise, gereksinimleri, hedeflenen yükün ne olduğunu, beklenen yanıt süresinin ne olduğunu ve gerçekten ulaşılabilir olup olmadığını anlamamız gerekir.
Mevcut bir uygulamaysa, yük gereksinimlerini ve kullanıcı erişim modellerini sunucu günlüklerinden alabilirsiniz. Ancak yeni bir uygulamaysa, tüm bilgileri almak için iş ekibine ulaşmanız gerekir.
Gereksinimlere sahip olduğumuzda, yük testini nasıl gerçekleştireceğimizi belirlememiz gerekir. Manuel mi yoksa aletler kullanılarak mı yapılıyor? Manuel olarak bir yük testi yapmak çok fazla kaynağa ihtiyaç duyar ve çok pahalıdır. Ayrıca testi tekrar tekrar tekrarlamak da zor olacaktır.
Bu nedenle, bunun üstesinden gelmek için Açık kaynak araçları veya ticari araçları kullanabiliriz. Açık kaynaklı araçlar ücretsiz olarak mevcuttur, bu araçlar diğer ticari araçlar gibi tüm özelliklere sahip olmayabilir, ancak projenin bir bütçe kısıtlaması varsa, açık kaynak araçlara gidebiliriz.
Ticari araçların birçok özelliği varken, birçok protokolü destekler ve çok kullanıcı dostudur.
Yük Testi yaklaşımımız aşağıdaki gibi olacaktır:
# 1) Yük testi Kabul Kriterlerini belirleyin
Örneğin:
- Giriş sayfasının yanıt süresi, maksimum yük koşullarında bile 5 saniyeden fazla olmamalıdır.
- CPU kullanımı% 80'den fazla olmamalıdır.
- Sistemin iş hacmi saniyede 100 işlem olmalıdır.
# 2) Test edilmesi gereken İş senaryolarını belirleyin.
Tüm akışları test etmeyin, üretimde gerçekleşmesi beklenen ana iş akışlarını anlamaya çalışın. Mevcut bir uygulama ise, bilgilerini üretim ortamının sunucu günlüklerinden alabiliriz.
Yeni oluşturulmuş bir uygulama ise, akış modellerini, uygulama kullanımını vb. Anlamak için iş ekipleriyle birlikte çalışmamız gerekir. Bazen proje ekibi, uygulamanın her bileşeni hakkında bir genel bakış veya ayrıntılar vermek için atölye çalışmaları yürütür.
Uygulama atölyesine katılmalı ve yük testimizi gerçekleştirmek için gerekli tüm bilgileri not etmeliyiz.
# 3) İş Yükü Modellemesi
İş akışları, kullanıcı erişim modelleri ve kullanıcı sayısı ile ilgili ayrıntıları öğrendikten sonra, iş yükünü üretimdeki gerçek kullanıcı gezinmesini taklit edecek şekilde veya uygulamada gelecekte olması beklendiği şekilde tasarlamamız gerekir. üretimde olacak.
Bir iş yükü modeli tasarlarken hatırlanması gereken kilit noktalar, belirli bir iş akışının tamamlanmasının ne kadar süreceğini görmektir. Burada düşünme süresini, kullanıcının uygulamada daha gerçekçi bir şekilde gezinmesini sağlayacak şekilde atamamız gerekir.
İş Yükü Modeli genellikle bir Rampa artırma, Yavaşlama azaltma ve sabit bir durumda olacaktır. Sistemi yavaşça yüklemeliyiz ve bu nedenle rampa yukarı ve aşağı rampa kullanılır. Kararlı durum genellikle 15 dakikalık Rampa ve 15 dakikalık Ram aşağıya sahip bir saatlik bir Yük testi olacaktır.
İş Yükü Modeli Örneğini ele alalım:
Uygulamaya genel bakış - Kullanıcıların uygulamaya giriş yapacağı ve alışveriş yapabilecekleri çok çeşitli elbiselerin olduğu ve her üründe gezinebilecekleri bir çevrimiçi alışveriş varsayalım.
Her ürünle ilgili ayrıntıları görüntülemek için ürünün üzerine tıklamaları gerekir. Ürünün maliyetini ve markasını beğenirlerse sepete ekleyip ödeme yaparak ürünü satın alabilirler.
Aşağıda, senaryoların bir listesi verilmiştir:
- Araştır - Burada kullanıcı uygulamayı başlatır, Uygulamaya giriş yapar, Farklı kategoriler arasında gezinir ve uygulamadan çıkış yapar.
- Göz At, Ürün Görünümü, Sepete Ekle - Burada kullanıcı uygulamaya giriş yapar, Farklı kategorilere göz atar, ürün detaylarını görüntüler, ürünü sepete ekler ve Çıkış yapar.
- Göz at, Ürün Görünümü, Sepete Ekle ve Ödeme Yap - Bu senaryoda, kullanıcı uygulamaya giriş yapar, Farklı kategorilere göz atar, ürün detaylarını görüntüler, ürünü sepete ekler, teslim alır ve Çıkış yapar.
- Göz at, Ürün görünümü, Sepete ekle Ödeme Yap ve Ödeme Yap - Burada kullanıcı uygulamaya giriş yapar, Farklı kategorilere göz atar, ürün detaylarını görüntüler, ürünü sepete ekler, çıkış yapar, Ödeme yapar ve Çıkış yapar.
S.No | İş Akışı | İşlem Sayısı | Sanal Kullanıcı Yükü | Tepki Süresi (sn) | İzin verilen başarısızlık oranı | Saatlik işlemler |
---|---|---|---|---|---|---|
bir | Araştır | 17 | 1600 | 3 | % 2'den az | 96.000 |
iki | Göz At, Ürün Görünümü, Sepete Ekle | 17 | 200 | 3 | % 2'den az | 12000 |
3 | Göz at, Ürün Görünümü, Sepete Ekle ve Ödeme Yap | 18 | 120 | 3 | % 2'den az | 7200 |
4 | Göz at, Ürün görünümü, Sepete ekle Ödeme Yap ve Ödeme Yap | yirmi | 80 | 3 | % 2'den az | 4800 |
Yukarıdaki değerler aşağıdaki hesaplamalara göre türetilmiştir:
- Saatlik işlemler = Kullanıcı sayısı * Tek bir kullanıcının bir saatte yaptığı işlemler.
- Kullanıcı sayısı = 1600.
- Gözat senaryosundaki toplam işlem sayısı = 17.
- Her işlem için Yanıt Süresi = 3.
- Tek bir kullanıcının 17 işlemi tamamlaması için toplam süre = 17 * 3 = 51, 60 saniyeye (1 dakika) yuvarlanır.
- Saatlik işlem = 1600 * 60 = 96000 İşlem.
# 4) Yük Testlerini Tasarlayın- Yük Testi, şimdiye kadar topladığımız verilerle, yani İş akışları, kullanıcı sayısı, kullanıcı kalıpları, toplanacak ve analiz edilecek Metrikler ile tasarlanmalıdır. Üstelik testler çok gerçekçi bir şekilde tasarlanmalıdır.
# 5) Yük Testi Yapın - Yük testini yürütmeden önce, uygulamanın çalışır durumda olduğundan emin olun. Yük testi ortamı hazır. Uygulama işlevsel olarak test edilmiştir ve kararlıdır.
Yük testi ortamının yapılandırma ayarlarını kontrol edin. Üretim ortamı ile aynı olmalıdır. Tüm test verilerinin mevcut olduğundan emin olun. Test yürütme sırasında sistem performansını izlemek için gerekli sayaçları eklediğinizden emin olun.
Her zaman düşük yükle başlayın ve yükü kademeli olarak artırın. Asla tam yükle başlamayın ve sistemi kırmayın.
# 6) Yük Testi Sonuçlarını Analiz Edin - Her zaman diğer test çalışmalarıyla karşılaştırmak için bir temel test yapın. Darboğazları bulmak için test çalıştırmasından sonra ölçümleri ve sunucu günlüklerini toplayın.
Bazı projeler, test çalıştırması sırasında sistemi izlemek için Uygulama Performansı İzleme Araçlarını kullanır; bu APM araçları, temel nedeni daha kolay belirlemeye ve çok fazla zaman kazanmaya yardımcı olur. Sorunun nerede olduğunu tam olarak saptamak için geniş bir görüşe sahip olduklarından, bu araçların darboğazın temel nedenini bulmak çok kolaydır.
Piyasadaki APM araçlarından bazıları DynaTrace, Wily Introscope, App Dynamics vb. İçerir.
# 7) Raporlama - Test Çalıştırması tamamlandığında, tüm ölçümleri toplayın ve test özet raporunu gözlemleriniz ve önerilerinizle ilgili ekibe gönderin.
En İyi Uygulamalar
Aşağıda, Yük Testinin en iyi uygulamalarından bazıları listelenmiştir:
# 1) Bir Yük testine başlamadan önce daima uygulama kararlılığını kontrol edin. Uygulama, İşlevsel test ekibi tarafından işlevsel olarak stabil olarak imzalanmalı ve tüm önemli kusurlar, derleme Yük Testi ortamına kopyalanmadan önce düzeltilmeli ve test edilmelidir.
#iki) Sunucu sayısı, Yük dengeleyiciler, sunucu yapılandırmaları ve güvenlik duvarları dahil olmak üzere Yük testi ortamının bir eşleme olduğundan veya üretim ortamına yakın olduğundan emin olun.
# 3) Test verilerinin benzersiz olup olmadığını kontrol edin ve bir yük testi gerçekleştirmeden önce tüm test verilerini yük ortamına kopyaladık.
# 4) Test senaryolarını, üretimde gerçekleşen gerçek zamanlı kullanıcı eylemini taklit edecek şekilde tasarlayın.
# 5) İş yükünü üretim kullanıcı yüklerine ve iş akışlarına göre tasarlayın ve eski bir uygulama olması durumunda, iş akışları ve kullanıcı yüküyle ilgili iş ekibiyle yeni bir konuşma olup olmadığına bakın.
# 6) Yanıt Süresi, saniye başına vuruş sayısı, Aktarım Hızı, İşlemci, Bellek, Ağ ve Çalışan Vuserler gibi tüm önemli ölçümleri toplayın.
Önerilen Okuma => Piyasada bulunan Performans Test Araçlarının listesi özel yük testi yapmak için.
Sonuç
Bu eğiticide, Yük testinin bir uygulamanın Performans testinde nasıl önemli bir rol oynadığını, uygulamanın verimliliğini ve kapasitesini anlamaya nasıl yardımcı olduğunu vb. Öğrendik.
Ayrıca, bir uygulamada herhangi bir ek donanım, yazılım veya ayar gerekip gerekmediğini tahmin etmenin nasıl yardımcı olduğunu da öğrendik.
Mutlu Okumalar !!
Önerilen Kaynaklar
- HP LoadRunner Öğreticileriyle Yük Testi
- Alfa Testi ve Beta Testi (Tam Kılavuz)
- Web Uygulaması Güvenliği Test Kılavuzu
- Yeni Başlayanlar İçin Stres Testi Kılavuzu
- Web Uygulaması Sızma Testi İçin Yeni Başlayanlar Kılavuzu
- Yeni Başlayanlar İçin Eksiksiz İşlevsel Olmayan Test Kılavuzu
- Derleme Doğrulama Testi (BVT Testi) Tam Kılavuzu
- Performans Testi - Yük Testi - Stres Testi (Fark)