LoadRunner'da Parametrelendirme, Fonksiyonlar, İşlemler

Kaydedilmiş bir komut dosyası sanal bir kullanıcıyı simüle edebilir; ancak yalnızca kayıt "gerçek kullanıcı davranışını" kopyalamak için yeterli olmayabilir.

Bir script kaydedildiğinde söz konusu uygulamanın tek ve düz akışını kapsar. Oysa gerçek bir kullanıcı, oturumu kapatmadan önce herhangi bir işlemin birden fazla yinelemesini gerçekleştirebilir. Düğmelere tıklama arasındaki gecikme (düşünme süresi) kişiden kişiye değişecektir. Bazı gerçek kullanıcıların uygulamanıza DSL üzerinden erişmesi, bazılarının ise çevirmeli bağlantı üzerinden erişmesi muhtemeldir. Bu nedenle, gerçek son kullanıcı hissini elde etmek için, komut dosyalarımızı tam olarak eşleşecek veya en azından davranış olarak gerçek kullanıcılara çok yakın olacak şekilde geliştirmemiz gerekiyor.

Yukarıdakiler yürütülürken en önemli husustur “Performans testi”, ancak bir VU Komut Dosyasında daha fazlası var. SUL bir performans testinden geçerken VUser tarafından harcanan süreyi kesin olarak nasıl ölçeceksiniz? VUser'ın belirli bir noktada geçip geçmediğini veya başarısız olduğunu nasıl anlarsınız? Bazı arka uç işlemlerinin başarısız olması veya sunucu kaynaklarının sınırlı olması nedeniyle başarısızlığın ardındaki sebep nedir?

Yukarıdaki tüm soruların yanıtlanmasına yardımcı olmak için senaryomuzu geliştirmemiz gerekiyor.

İşlemleri Kullanma

İşlemler, herhangi bir işlem için sunucu yanıt süresini ölçmek için kullanılan mekaniklerdir. Basit bir ifadeyle, "İşlem" kullanımı, sistemin belirli bir istek için harcadığı süreyi ölçmeye yardımcı olur. Bir düğmeye tıklamak veya metin kutusundan odağı kaybettiğinizde bir AJAX çağrısı yapmak kadar küçük olabilir.

İşlemleri uygulamak basittir. Sunucuya istek yapılmadan önce bir satır kod yazmanız ve istek bittiğinde işlemi kapatmanız yeterlidir. LoadRunner, işlem adı olarak yalnızca bir dize gerektirir.

Bir işlemi açmak için bu kod satırını kullanın:

lr_start_transaction(“Transaction Name”);

İşlemi kapatmak için bu kod satırını kullanın:

lr_end_transaction(“Transaction Name”, <status>);

LoadRunner'a bu işlemin başarılı mı yoksa başarısız mı olduğunu söyler. Olası parametreler şunlar olabilir:

  • LR_AUTO
  • LR_PASS
  • LR_FAIL

Örnek:

lr_end_transaction(“Girişim_Girişim”, LR_AUTO);
lr_end_transaction(“001_Opening_Gösterge Paneli Adı”, LR_PASS);
lr_end_transaction(“İş_İş Akışı_İşlem Adı”, LR_FAIL);

Dikkat Edilmesi Gereken Noktalar:

  • Unutmayın, “C” ile çalışıyorsunuz ve bu büyük/küçük harfe duyarlı bir dildir.
  • İşlem adında nokta (.) karakterine izin verilmez, ancak boşluk ve alt çizgi kullanabilirsiniz.
  • 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şleme kullanabilirsiniz. Aksi takdirde, LR_AUTO kullanabilirsiniz ve LoadRunner sunucu hatasını (HTTP 500, 400 vb.) otomatik olarak işler.
  • İşlemleri uygularken hiçbir şeyin olmadığından emin olun. think_time Ekstre arasına sıkıştırılmış veya başka türlü bir işlem yapılmamış olması durumunda işleminiz her zaman o dönemi içerecektir.
  • LoadRunner, işlem adı olarak sabit bir dize gerektirdiğinden, işlemi uygularken yaygın olarak karşılaşılan sorun, dize uyumsuzluğudur. Bir işlemi açarken ve kapatırken farklı bir isim verirseniz en az 2 hata yaparsınız. Açtığınız işlem hiç kapatılmadığı için LoadRunner hata verecektir. Ayrıca kapatmaya çalıştığınız işlem hiç açılmadığından hata oluştu.
  • Zekanızı kullanarak yukarıdaki hatalardan hangisinin önce rapor edileceğini kendinize sorabilir misiniz? Cevabınızı doğrulamak için neden kendi hatanızı yapmıyorsunuz? Doğru cevap verdiyseniz, bir üst tura geçtiniz. track. Yanlış cevap verdiyseniz, odaklanmanız gerekiyor.
  • LoadRunner istek ve yanıtların senkronizasyonunu otomatik olarak üstlendiği için işlemleri uygularken yanıt konusunda endişelenmenize gerek kalmayacaktır.

