Kaydedilmiş bir komut dosyası, sanal bir kullanıcıyı simüle edebilir; ancak, yalnızca bir kayıt "gerçek kullanıcı davranışını" kopyalamak için yeterli olmayabilir.
Bir komut dosyası kaydedildiğinde, söz konusu başvurunun tek ve düz akışını kapsar. Oysa gerçek bir kullanıcı, oturumu kapatmadan önce herhangi bir işlemin birden çok yinelemesini gerçekleştirebilir. Düğmelere tıklama arasındaki gecikme (düşünme süresi) kişiden kişiye değişir. Bazı gerçek kullanıcıların uygulamanıza DSL üzerinden erişmesi ve bazılarının da çevirmeli bağlantı üzerinden erişmesi ihtimali vardır. Bu nedenle, son kullanıcının gerçek hissini elde etmek için, komut dosyalarımızı tam olarak eşleşecek veya en azından davranış açısından gerçek kullanıcılara çok yakın olacak şekilde geliştirmemiz gerekir.
Yukarıdakiler, "Performans Testi" yapılırken dikkate alınması gereken en önemli noktadır, ancak bir VU Komut Dosyası daha fazlasıdır. SUL bir performans testinden geçerken bir VUser'ın harcadığı zamanı kesin olarak nasıl ölçeceksiniz? VUser'ın belirli bir noktada geçip geçmediğini nasıl anlarsınız? Arızanın arkasındaki sebep nedir, bazı arka uç işlemlerinin başarısız olması veya sunucu kaynaklarının sınırlı olması fark etmez?
Yukarıdaki tüm soruları yanıtlamaya yardımcı olması için senaryomuzu geliştirmemiz gerekiyor.
- İşlemleri Kullanma
- Düşünme Zamanı, Buluşma Noktaları ve Yorumları Anlamak
- Menü aracılığıyla İşlev Ekleme
- Parametrelendirme nedir?
- Çalışma Süresi Ayarları ve bunların VU simülasyonu üzerindeki etkisi
- Mantığı Çalıştır
- İlerleme hızı
- Günlük
- Think Times
- Hız Simülasyonu
- Tarayıcı Emülasyonu
- Vekil
İşlemleri Kullanma
İşlemler, herhangi bir işlem için sunucu yanıt süresini ölçen mekaniklerdir. Basit bir ifadeyle, "İşlem" kullanımı, sistemin belirli bir talep için harcadığı sürenin ölçülmesine yardımcı olur. Metin kutusundan odak kaybedildiğinde bir düğmeye tıklama veya AJAX çağrısı kadar küçük olabilir.
İşlemleri uygulamak basittir. Sunucuya istek yapılmadan önce sadece bir satır kod yazın ve istek sona erdiğinde işlemi kapatın. LoadRunner, işlem adı olarak yalnızca bir dizge gerektirir.
Bir işlem açmak için şu kod satırını kullanın:
lr_start_transaction ("İşlem Adı");
İşlemi kapatmak için şu kod satırını kullanın:
lr_end_transaction ("İşlem Adı",);
- LR_AUTO
- LR_PASS
- LR_FAIL
Misal:
lr_end_transaction ("My_Login", LR_AUTO);
lr_end_transaction ("Business_Workflow_Transaction Name", LR_FAIL);
Dikkat edilecek noktalar:
- Unutmayın, "C" ile çalışıyorsunuz ve bu büyük / küçük harfe duyarlı bir dil.
- Boşluk ve alt çizgi kullanabilmenize rağmen, işlem adında nokta (.) Karakterine izin verilmez.
- Kodunuzu iyi bir şekilde dallandırdıysanız ve sunucudan gelen yanıtı doğrulamak için kontrol noktaları eklediyseniz, LR_PASS veya LR_FAIL gibi özel hata işlemeyi kullanabilirsiniz. Aksi takdirde, LR_AUTO kullanabilirsiniz ve LoadRunner otomatik olarak sunucu hatasını (HTTP 500, 400 vb.)
- İşlemleri uygularken, herhangi bir think_time ifadesinin sıkıştırılmadığından emin olun, aksi takdirde işleminiz her zaman bu dönemi içerecektir.
- LoadRunner, işlem adı olarak sabit bir dizeye ihtiyaç duyduğundan, işlem uygularken yaygın bir sorun dizenin uyumsuzluğudur. Bir işlemi açıp kapatırken farklı bir isim verirseniz en az 2 hata yaparsınız. Açtığınız işlem asla kapatılmadığından, LoadRunner bir hata verecektir. Ayrıca, kapatmaya çalıştığınız işlem hiç açılmadığı için bir hata oluştu.
- Zekanızı kullanabilir ve yukarıdaki hatalardan hangisinin önce rapor edileceğini kendinize yanıtlayabilir misiniz? Cevabınızı doğrulamak için neden kendi hatanızı yapmıyorsunuz? Doğru cevap verdiyseniz, doğru yoldesiniz. Yanlış cevapladıysanız, odaklanmanız gerekir.
- LoadRunner, isteklerin ve yanıtların senkronizasyonunu otomatik olarak üstlendiğinden, işlemleri uygularken yanıt konusunda endişelenmenize gerek kalmaz.
Düşünme Zamanı, Buluşma Noktaları ve Yorumları Anlamak
Buluşma Noktaları
Buluşma Noktaları "buluşma noktaları" anlamına gelir. LoadRunner'a eşzamanlılık getirmesini söyleyen sadece bir satırlık ifadedir. Sunucudaki yoğun kullanıcı yükünü taklit etmek için VUser komut dosyalarına buluşma noktaları eklersiniz.
Rendezvous noktaları, VUser'a test yürütme sırasında birden fazla VUser'ın belirli bir noktaya gelmesini beklemesini söyler, böylece aynı anda bir görevi gerçekleştirebilirler. Örneğin, banka sunucusundaki en yüksek yükü taklit etmek için, 100 VUser'a aynı anda hesaplarına nakit yatırması talimatını veren bir buluşma noktası ekleyebilirsiniz. Bu, randevu kullanılarak kolayca sağlanabilir.
Buluşma noktaları doğru yerleştirilmezse, VUser uygulamanın farklı bölümlerine - aynı komut dosyası için bile - erişecektir. Bunun nedeni, her VUser'ın farklı yanıt süresi alması ve bu nedenle çok az kullanıcının geride kalmasıdır.
Sözdizimi: lr_rendesvous (“Mantıksal Ad”);
En İyi Uygulamalar:
- Daha iyi kod okunabilirliği için bir buluşma noktasının önüne "rdv_" ekleyin; ör. "rdv_Login"
- Herhangi bir acil düşünme süresi ifadesini kaldırın
- Bir komut dosyası görünümünde buluşma noktaları uygulama (kayıttan sonra)
Yorumlar (değiştir | kaynağı değiştir)
Bir etkinliği, bir kod parçasını veya bir kod satırını açıklamak için yorumlar ekleyin. Yorumlar, kodu gelecekte ona atıfta bulunan herkes için anlaşılır hale getirmeye yardımcı olur. Spesifik işlem hakkında bilgi sağlarlar ve ayrım için iki bölümü ayırırlar.
Yorum ekleyebilirsiniz
- Kayıt sırasında (aracı kullanarak)
- Kayıttan sonra (doğrudan kodda yazarak)
En İyi Uygulama: Her komut dosyasının üstündeki yorumları işaretleyin
Menü aracılığıyla İşlev Ekleme
Doğrudan basit kod satırları yazabilirken, bir işlevi geri çağırmak için bir ipucuna ihtiyacınız olabilir. Ayrıca herhangi bir işlevi bulup doğrudan betiğinize eklemek için Adımlar Araç Kutusu'nu (sürüm 12'den önce İşlev Ekle olarak bilinir) kullanabilirsiniz.
Adımlar Araç Çubuğunu àSteps Araç Kutusunu Görüntüle altında bulabilirsiniz.
Bu bir yan pencere açacaktır, anlık görüntüye bakın:
Parametrelendirme nedir?
VUGen'deki bir parametre , çeşitli kullanıcılar için değiştirilen kayıtlı bir değeri içeren bir kaptır.
Komut dosyasının yürütülmesi sırasında (VUGen veya Controller'da), harici bir kaynaktan gelen değer (.txt, XML veya veritabanı gibi) parametrenin önceki değerinin yerini alır.
Parametrelendirme, sunucuya dinamik (veya benzersiz) değerler göndermede yararlıdır, örneğin; bir iş sürecinin 10 yineleme çalıştırması, ancak her seferinde benzersiz bir kullanıcı adı seçmesi istenir.
Aynı zamanda, söz konusu sisteme gerçek benzeri davranışları uyarmaya da yardımcı olur. Aşağıdaki örneğe bir göz atın:
Sorun örnekleri:
İş süreci yalnızca sunucudan gelen geçerli tarih için çalışır, bu nedenle kodlanmış bir istek olarak iletilemez.
Bazen, istemci uygulaması, sürecin devam etmesi için (tek bir kullanıcı için bile) sunucuya Benzersiz bir Kimlik (örneğin, session_id) iletir - Böyle bir durumda, parametreleştirme yardımcı olur.
Genellikle, istemci uygulaması sunucuya gönderilen ve sunucudan gönderilen verilerin bir önbelleğini tutar. Sonuç olarak, sunucu gerçek bir kullanıcı davranışı almıyor (sunucunun arama kriterlerine bağlı olarak farklı algoritma çalıştırması durumunda). VUser betiği başarıyla yürütülürken, çizilen performans istatistikleri anlamlı olmayacaktır. Parametrelendirme yoluyla farklı verilerin kullanılması, sunucu tarafı etkinliğini (prosedürler vb.) Taklit etmeye ve sistemi çalıştırmaya yardımcı olur.
Kayıt sırasında VUser'da sabit kodlanmış bir tarih, bu tarih geçtiğinde artık geçerli olmayabilir. Tarihin parametrelendirilmesi, VUser'ın sabit kodlanmış tarihi değiştirerek başarılı olmasına izin verir. Bu tür alanlar veya istekler, parametrelendirme için doğru adaylardır.
Videoya erişilemiyorsa burayı tıklayın
Çalışma Süresi Ayarları ve bunların VU simülasyonu üzerindeki etkisi
Çalışma Süresi Ayarları, VUGen Komut Dosyanız kadar önemlidir. Farklı konfigürasyonlarla farklı test tasarımları elde edebilirsiniz. Bu nedenle, Çalıştırma Süresi Ayarları tutarlı değilse tekrarlanamayan sonuçlarla karşılaşabilirsiniz. Her bir özelliği tek tek tartışalım.
Mantığı Çalıştır
Mantık Çalıştır, vuser_init ve vuser_end dışında tüm eylemlerin kaç kez yürütüleceğini tanımlar.
Muhtemelen bu, LoadRunner'ın neden tüm Oturum Açma kodunu vuser_init içinde ve Logout kısmını vuser_end içinde tutmayı önerdiğini daha açık hale getirir.
Birden fazla eylem oluşturduysanız, diyelim ki Oturum Açın, Ekranı Açın, Kirayı Hesaplayın, Fonları Gönderin, Bakiyeyi Kontrol Edin ve oturumu kapatın, ardından her bir VUser için aşağıdaki senaryo gerçekleşecektir:
Tüm VUsers oturum açacak, Ekranı Açacak, Kirayı Hesaplayacak, Fonları Gönderecek, Bakiyeyi Kontrol edecek - sonra - tekrar Ekranı açacak, Kiraları hesaplayacak… ve benzeri - 10 kez yineleyerek - ardından çıkış (bir kez) yapacak.
Bu, daha çok gerçek bir kullanıcı gibi davranmayı sağlayan güçlü bir ayardır. Unutmayın, gerçek bir kullanıcı her seferinde oturum açmaz ve oturumu kapatmaz - genellikle aynı adımları tekrarlar.
Çıkış yapmadan önce e-postanızı kontrol ederken kaç kez "gelen kutusu" na tıklıyorsunuz?
İlerleme hızı
Bu önemli. Çoğunlukla insanlar ilerleme hızı ile düşünme zamanı arasındaki farkı anlayamazlar. Tek fark, "hızın yinelemeler arasındaki gecikmeyi ifade etmesi", düşünme süresi ise herhangi 2 adım arasındaki gecikmedir.
Önerilen ayar, test tasarımına bağlıdır. Ancak, agresif bir yüke sahip olmak istiyorsanız, "Önceki yineleme biter bitmez" seçeneğini tercih etmeyi düşünün.
Günlük
Günlük (genel olarak anlaşıldığı gibi), LoadRunner'ı çalıştırdığınızda tüm olayların bir defteridir. Uygulamanız ve sunucunuz arasında neler olduğunu öğrenmek için günlüğü etkinleştirebilirsiniz.
LoadRunner, sağlam ve kendi başına ölçeklenebilir olan güçlü bir günlük kaydı mekanizması sağlar. Yalnızca “Standart Günlük” veya ayrıntılı, yapılandırılabilir bir genişletilmiş günlüğü tutmanıza veya tamamen devre dışı bırakmanıza olanak tanır.
Standart bir günlük bilgilendiricidir ve kolayca anlaşılabilir. Genellikle VUser komut dosyalarınızda sorun gidermeye ihtiyaç duyacağınız doğru miktarda bilgi içerir.
Genişletilmiş Günlük durumunda, tüm Standart günlük bilgileri bir alt kümedir. Ek olarak, parametre ikamesine sahip olabilirsiniz. Bu, LoadRunner bileşenine istekler ve yanıt verileri dahil olmak üzere tüm parametrelerin (parametreleştirmeden gelen) tam bilgilerini içermesini söyler.
"Sunucu Tarafından Döndürülen Veriler" i dahil ederseniz, günlüğünüz uzun olacaktır. Bu, günlükte yer alan tüm HTML, etiketler, kaynaklar ve kaynak dışı bilgileri içerecektir. Bu seçenek, yalnızca ciddi sorun giderme işlemlerine ihtiyacınız varsa iyidir. Genellikle bu, günlük dosyasını çok büyük yapar ve kolay anlaşılmaz hale getirir.
Şimdiye kadar tahmin edebileceğiniz gibi, "Gelişmiş İzleme" yi seçerseniz, günlük dosyanız çok büyük olacaktır. Denemelisin. VUGen'in harcadığı sürenin de önemli ölçüde arttığını fark edeceksiniz, ancak bunun VUGen tarafından bildirilen işlem yanıt süresi üzerinde hiçbir etkisi olmayacak. Ancak, bu çok gelişmiş bir bilgidir ve söz konusu uygulamayı, uygulamanız ile donanım arasındaki istemciden sunucuya iletişimi ve ayrıca protokol düzeyi ayrıntılarını anlarsanız yararlı olabilir. Anlamak ve sorun gidermek için aşırı çaba gerektirdiğinden, genellikle bu bilgi özü gereği ölüdür.
İpuçları:
- Günlük etkinleştirildiğinde VUGen ne kadar zaman alırsa alsın, işlem yanıt süresi üzerinde hiçbir etkisi yoktur. HP bu fenomeni "en son teknoloji" olarak adlandırıyor.
- Gerekmiyorsa günlüğü devre dışı bırakın.
- Komut dosyalarınızla işiniz bittiğinde günlüğü devre dışı bırakın. Günlüğe kaydetme etkinleştirilmiş komut dosyalarının dahil edilmesi, denetleyicinin daha yavaş çalışmasına ve rahatsız edici mesajlar rapor etmesine neden olur.
- Günlüğün devre dışı bırakılması, LoadRunner'dan simüle edebileceğiniz maksimum kullanıcı sayısının kapasitesini artıracaktır.
- "Yalnızca hata oluştuğunda mesaj gönder" seçeneğini kullanmayı düşünün - bu, gereksiz bilgi mesajlarını susturur ve yalnızca hatayla ilgili mesajları rapor eder.
Think Times
Düşünme Zamanı, iki adım arasındaki gecikmedir.
Think Time, hiçbir gerçek kullanıcı bir makine gibi herhangi bir uygulamayı (VUGen) kullanamayacağı için kullanıcı davranışının kopyalanmasına yardımcı olur. VUGen otomatik olarak düşünme süresi oluşturur. Düşünme süresini kaldırmak, çarpmak veya dalgalandırmak için hala tam kontrole sahipsiniz.
Daha fazla anlamak için, örneğin, bir kullanıcı bir ekran açabilir (bu, bir yanıtın ardından bir istek) ve ardından enter tuşuna basmadan önce kullanıcı adı ve şifreyi sağlayabilir. Uygulamanın sunucuyla bir sonraki etkileşimi, "Oturum Aç" ı tıkladığında gerçekleşir. Bir kullanıcının kullanıcı adını ve parolasını yazması için geçen süre LoadRunner'da Think Time'dır.
Uygulama üzerindeki agresif yükü simüle etmek istiyorsanız, düşünme süresini tamamen devre dışı bırakmayı düşünün.
Bununla birlikte, gerçekten benzer bir davranışı simüle etmek için, "Kullanıcı Rastgele Düşünme Süresi" yapabilir ve yüzdeleri istediğiniz gibi ayarlayabilirsiniz.
Düşünme Süresini meşru bir süre ile sınırlayın. Genellikle 30 saniye yeterince iyidir.
Hız Simülasyonu
Hız simülasyonu, her bir istemci makine için bant genişliği kapasitesini ifade eder.
LoadRunner aracılığıyla binlerce VUser'in simülasyonunu yaptığımız için, LoadRunner'ın bant genişliği / ağ hızı simülasyonunu kontrol etmeyi bu kadar basit hale getirmesi şaşırtıcı.
Uygulamanıza 128 Kbps üzerinden erişen müşteriyseniz, buradan kontrol edebilirsiniz. Doğru performans istatistiklerini elde etmenize yardımcı olacak "gerçek benzeri davranış" simülasyonu yapacaksınız.
En iyi öneri, Maksimum bant genişliğini kullan olarak ayarlamaktır. Bu, ağla ilgili performans darboğazlarının göz ardı edilmesine ve öncelikle uygulamadaki olası sorunlara odaklanılmasına yardımcı olacaktır. Farklı koşullar altında değişen davranışları görmek için testi her zaman birden çok kez çalıştırabilirsiniz.
Tarayıcı Emülasyonu
Kullanıcı deneyimi, bir son kullanıcının kullandığı tarayıcıya bağlı değildir. Açıkçası, bu, Performans önlemlerinin kapsamı dışındadır. Ancak, taklit etmek istediğiniz tarayıcıyı seçebilirsiniz.
Bu konfigürasyonda doğru tarayıcıyı seçmenin sizin için tam olarak ne zaman önemli olacağını kendinize yanıtlayabilir misiniz?
Eğer konu uygulaması bir web uygulamasıysa, bu konfigürasyonu kullanacaksınız ve farklı tarayıcılar için farklı yanıtlar döndüreceksiniz. Örneğin, IE ve Firefox vb. İçin farklı resimler ve içerikler göreceksiniz.
Bir diğer önemli ayar da Tarayıcı önbelleğini simüle et. Önbellek etkinleştirildiğinde yanıt süresini ölçmek istiyorsanız, bu kutuyu işaretleyin. En kötü durumu arıyorsanız, bu kesinlikle dikkate alınmaz.
HTML olmayan kaynakları indirmek, LoadRunner'ın herhangi bir CSS, JS ve diğer zengin medyayı indirmesine izin verir. Bu kontrol edilmeli. Ancak, bunu performans testi tasarımınızdan hangisini çıkarırsanız, bunun işaretini kaldırabilirsiniz.
Vekil
Proxy'yi Test Ortamınızdan tamamen kaldırmak en iyisidir - bu, test sonuçlarını güvenilmez hale getirecektir. Ancak bunun kaçınılmaz olduğu durumlarla karşılaşabilirsiniz. Böyle bir durumda LoadRunner, proxy ayarlarında size kolaylık sağlar.
Proxy ayarı olmadan çalışacaksınız (veya çalışmalısınız). Varsayılan tarayıcınızdan edinebilirsiniz. Ancak, hangi tarayıcının varsayılan olarak ayarlandığını ve varsayılan tarayıcı için hangi proxy yapılandırmasının olduğunu kontrol etmeyi unutmayın.
Bir proxy kullanıyorsanız ve kimlik doğrulama (veya bir komut dosyası) gerektiriyorsa, yeni bir pencereye götüren Authenticate düğmesine tıklayabilirsiniz. Aşağıdaki ekran görüntüsüne bakın.
Proxy sunucusunda kimlik doğrulaması yaptırmak amacıyla kullanıcı adı ve şifre sağlamak için bu ekranı kullanın. Ekranı kapatmak için Tamam'ı tıklayın.
Tebrikler. VUGen betiğinizi yapılandırmayı tamamladınız. Tüm VUser komut dosyalarınız için yapılandırmayı unutmayın.