LoadRunner nedir?
LoadRunner , öncülüğünü Mercury'nin 1999'da yaptığı bir Performans Test aracıdır. LoadRunner daha sonra 2006'da HPE tarafından satın alındı. 2016'da LoadRunner, MicroFocus tarafından satın alındı.
LoadRunner, çeşitli geliştirme araçlarını, teknolojileri ve iletişim protokollerini destekler. Aslında, bu, Performans Testi yapmak için bu kadar çok sayıda protokolü destekleyen piyasadaki tek araçtır. LoadRunner yazılımı tarafından üretilen Performans Testi Sonuçları, diğer araçlara karşı bir kıyaslama olarak kullanılır.
Bu eğitimde öğreneceksiniz-
- Neden LoadRunner?
- Neden Performans Testine ihtiyacınız var?
- LoadRunner Mimarisi nedir?
- Performans Testi Yol Haritası: Ayrıntılı Adımlar
- SSS
Neden LoadRunner?
LoadRunner, Performans Testinde sadece öncü bir araç olmakla kalmaz, aynı zamanda Performans Testi paradigmasında hala pazar lideridir. Son zamanlarda yapılan bir değerlendirmede, LoadRunner, Performans Testi endüstrisinde yaklaşık% 85 pazar payına sahiptir.
LoadRunner aracı genel olarak RIA (Zengin İnternet Uygulamaları), Web 2.0 (HTTP / HTML, Ajax, Flex ve Silverlight vb.), Mobil, SAP, Oracle, MS SQL Server, Citrix, RTE, Mail ve hepsinden önemlisi Windows Soketini destekler. Pazarda, tek bir araca yerleştirilmiş bu kadar çok çeşitli protokolleri sunabilecek rakip bir araç yoktur.
Yazılım testinde LoadRunner'ı seçmenin daha ikna edici yanı, bu aracın güvenilirliğidir. LoadRunner aracı, uzun süredir, müşterilerin LoadRunner'ı kullanarak performans karşılaştırmalarınızı çapraz doğrulamasını yaparken bulacağınız bir itibara sahiptir . Performans testi ihtiyaçlarınız için zaten LoadRunner kullanıyorsanız rahatlık bulacaksınız.
LoadRunner yazılımı, Birleşik İşlevsel Test (QTP) ve ALM (Uygulama Yaşam Döngüsü Yönetimi) gibi diğer HP Araçlarıyla sıkı bir şekilde entegre edilmiştir ve size uçtan uca Test İşlemlerinizi gerçekleştirme gücü verir.
LoadRunner, söz konusu uygulamada Sanal Kullanıcıları simüle etme prensibi üzerinde çalışır. Bu Sanal Kullanıcılar ayrıca VUsers olarak da adlandırılır, müşterinin isteklerini kopyalar ve bir işlemin geçmesi için karşılık gelen bir yanıt bekler.
Neden Performans Testine ihtiyacınız var?
Zayıf web performansı nedeniyle yıllık olarak tahmini 4.4 milyar gelir kaybı kaydedilmektedir.
Günümüzün Web 2.0 çağında, bir web sitesi 8 saniye içinde yanıt vermezse kullanıcılar başka bir yere tıklarlar. Google'ı ararken veya Facebook'ta bir arkadaşlık isteği yaparken 5 saniye beklediğinizi hayal edin. Performans kesintisinin yansımaları genellikle hayal bile edilemeyecek kadar yıkıcıdır. Yakın zamanda Bank of America Çevrimiçi Bankacılık, Amazon Web Hizmetleri, Intuit veya Blackberry'yi vuranlar gibi örneklerimiz var.
Dunn & Bradstreet'e göre, Fortune 500 şirketlerinin% 59'u her hafta tahmini 1,6 saat kesinti yaşıyor. Minimum 10.000 çalışanı olan ortalama bir Fortune 500 şirketinin saatte 56 dolar ödediği düşünüldüğünde, böyle bir organizasyon için kesinti maliyetlerinin işçilik kısmı haftalık 896.000 dolar olacak ve bu da yılda 46 milyon dolardan fazlasına dönüşecektir.
Google.com'un yalnızca 5 dakikalık bir kesinti süresinin (19-Ağustos-13) arama devine 545.000 $ 'a mal olacağı tahmin ediliyor.
Amazon Web Hizmeti Kesintisi nedeniyle şirketlerin saniyede 1100 ABD doları değerinde satış kaybettiği tahmin ediliyor.
Bir yazılım sistemi bir kuruluş tarafından devreye alındığında, muhtemelen performans gecikmesine neden olan birçok senaryo ile karşılaşabilir. Bir dizi faktör performansın yavaşlamasına neden olur, birkaç örnek şunları içerebilir:
- Veritabanında bulunan artan kayıt sayısı
- Sisteme yapılan eş zamanlı taleplerin artması
- geçmişe kıyasla bir seferde sisteme erişen daha fazla sayıda kullanıcı
LoadRunner Mimarisi nedir?
Genel anlamda, HP LoadRunner'ın mimarisi karmaşıktır, ancak anlaşılması kolaydır.
Amazon.com'un 5000 kullanıcı için performansını kontrol etmek üzere atandığınızı varsayalım
Gerçek hayattaki bir durumda, bu 5000 kullanıcının tümü ana sayfada değil, web sitelerinin farklı bir bölümünde olacaktır. Nasıl farklı bir şekilde simüle edebiliriz
VUGen:
VUGen veya Virtual User Generator bir IDE (Entegre Geliştirme Ortamı) veya zengin bir kodlama düzenleyicisidir. VUGen, Yük Altında Sistem (SUL) davranışını kopyalamak için kullanılır. VUGen, istemci ve Sunucu arasındaki iletişimi kodlanmış bir komut dosyası biçiminde kaydeden bir "kayıt" özelliği sağlar - VUser betiği olarak da adlandırılır.
Dolayısıyla, yukarıdaki örnek dikkate alındığında, VUGen aşağıdaki iş süreçlerini simüle etmek için kayıt yapabilir:
- Amazon.com'un Ürünler Sayfasında Gezinme
- Ödeme
- Odeme yapiliyor
- Hesabım Sayfasını Kontrol Etme
Kontrolör
Bir VUser betiği sonlandırıldığında, Denetleyici, örneğin şunları yöneterek Yük simülasyonunu kontrol eden ana LoadRunner bileşenlerinden biridir:
- Her bir iş sürecine veya VUser Grubuna karşı kaç adet VUser'in simüle edileceği
- VUserların davranışı (rampa yukarı, rampa aşağı, eşzamanlı veya eşzamanlı doğa vb.)
- Yükün Doğası senaryosu, ör. Gerçek Hayat veya Hedef Odaklı veya doğrulayıcı SLA
- Hangi enjektörlerin kullanılacağı, her bir enjektöre karşı kaç VUser kullanılacağı
- Sonuçları periyodik olarak harmanlayın
- IP Sahtekarlığı
- Hata raporlama
- İşlem raporlama vb.
Örnek denetleyicimizden bir benzetme almak, aşağıdaki parametreyi VUGen Komut Dosyasına ekleyecektir.
1) 3500 Kullanıcı Amazon.com'un Ürünler Sayfasında Geziyor
2) 750 Kullanıcı Ödeme Aşamasında
3) 500 Kullanıcı Ödeme İşlemi gerçekleştiriyor
4) 250 Kullanıcı, YALNIZCA 500 kullanıcı Ödeme İşlemini yaptıktan sonra Hesabım Sayfasını Kontrol Ediyor
Daha karmaşık senaryolar mümkündür
- 3500 VUsers (Amazon ürün sayfasında gezinme) yükleme elde edilinceye kadar her 2 saniyede bir 5 VUsers başlatın.
- 30 dakika yineleyin
- 25 VUsers için yinelemeyi askıya alın
- 20 VUSer'ı yeniden başlatın
- Her saniye 2 kullanıcı (Ödeme İşlemi, Ödeme İşlemi, Hesaplarım Sayfasında) başlatın.
- Makine A'da 2500 VUsers üretilecek
- Makine B'de 2500 VUser üretilecek
Ajanlar Makine / Yük Jeneratörleri / Enjektörler
HP LoadRunner Denetleyicisi, binlerce VUser'ı simüle etmekten sorumludur - bu VUsers örneğin işlemci ve bellek gibi donanım kaynaklarını tüketir - dolayısıyla makineye bunları simüle eden bir sınır koyar. Ayrıca, Denetleyici bu VUser'ları aynı makineden (Denetleyicinin bulunduğu yerde) simüle eder ve bu nedenle sonuçlar kesin olmayabilir. Bu endişeyi gidermek için, tüm VUserler, Yük Jeneratörleri veya Yük Enjektörleri adı verilen çeşitli makinelere yayılmıştır .
Genel bir uygulama olarak, Kontrolör farklı bir makinede bulunur ve yük diğer makinelerden simüle edilir. VUser komut dosyalarının protokolüne ve makine özelliklerine bağlı olarak, tam simülasyon için bir dizi Yük Enjektörü gerekebilir. Örneğin, bir HTTP komut dosyası için VUsers simülasyon için VUser başına 2-4MB gerektirir, bu nedenle her biri 4 GB RAM'e sahip 4 makine 10.000 VUser yükünü simüle etmek için gerekli olacaktır.
Amazon Örneğimizden Analojiye bakarsak, bu bileşenin çıktısı
Analiz:
Load senaryoları yürütüldüğünde, LoadRunner'ın " Analysis " bileşenlerinin rolü devreye girer.
Yürütme sırasında, Denetleyici ham biçimde bir sonuç dökümü oluşturur ve bu sonuç dökümünü LoadRunner'ın hangi sürümünün oluşturduğu ve hangi yapılandırmaların olduğu gibi bilgiler içerir.
Tüm hatalar ve istisnalar, output.mdb adlı bir Microsoft erişim veritabanına kaydedilir. "Analiz" bileşeni, çeşitli analiz türlerini gerçekleştirmek için bu veritabanı dosyasını okur ve grafikler oluşturur.
Bu grafikler, yük altında hataların ve arızaların arkasındaki nedenleri anlamak için çeşitli eğilimleri gösterir; böylece optimizasyonun SUL, Sunucu (örn. JBoss, Oracle) veya altyapı için gerekli olup olmadığını anlamaya yardımcı olur.
Aşağıda, bant genişliğinin bir darboğaz oluşturabileceği bir örnek verilmiştir. Diyelim ki Web sunucusu 1GBps kapasiteye sahipken, veri trafiği bu kapasiteyi aşarak sonraki kullanıcıların zarar görmesine neden oluyor. Sistemin bu tür ihtiyaçlara cevap verdiğini belirlemek için, Performans Mühendisinin anormal bir yükle uygulama davranışını analiz etmesi gerekir. Aşağıda, LoadRunner'ın bant genişliğini sağlamak için oluşturduğu bir grafik bulunmaktadır.
Performans Testi Yol Haritası: Ayrıntılı Adımlar
Performans Testi Yol Haritası genel olarak 5 adıma ayrılabilir:
- Yük Testi için Planlama
- VUGen Komut Dosyaları Oluşturun
- Senaryo Oluşturma
- Senaryo Yürütme
- Sonuç Analizi (ardından sistem ince ayarı)
Artık LoadRunner'ı yüklediğinize göre, süreçte yer alan adımları tek tek anlayalım.
Performans Testi sürecine dahil olan adımlar
Yük Testi için Planlama
Performans Testi için Planlama, bir SIT (Sistem Entegrasyon Testi) veya UAT (Kullanıcı Kabul Testi) planlamasından farklıdır. Planlama, aşağıda açıklandığı gibi küçük aşamalara ayrılabilir:
Takımınızı Kurun
LoadRunner Testine başlarken, sürece dahil olan her ekipten aktiviteye kimin katılacağını belgelemek en iyisidir.
Proje Müdürü:
Bu aktiviteye sahip olacak ve sorun iletme noktasında görev yapacak proje yöneticisini belirleyin.
İşlev Uzmanı / İş Analisti:
SUL Kullanım Analizini sağlayın ve web sitesi / SUL'un iş işlevselliği konusunda uzmanlık sağlar
Performans Test Uzmanı:
Otomatikleştirilmiş performans testleri oluşturur ve yük senaryolarını yürütür
Sistem mimarı:
SUL'un planını sağlar
Web Geliştiricisi ve KOBİ:
- Web sitesini korur ve izleme özellikleri sağlar
- Web sitesi geliştirir ve hataları düzeltir
Sistem yöneticisi:
- Bir test projesi boyunca ilgili sunucuları korur
Anahat uygulamaları ve ilgili İş Süreçleri:
Başarılı Yük Testi, belirli iş süreçlerini gerçekleştirmeyi planlamanızı gerektirir. Bir İş Süreci, yük testi hedeflerinize ulaşmak için istenen ticari işlemlere uygun olarak açıkça tanımlanmış adımlardan oluşur.
Sistemdeki kullanıcı yükünü ortaya çıkarmak için bir gereksinim ölçüsü hazırlanabilir. Aşağıda bir şirketteki katılım sistemine bir örnek verilmiştir:
Yukarıdaki örnekte, rakamlar, belirli bir saatte uygulamaya (SUL) bağlanan kullanıcıların sayısını belirtmektedir. En sağdaki sütunlarda hesaplanan günün herhangi bir saatinde bir iş sürecine bağlı maksimum kullanıcı sayısını çıkarabiliriz.
Benzer şekilde, uygulamaya (SUL) bağlı toplam kullanıcı sayısını günün herhangi bir saatinde sonuçlandırabiliriz. Bu son satırda hesaplanır.
Yukarıdaki 2 gerçek bir araya getirildiğinde, sistemi performans açısından test etmemiz gereken toplam kullanıcı sayısını verir.
Test Verisi Yönetim Prosedürlerini Tanımlayın
Performans Testinden elde edilen istatistikler ve gözlemler, daha önce de belirtildiği gibi çok sayıda faktörden büyük ölçüde etkilenir. Performans Testi için Test Verilerinin hazırlanması kritik öneme sahiptir. Bazen, belirli bir iş süreci bir veri kümesi tüketir ve farklı bir veri kümesi üretir. Aşağıdaki örneği ele alalım:
- Bir kullanıcı 'A' bir finansal sözleşme oluşturur ve incelemeye gönderir.
- Başka bir 'B' kullanıcısı, 'A' kullanıcısı tarafından oluşturulan günde 200 sözleşmeyi onaylıyor
- Başka bir 'C' kullanıcısı, 'B' kullanıcısı tarafından onaylanan günde yaklaşık 150 sözleşme öder
Bu durumda, Kullanıcı B'nin sistemde 'oluşturulmuş' 200 sözleşmeye sahip olması gerekir. Ayrıca, C kullanıcısının 150 kullanıcılık bir yükü simüle etmek için "onaylanmış" olarak 150 sözleşmeye ihtiyacı vardır.
Bu örtük olarak en az 200 + 150 = 350 sözleşme oluşturmanız gerektiği anlamına gelir.
Bundan sonra, 150 sözleşmeyi C Kullanıcısı için Test verisi olarak kullanmak üzere onaylayın - kalan 200 sözleşme B Kullanıcısı için Test Verisi işlevi görecektir.
Anahat Monitörleri
Bir sistemin performansını etkileyebilecek her bir faktörü tahmin edin. Örneğin, daha az donanıma sahip olmak, SUL (Yük Altındaki Sistem) performansı üzerinde potansiyel bir etkiye sahip olacaktır.
Tüm faktörleri kaydedin ve bunları ölçebilmek için monitörleri ayarlayın. İşte birkaç örnek:
- İşlemci (Web Sunucusu, Uygulama Sunucusu, Veritabanı Sunucusu ve Enjektörler için)
- RAM (Web Sunucusu, Uygulama Sunucusu, Veritabanı Sunucusu ve Enjektörler için)
- Web / Uygulama Sunucusu (örneğin IIS, JBoss, Jaguar Sunucusu, Tomcat vb.)
- DB Sunucusu (Oracle ve MSSQL Sunucusu, SP'ler vb. Durumunda PGA ve SGA boyutu)
- Ağ bant genişliği kullanımı
- Kümeleme durumunda dahili ve harici NIC
- Yük Dengeleyici (ve yükü tüm küme düğümlerinde eşit olarak dağıtması)
- Veri akışı (istemci ve sunucuya ne kadar veri aktarıldığını hesaplayın - ardından X sayıda kullanıcıyı simüle etmek için bir NIC kapasitesinin yeterli olup olmadığını hesaplayın)
VUGen Komut Dosyaları Oluşturun
Planlamadan sonraki adım, VUser betikleri oluşturmaktır.
Senaryo Oluşturma
Sonraki adım, Yükleme Senaryonuzu oluşturmaktır
Senaryo Yürütme
Senaryo yürütme, birden çok VUsere aynı anda görevleri gerçekleştirme talimatı vererek sunucudaki kullanıcı yükünü taklit ettiğiniz yerdir.
Aynı anda görevleri gerçekleştiren VUsers sayısını artırıp azaltarak bir yükün seviyesini ayarlayabilirsiniz.
Bu yürütme, sunucunun baskı altına girmesine ve anormal davranmasına neden olabilir. Performans Testinin amacı budur. Elde edilen sonuçlar daha sonra ayrıntılı analiz ve kök neden tespiti için kullanılır.
Sonuç Analizi (ardından sistem ince ayarı)
Senaryo yürütme sırasında, LoadRunner, uygulamanın performansını farklı yükler altında kaydeder. Testin yürütülmesinden elde edilen istatistikler kaydedilir ve detay analizi yapılır. 'HP Analysis' aracı, sistem performansındaki bir gecikmenin yanı sıra bir sistem arızasının arkasındaki temel nedenleri tanımlamaya yardımcı olan çeşitli grafikler oluşturur.
Elde edilen grafiklerden bazıları şunları içerir:
- İlk arabelleğe kadar geçen süre
- İşlem Yanıt Süresi
- Ortalama İşlem Yanıt Süresi
- Saniyedeki Hits
- Windows Kaynakları
- Hata İstatistikleri
- İşlem Özeti
SSS
Hangi Uygulamaları Performans Test Etmeliyiz?
Performans Testi her zaman yalnızca istemci-sunucu tabanlı sistemler için yapılır. Bu, istemci-sunucu tabanlı bir mimari olmayan herhangi bir uygulamanın Performans Testi gerektirmemesi gerektiği anlamına gelir.
Örneğin, Microsoft Hesap Makinesi ne istemci-sunucu tabanlıdır ne de birden çok kullanıcı çalıştırır; dolayısıyla Performans Testi için bir aday değildir.
Performans Testi ve Performans Mühendisliği arasındaki fark nedir
Performans Testi ve Performans Mühendisliği arasındaki farkı anlamak önemlidir. Aşağıda bir anlayış paylaşılmaktadır:
Performans Testi , bir yazılım uygulamasının mevcut performansının çeşitli parametreler altında test edilmesi ve raporlanmasıyla ilgili bir disiplindir .
Performans mühendisliği , gerekli performansı gerçekleştirmek amacıyla yazılımın test edildiği ve ayarlandığı süreçtir. Bu süreç, en önemli uygulama performansı özelliğini, yani kullanıcı deneyimini optimize etmeyi amaçlamaktadır.
Tarihsel olarak, test etme ve ayarlama belirgin bir şekilde ayrı olmuştur ve çoğu zaman rekabet halindedir. Bununla birlikte, son birkaç yılda, birkaç testçi ve geliştirici grubu, ayarlama ekipleri oluşturmak için bağımsız olarak işbirliği yaptı. Bu ekipler önemli bir başarı elde ettikleri için, performans ayarlamalı kuplaj performans testi kavramı yakalandı ve şimdi buna performans mühendisliği diyoruz.