Düşünme Süresini, Buluşma Noktalarını ve Yorumları Anlamak

Buluşma Noktaları

Buluşma Noktaları “buluşma noktaları” anlamına gelir. LoadRunner'a eşzamanlılık getirmesini söyleyen yalnızca bir satırlık ifadedir. Sunucudaki ağır kullanıcı yükünü taklit etmek için VUser komut dosyalarına buluşma noktaları eklersiniz.

Buluşma noktaları, VUser'a, test yürütme sırasında birden fazla VUser'in belirli bir noktaya varmasını beklemesi talimatını verir, böylece aynı anda bir görevi gerçekleştirebilirler. Örneğin, banka sunucusundaki yoğun yükü taklit etmek için, 100 VUser'a aynı anda hesaplarına nakit yatırma talimatı veren bir buluşma noktası ekleyebilirsiniz. Bu, buluşma kullanılarak kolayca başarılabilir.

Buluşma noktaları doğru şekilde yerleştirilmezse VUser, aynı komut dosyası için bile uygulamanın farklı bölümlerine erişecektir. Bunun nedeni, her VUser'ın farklı tepki süresi alması ve dolayısıyla çok az kullanıcının geride kalmasıdır.

Sözdizimi: lr_rendesvous(“Mantıksal Ad”);

En İyi Uygulamalar:

  • Kodun daha iyi okunabilmesi için buluşma noktasının önüne "rdv_" ekleyin; örneğin “rdv_Login”
  • Tüm acil düşünme zamanı ifadelerini kaldırın
  • Komut dosyası görünümünde buluşma noktalarını uygulama (kayıttan sonra)

Buluşma Noktaları

Yorumlar

Bir etkinliği, bir kod parçasını veya bir kod satırını tanımlamak için yorumlar ekleyin. Yorumlar, gelecekte koda başvuran herkes için kodun anlaşılır olmasına yardımcı olur. Belirli bir operasyon hakkında bilgi sağlarlar ve ayrım için iki bölüme ayrılırlar.

yorum ekleyebilirsiniz

  • Kayıt sırasında (aracı kullanarak)
  • Kayıttan sonra (doğrudan koda yazma)

En İyi Uygulama: Her komut dosyası dosyasının üst kısmındaki yorumları işaretleyin

Menü aracılığıyla İşlevlerin eklenmesi

Basit kod satırlarını doğrudan yazabilmenize rağmen, bir fonksiyonu geri çağırmak için bir ipucuna ihtiyacınız olabilir. Ayrıca, herhangi bir fonksiyonu doğrudan betiğinize bulmak ve eklemek için Steps Toolbox'ı (12. sürümden önce Insert Function olarak bilinir) kullanabilirsiniz.

Adımlar Araç Çubuğunu Görünüm àAdımlar Araç Kutusu altında bulabilirsiniz.

Menü Aracılığıyla İşlev Ekleme

Bu bir yan pencere açacaktır, anlık görüntüye bakın:

Menü Aracılığıyla İşlev Ekleme

Parametreleştirme Nedir?

A parametre VUGen'de, çeşitli kullanıcılar için değiştirilen kayıtlı bir değeri içeren bir kaptır.

Betiğin 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 yerine geçer.

Parametrelendirme, örneğin dinamik (veya benzersiz) değerlerin sunucuya gönderilmesinde faydalıdır; bir iş sürecinin 10 yinelemeyi çalıştırması ancak her seferinde benzersiz kullanıcı adı seçmesi istenmektedir.

Aynı zamanda söz konusu sisteme gerçeğe benzer davranışların uyarılmasına 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, dolayısıyla sabit kodlanmış bir istek olarak iletilemez.

Bazen istemci uygulaması, işlemin devam etmesi için (tek bir kullanıcı için bile) sunucuya Benzersiz bir Kimlik (örneğin oturum_id) iletir - Böyle bir durumda parametrelendirme yardımcı olur.

Çoğu zaman, istemci uygulaması sunucuya gönderilen ve sunucudan gönderilen verilerin ö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. Parametreleştirme yoluyla farklı verilerin kullanılması, sunucu tarafı etkinliğinin (prosedürler vb.) taklit edilmesine ve sistemin çalıştırılmasına yardımcı olur.

Kayıt sırasında VUser'da sabit olarak kodlanan bir tarih, o tarih geçtiğinde artık geçerli olmayabilir. Tarihin parametrelendirilmesi, sabit kodlanmış tarihi değiştirerek VUser uygulamasının başarılı olmasını sağlar. Bu tür alanlar veya istekler parametrelendirme için doğru adaylardır.

Tıkla okuyun videoya erişilemiyorsa

Çalıştırma Süresi Ayarları ve bunların VU simülasyonu üzerindeki etkisi

Çalıştırma Zamanı Ayarları, VUGen Komut Dosyanız kadar önemlidir. Değişen konfigürasyonlarla farklı test tasarımları elde edebilirsiniz. Bu nedenle Çalışma Süresi Ayarlarının tutarlı olmaması durumunda tekrarlanamayan sonuçlarla karşılaşabilirsiniz. Her özelliği tek tek tartışalım.

Mantığı Çalıştır

Çalıştırma Mantığı, vuser_init ve vuser_end hariç tüm eylemlerin yürütülme sayısını tanımlar.

Bu durum, LoadRunner'ın neden kee (sürekli aynı seviyede tutma) önerdiğini daha net açıklıyor olabilir.ping Giriş kodunun tamamı vuser_init içinde, çıkış kodu ise vuser_end içinde yer almaktadır ve ikisi de birbirinden bağımsızdır.

Birden fazla eylem oluşturduysanız, örneğin Oturum Açma, Ekranı Açma, Kirayı Hesaplama, Para Gönderme, Bakiyeyi Kontrol Etme ve oturumu kapatma gibi, her VUser için aşağıdaki senaryo gerçekleşecektir:

Tüm VKullanıcılar giriş yapacak, Açık Ekranı çalıştıracak, Kira Hesapla, Fon Gönder, Bakiyeyi Kontrol Et - sonra - tekrar Ekranı aç, Kiraları hesapla… vb. - 10 kez yineleyerek - ardından oturumu kapatacak (bir kez).

Mantığı Çalıştır

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 süresi arasındaki farkı anlayamazlar. Tek fark şu; "İlerleme hızı yinelemeler arasındaki gecikmeyi ifade eder" oysa düşünme süresi herhangi 2 adım arasındaki gecikmedir.

Önerilen ayar test tasarımına bağlıdır. Ancak agresif bir yük istiyorsanız "Önceki yineleme biter bitmez" seçeneğini tercih etmeyi düşünün.

İlerleme hızı

Giriş

(Genel anlamda anlaşıldığı üzere) bir kayıt defteri, bir muhasebecidir.ping LoadRunner çalışırken meydana gelen tüm olayların kaydını tutar. Uygulamanız ve sunucunuz arasında neler olup bittiğini öğrenmek için günlük kaydını etkinleştirebilirsiniz.

LoadRunner, kendi başına sağlam ve ölçeklenebilir olan güçlü bir günlük kaydı mekanizması sunar. Yalnızca “Standart Günlük”ü veya ayrıntılı, yapılandırılabilir 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. Genel olarak VUser komut dosyalarınızda sorun gidermeye ihtiyaç duyacağınız doğru miktarda bilgiyi içerir.

Genişletilmiş Günlük durumunda, tüm Standart günlük bilgileri bir alt kümedir. Ek olarak parametre değişikliği de yapabilirsiniz. Bu, LoadRunner bileşenine, istekler ve yanıt verileri de dahil olmak üzere tüm parametrelerin (parametreleştirmeden itibaren) tam bilgisini içermesini söyler.

“Sunucu Tarafından Döndürülen Veriler”i eklerseniz günlüğünüz uzayacaktır. Bu, doğrudan günlüğün içinde yer alan tüm HTML'yi, etiketleri, kaynakları ve kaynak olmayan bilgileri içerecektir. Bu seçenek yalnızca ciddi sorun gidermeye ihtiyacınız varsa iyidir. Genellikle bu, günlük dosyasının boyutunun çok büyük olmasına ve kolayca anlaşılamamasına neden olur.

Tahmin edebileceğiniz gibi, "Gelişmiş" seçeneğini tercih ederseniz Trac"e" yazarsanız, log dosyanız çok büyük olacaktır. Bunu denemelisiniz. VUGen'in harcadığı sürenin de önemli ölçüde arttığını fark edeceksiniz, ancak bu, VUGen tarafından bildirilen işlem yanıt süresini etkilemeyecektir. Bununla birlikte, bu çok ileri düzey bir bilgidir ve konu uygulamasını, uygulamanız ve donanımınız arasındaki istemci-sunucu iletişimini ve protokol düzeyindeki ayrıntıları anlıyorsanız faydalı olabilir. Genellikle, bu bilgi özünde işe yaramazdır çünkü anlamak ve sorun gidermek için aşırı çaba gerektirir.

Giriş

İpuçları:

  • Günlük etkinleştirildiğinde VUGen ne kadar zaman alırsa alsın, bunun işlem yanıt süresi üzerinde hiçbir etkisi yoktur. HP bu olguyu "en son teknoloji" olarak adlandırıyor.
  • Gerekli değilse 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 eklenmesi, denetleyicinin daha yavaş çalışmasına ve rahatsız edici mesajları raporlamasına 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ı susturacak ve yalnızca hatayla ilgili mesajları bildirecektir.

Zamanları Düşün

Düşünme Süresi basitçe iki adım arasındaki gecikmedir.

Hiçbir gerçek kullanıcı makine (VUGen) gibi herhangi bir uygulamayı kullanamayacağından Think Time, kullanıcı davranışının kopyalanmasına yardımcı olur. VUGen otomatik olarak düşünme süresini oluşturur. Düşünme süresinin süresini kaldırmak, çoğaltmak veya dalgalandırmak konusunda hâlâ tam kontrole sahipsiniz.

Daha fazlasını anlamak için, örneğin bir kullanıcı bir ekranı açabilir (bu, bir yanıtın ardından bir istek gelir) ve enter tuşuna basmadan önce kullanıcı adını ve şifresini sağlayabilir. Uygulamanın sunucuyla bir sonraki etkileşimi "Oturum Aç"a tıkladığında gerçekleşecektir. Bir kullanıcının kullanıcı adını ve şifresini yazmak için harcadığı süre LoadRunner'da Düşünme Süresidir.

Zamanları Düşün

Uygulamada agresif yükü simüle etmek istiyorsanız düşünme süresini tamamen devre dışı bırakmayı düşünün.

Ancak gerçek benzeri bir davranışı simüle etmek için "Kullanıcı Rastgele Düşünme Süresini" ayarlayabilir ve yüzdeleri istediğiniz gibi ayarlayabilirsiniz.

Düşünme Süresini meşru bir süre ile sınırlandırmayı düşünün. Genellikle 30 saniye yeterince iyidir.

Hız Simülasyonu

Hız simülasyonu basitçe her istemci makinesinin bant genişliği kapasitesini ifade eder.

Binlerce VUser'ı LoadRunner aracılığıyla simüle ettiğimiz için, LoadRunner'ın bant genişliği/ağ hızı simülasyonunu kontrol etmeyi bu kadar basit hale getirmesi şaşırtıcı.

Müşteri iseniz uygulamanıza 128 Kbps üzerinden erişiyorsanız buradan kontrol edebilirsiniz. Doğru performans istatistiklerini elde etmenize yardımcı olacak "gerçek benzeri davranışı" simüle edeceksiniz.

Hız Simülasyonu

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, son kullanıcının kullandığı tarayıcıya bağlı değildir. Açıkça görülüyor ki bu, Performans ölçümlerinin kapsamı dışındadır. Ancak hangi tarayıcıyı taklit etmek istediğinizi seçebilirsiniz.

Tarayıcı Emülasyonu

Bu yapılandırmada doğru tarayıcıyı seçmenin sizin için tam olarak ne zaman önemli olacağını kendinize cevaplayabilir misiniz?

Söz konusu uygulama bir web uygulamasıysa, farklı tarayıcılar için farklı yanıtlar döndürüyorsa bu yapılandırmayı kullanacaksınız. Örneğin, IE için farklı görseller ve içerikler göreceksiniz ve Firefox vb.

Bir diğer önemli ayar ise Simulate browser cache'dir. Önbellek etkinleştirildiğinde yanıt süresini ölçmek istiyorsanız, bu kutuyu işaretleyin. En kötü durum durumunu arıyorsanız, bu açıkça dikkate alınacak bir şey değildir.

HTML olmayan kaynakları indir, LoadRunner'ın herhangi bir CSS, JS ve diğer zengin medyayı indirmesine olanak tanır. Bu kontrol altında tutulmalıdır. Ancak bunu performans testi tasarımınızdan çıkarmak istiyorsanız bunun işaretini kaldırabilirsiniz.

vekil

Proxy'yi bilgisayarınızdan tamamen kaldırmak en iyisidir. Test ortamı – bu, test sonuçlarını güvenilmez hale getirecektir. Ancak kaçınılmaz olan durumlarla karşı karşıya kalabilirsiniz. Böyle bir durumda LoadRunner proxy ayarlarıyla size kolaylık sağlar.

Proxy yok ayarıyla çalışıyor olacaksınız (veya çalışıyor olmalı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.

vekil

Proxy kullanıyorsanız ve kimlik doğrulama (veya komut dosyası) gerektiriyorsa, yeni bir pencereye açılan Kimlik Doğrula düğmesine tıklayabilirsiniz. Aşağıdaki ekran görüntüsüne bakın.

vekil

Proxy sunucusunda kimlik doğrulaması yapmak amacıyla kullanıcı adı ve parolayı sağlamak için bu ekranı kullanın. Ekranı kapatmak için Tamam'a tıklayın.

Tebrikler. VUGen betiğinizin konfigürasyonunu tamamladınız. Bunu tüm VUser komut dosyalarınız için yapılandırmayı unutmayın.

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