important loadrunner functions used vugen scripts with examples
Temelde Sözdizimi ve Örneklerle VuGen Komut Dosyalarında kullanılan Önemli LoadRunner İşlevleri:
VuGen Komut Dosyası Zorlukları daha önceki eğitimimizde ayrıntılı olarak açıklanmıştır. Çevrimiçi Ücretsiz LoadRunner Eğitim Serisi .
LoadRunner VuGen ile olan yolculuğumuzda şimdiye kadar birçok önceden tanımlanmış işlevle karşılaştık (ve tabii ki kendi işlevlerimizi nasıl yazacağımızı da gördük).
Bu eğitimde, VuGen betiklerinde / senaryolarında çoğunlukla kullandığımız önemli 'önceden tanımlanmış' LoadRunner, Protokole özgü ve C dili işlevlerini listeleyecek ve kısaca konuşacağız.
=> LoadRunner Eğitimlerinin Tam Serisi İçin Buraya Tıklayın
Bu işlevleri üç kategoriye ayıralım:
- LoadRunner (LR) işlevleri
- Protokole özgü (Web - HTTP / HTML) işlevler
- C dil işlevleri
Tek tek keşfedelim!
Ne öğreneceksin:
LoadRunner (LR) İşlevleri
Bu işlevler, tüm protokoller için ortak olan genel LoadRunner işlevleridir:
1) lr_eval_string (): Daha önce görüldüğü gibi, bu işlev gömülü parametreleri değerlendirdikten sonra girdi dizgesini döndürür.
iki) lr_eval_string_ext (): Bu işlev bir arabellek oluşturur ve gömülü parametreleri değerlendirdikten sonra onu giriş dizesine atar.
3) lr_save_string (): Daha önce görüldüğü gibi, bu işlev LR parametresine / değişkenine bir değer atar.
4) lr_save_int (): Bu fonksiyon, aşağıda gösterildiği gibi bir LR parametresine bir tamsayı atar:
Misal:
int number; number=8; lr_save_int(number,”numparam”);
'Numparam' parametresi artık başka herhangi bir LR parametresi olarak kullanılabilir.
5) lr_paramarr_random (): Daha önce görüldüğü gibi, bu işlev bir parametre dizisindeki değerlerden birini rastgele seçer.
6) lr_paramarr_len (): Bu işlev, bir parametre dizisindeki öğelerin sayısını döndürür.
'CFlight'ın uçuş değerlerine sahip parametre dizisi olduğunu varsayın, aşağıdaki örnek bu dizinin eleman sayısının bir değişkene nasıl kopyalanabileceğini gösterir.
Misal:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx (): Bu işlev, bir parametre dizisindeki belirli bir konumdaki parametrenin değerini verir. Aşağıda gösterilen bir örnek, parametre dizisinin üçüncü değerini bir değişkene kaydeder.
Misal:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect () : Bu, bir veritabanına bağlanmak için kullanılan bir veritabanı işlevidir.
9) lr_db_disconnect () : Bu, bir veritabanından bağlantıyı kesmek için kullanılan bir veritabanı işlevidir.
10) lr_start_transaction () ve lr_end_transaction (): Daha önce görüldüğü gibi, bu işlevler bir işlemi başlatmak ve bitirmek (sırasıyla) için kullanılır.
on bir) lr_message () : Bu, günlüğe ve çıktı penceresine bir mesaj göndermek için kullanılan bir mesaj işlevidir.
12) lr_output_message (): Bu, komut dosyası bölümü ve satır numarası gibi ayrıntılarla birlikte mesaj (lar) ı çıktı pencereleri, günlük dosyaları ve diğer test raporu özetlerine göndermek için kullanılan bir mesaj işlevidir.
13) lr_log_message () : Bu, çıktı penceresine değil, Vuser veya aracı günlük dosyasına bir mesaj göndermek için kullanılan bir mesaj işlevidir.
14) lr_error_message (): Bu, çıktı pencerelerine, günlük dosyalarına ve diğer test raporu özetlerine mesaj (lar) göndermek için kullanılan bir mesaj işlevidir.
on beş) lr_save_datetime (): Bu işlev, geçerli tarih ve saati (veya belirtilen ofset ile tarih ve saati) komut dosyamızda gerektiğinde ve gerektiğinde kullanılabilecek bir parametreye kaydeder.
Misal:
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Eylem.c (4): Bugünün tarihi 9 Haziran 2018
Aşağıda, bir günün karşılığının kullanıldığı başka bir Örnek verilmiştir:
lr_save_datetime('Tomorrow's date is %B %d %Y', DATE_NOW + ONE_DAY , 'tomorrow'); lr_output_message(lr_eval_string('{tomorrow}'));
Eylem.c (4): Yarınki tarih 10 Haziran 2018
16) lr_set_debug_message (): Bu işlev, Mesaj günlüğü düzeyini (komut dosyasının bir bölümü için) Çalışma Zamanı ayarlarında ayarlanandan değiştirir. Aşağıda gösterildiği gibi, tam izleme yalnızca 'index.htm' isteği için etkinleştirilir (Çalışma Zamanı ayarlarında günlük düzeyi 'Standart günlük' olarak ayarlanmış olsa bile).
Misal:
lr_set_debug_message( LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE , LR_SWITCH_ON ); web_url('index.htm', 'URL= http://127.0.0.1:1080/WebTours/index.htm ', 'TargetFrame=', 'Resource= 0 ', 'RecContentType= text/html ', 'Referer=', 'Snapshot= t8.inf ', 'Mode= HTML ', LAST ); lr_set_debug_message( LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_FULL_TRACE , LR_SWITCH_OFF );
17) lr_abort (): Bu işlev, 'vuser_end' bölümünü çalıştırdıktan sonra komut dosyasının yürütülmesini durdurur. Bu işlev, belirli bir hata durumu nedeniyle komut dosyasını manuel olarak iptal etmemiz gerektiğinde kullanışlıdır.
18) lr_exit (): Bu işlev, Vuser'a yürütme sırasında çalıştırılan komut dosyasından çıkmasını ve belirtilen 'Komut Dosyası Devam Seçenekleri' ne göre devam etmesini söyler.
Aşağıdaki Örnekte, bu işlev, Vuser'a geçerli genel komut dosyası çalıştırma yinelemesini durdurmasını ve bir sonraki yinelemeyi başlatmasını söyler.
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
Diğer komut dosyası devam etme seçeneklerinin bir listesi:
- LR_EXIT_VUSER - Herhangi bir koşul olmadan çıkın ve doğrudan vuser_end eylemine gidin.
- LR_EXIT_ACTION_AND_CONTINUE - Mevcut eylemi durdurun ve sonraki eyleme geçin.
- LR_EXIT_ITERATION_AND_CONTINUE - Geçerli yinelemeyi durdurun ve sonraki yinelemeye gidin.
- LR_EXIT_VUSER_AFTER_ITERATION - Mevcut yineleme çalışması tamamlandıktan sonra çıkın.
- LR_EXIT_VUSER_AFTER_ACTION - Mevcut eylem çalıştırması tamamlandıktan sonra çıkın.
19) lr_think_time (): Bu işlev, bir Vuser'ın VuGen betiğindeki adımlar / eylemler arasında belirli bir süre duraklamasına izin verir. Bu, bir uygulamadaki eylemler / adımlar arasında bir süre gerçek kullanıcı düşünme davranışını simüle etmek içindir.
Örneğin, aşağıdaki bir Vuser'ı 10 saniye beklettir…
lr_think_time(10);
yirmi) lr_rendezvous (): Daha önce görüldüğü gibi, bu işlev LoadRunner'a komut dosyasında belirli bir adımda tüm Vusers bu adıma gelene kadar beklemesi talimatını verir, böylece sonraki istek aynı anda yürütülebilir.
yirmi bir) lr_load_dll (): Bu işlev, bir Vuser'ın betiği yeniden oynatırken harici bir işlevi çağırmasına izin veren harici bir dll yüklemek için kullanılır.
22) lr_save_searched_string (): Bu işlev bir arabellekte bir dizgenin oluşumunu arar ve bu dizeden sonra arabelleğin bir kısmını bir parametreye kaydeder.
Aşağıdaki Örnekte 'all' dizesinin üçüncü oluşumu (üçüncü öznitelik artı 1'de tanımlanan sayı) arabellekte aranır ve sonraki 14 karakter (altıncı öznitelik) bir parametreye kaydedilir (beşinci öznitelik '1', aramadan sonraki boşluğu atlar ).
char cBuffer() = 'all the King's horses and all the King's elephants and all the King's men'; lr_save_searched_string(cBuffer, strlen (cBuffer),2,'all',1,14,'parameter'); lr_output_message('The searched sub-string is %s',lr_eval_string('{parameter}'));
Eylem.c (7): Aranan alt dizi Kral'ın adamlarıdır.
2. 3) lr_vuser_status_message (): Bu işlev, Denetleyicinin Vuser durum alanına ve Vuser günlüğüne bir mesaj gönderir.
24) lr_next_row (): Bu fonksiyon, belirtilen parametre veri dosyasında çalışır ve aktif bir satırı sonraki satıra ilerletmek için kullanılır.
25) lr_advance_param (): Bu işlev, komut dosyasının sütun adları üzerinde çalışarak parametrenin bir sonraki kullanılabilir değerini kullanmasını sağlar.
gerçek dünyada veri madenciliği örnekleri
26) lr_start_timer () ve lr_end_timer (): Bu işlevler, zamanın geçişini saniye cinsinden hesaplayan bir VuGen komut dosyasında bir zamanlayıcıyı başlatmak ve durdurmak için kullanılır.
27) lr_whoami (): Bu işlev, Vuser hakkında bilgi verir (Vuser kimliği, Vuser grubu gibi).
28) lr_get_vuser_ip (): Bu işlev, bir Vuser'ın IPv4 adresini döndürür.
29) lr_get_host_name (): Bu işlev, betiği çalıştıran makinenin adını döndürür.
30) lr_get_master_host_name (): Bu işlev, Denetleyiciyi çalıştıran makinenin adını döndürür.
31) lr_decrypt (): Bu işlev, kodlanmış bir dizenin şifresini çözer. Genellikle şifrelerin şifresini çözmek için kullanılır.
32) lr_continue_on_error (): Bu işlev, bir hata oluşursa çalışmaya devam etmek veya komut dosyası yürütmesini durdurmak için hataların nasıl işleneceğini belirtir.
************************************
Bu bölümde, 'önceden tanımlanmış' işlevler ve 'LoadRunner' işlevlerini ayrıntılı olarak ele aldık.
Bir sonraki bölümde, LoadRunner'ın 'Protokole Özgü' ve 'C-Dili' işlevlerinden bahsedeceğiz.
Protokole Özgü Fonksiyonlar
Bu işlevler bir protokole özgüdür, tartışmamızda kendimizi 'Web-HTTP / HTML' protokolünü veya yalnızca 'Web' protokolüne özgü işlevleri tartışmakla sınırlayacağız.
1) web_url (): Bu işlev, URL bağımsız değişkeni tarafından belirtilen Web sayfasını yükler.
iki) web_submit_form (): Bu işlev bir form gönderir. Ve bu işlev yalnızca HTML modunda kaydedilir ve içeriğe duyarlı bir istek gönderir (bağlama duyarlı ve bağlamsız isteklerden zaten bahsetmiştik).
Aşağıdaki Örneğe bakın:
web_submit_form('login.pl', 'Snapshot= t2.inf ', ITEMDATA , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= login.x ', 'Value= 51 ', ENDITEM , 'Name= login.y ', 'Value= 13 ', ENDITEM , LAST );
3) web_submit_data (): Bu işlev, 'bağlamdan bağımsız' bir form gönderir. Bu işlev yalnızca URL tabanlı kayıt modunda veya 'Yalnızca açık URL'ler içeren bir komut dosyası' seçeneği işaretli olarak HTML tabanlı kayıt modunda kaydedilir.
Aşağıdaki Örneğe bakın:
web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t12.inf ', 'Mode= HTTP ', ITEMDATA , 'Name= userSession ', 'Value= 123342.854353989zDttttipAHAiDDDDDiAzzpziitcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 51 ', ENDITEM , 'Name= login.y ', 'Value= 13 ', ENDITEM)
4) web_custom_request (): Bu işlev, herhangi bir yöntem veya gövde kullanarak özel bir HTTP isteği oluşturmak için kullanılır.
5) web_concurrent_start () ve web_concurrent_end (): Bu işlevler, eşzamanlı bir grubun başlangıcını ve sonunu (sırasıyla) işaretlemek için kullanılır. Bir grup içindeki tüm işlevler (bu işlevler arasında yer alır) eşzamanlı olarak yürütülür.
6) web_reg_save_param (): Daha önce görüldüğü gibi, bu sınır temelli bir korelasyon fonksiyonudur.
7) web_reg_save_param_ex (): Bu aynı zamanda web_reg_save_param işlevinin geliştirilmiş bir versiyonu olan sınır tabanlı bir korelasyon işlevidir.
8) web_reg_find (): Daha önce görüldüğü gibi, bu işlev metin kontrolü için kullanılır.
9) web_image_check (): Daha önce görüldüğü gibi, bu işlev görüntü kontrolü için kullanılır.
10) web_convert_param (): Bu işlev, HTML metnini düz metne veya URL’ye veya düz metni URL’ye dönüştürmek için kullanılır. Aşağıdaki Örnekte, bu işlevler 'ParamName' parametresinin içeriğini HTML biçiminden URL biçimine dönüştürür.
Misal:
web_convert_param ('ParamName', 'SourceEncoding = HTML', 'TargetEncoding = URL', SON);
on bir) web_get_int_property (): Bu işlev, önceki HTTP isteği hakkında belirli bilgiler (durum kodu, indirme boyutu vb.) Döndürür. Aşağıda gösterilen örnekte, bu işlev HTTP durum kodunu ve indirme boyutunu döndürmek için kullanılır.
Misal:
int statusCode, downloadSize; web_url('index.htm', 'URL= http://127.0.0.1:1080/WebTours/index.htm ', 'Resource= 0 ', 'RecContentType= text/html ', 'Referer=', 'Snapshot= t1.inf ', 'Mode= HTML ', EXTRARES , 'Url= ../favicon.ico ', 'Referer=', ENDITEM , 'Url= https://www.bing.com/favicon.ico ', 'Referer=', ENDITEM , LAST ); statusCode = web_get_int_property( HTTP_INFO_RETURN_CODE ); lr_output_message('The HTTP status code is %d',statusCode); downloadSize = web_get_int_property( HTTP_INFO_DOWNLOAD_SIZE ); lr_output_message('The download size is %d bytes',downloadSize);
Eylem.c (17): web_get_int_property başladı (MsgId: MMSG-26355)
Eylem.c (17): web_get_int_property başarılı (MsgId: MMSG-26392)
Eylem.c (18): HTTP durum kodu 200'dür
Eylem.c (20): web_get_int_property başladı (MsgId: MMSG-26355)
Eylem.c (20): web_get_int_property başarılı (MsgId: MMSG-26392)
android için en iyi ücretsiz mp3 indirici uygulaması
Eylem.c (21): İndirme boyutu 12891 bayttır
12) web_set_max_html_param_len (): Bu işlev, bir parametreye alınabilen ve kaydedilebilen herhangi bir HTML dizesinin maksimum uzunluğunu ayarlamak için kullanılır. Korelasyon sırasında yakalanabilen bir parametrenin maksimum uzunluğu için varsayılan değer 256 karakterdir. Bu işlev, 256 karakterden uzun bir dizeyi almak için kullanılır.
13) web_cache_cleanup (): Bu işlev, önbelleği temizlemek için kullanılır. Çalışma zamanı ayarları - Tarayıcı Emülasyonu sekmesinde, 'Her yinelemede yeni bir kullanıcıyı simüle et' etkinleştirilirse, bu işlev her yinelemenin başında otomatik olarak çağrılır.
14) web_cleanup_cookies (): Bu işlev, Vuser tarafından şu anda depolanan tüm tanımlama bilgilerini temizler.
on beş) web_add_cookie (): Bu işlev, yeni bir çerez ekler.
16) web_add_header (): Bu işlev, sonraki HTTP isteğine kullanıcı tanımlı bir başlık ekler.
17) web_save_timestamp_param (): Bu işlev, betiği çalıştıran bilgisayarın geçerli yerel zaman damgasını kaydeder. Bu 13 basamaklı bir sayıdır ve değer, 1 Ocak 1970 gece yarısından bu yana geçen milisaniye sayısıdır.
Misal:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Eylem.c (5): Zaman damgası: 1529249235582
18) web_set_user (): Bu işlev, bir Web sunucusu veya proxy sunucusu için bir oturum açma değeri ve parolası belirtir. Kullanıcı adı ve şifre gerektiren bir sunucuya giriş yaptığımızda bu fonksiyon üretilir.
19) web_set_proxy (): Bu işlev, Vuser'a tüm HTTP isteklerini belirtilen adrese yönlendirmesi talimatını vermek için kullanılır. Proxy sunucu .
yirmi) web_set_certificate (): Bu işlev, Vuser'a internet explorer kayıt defterinden belirli bir sertifikayı kullanma talimatı vermek için kullanılır (güvenli bir Web sunucusu istemcinin bir sertifika sunmasını gerektirdiğinde).
Örneğin, aşağıdaki işlev, Vuser'a internet explorer kayıt defterinden ikinci sertifikayı kullanma talimatı verir.
web_set_certificate('2');
yirmi bir) web_set_sockets_option (): Bu işlev, istemci makinedeki soketler için çeşitli seçenekleri yapılandırmak için kullanılır.
SSL_VERSION - SSL sürümü: '2', '3', '2 ve 3', 'TLS', 'TLS1.1' veya 'TLS1.2'.
MAX_CONNECTIONS_PER_HOST - Ana bilgisayar başına maksimum eşzamanlı bağlantı sayısı.
CLOSE_KEEPALIVE_CONNECTIONS - Tüm açık bağlantıları kapatır.
C Dil İşlevleri
Bunlar, belirli senaryolar için VuGen komut dosyalarını geliştirmek için kullanılan 'C' işlevleridir.
1) strcpy (): Bu işlev bir dizeyi diğerine kopyalar.
Misal:
char String(100); strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Eylem.c (8): String'deki içerik: Bu bir dizedir
iki) strcmp (): Bu işlev, iki dizeyi karşılaştırır ve aralarındaki sözlükbilimsel ilişkiyi gösteren bir değer döndürür (dizeler aynıysa '= 0', ilk dize ikinci dizeden büyükse '0').
Misal:
char String1(100)= 'The first string'; char String2(100)= 'The second string'; if( strcmp (String1,String2)==0) { lr_output_message('Strings are same'); } else { lr_output_message('Strings are not same'); }
Eylem.c (14): Dizeler aynı değil.
3) strlen (): Bu işlev, bir dizenin uzunluğunu bayt cinsinden döndürür.
4) strcat (): Bu işlev iki dizgeyi birleştirir.
Misal:
char String(100)= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Eylem.c (10): Son dizi ise StarWars.
5) strtok (): Daha önce görüldüğü gibi, bu işlev belirtilen karakterlerle ayrılmış bir dizeden bir simge döndürür.
6) atoi (): Daha önce görüldüğü gibi, bu işlev bir C dizgesini bir C tamsayıya dönüştürür.
7) At(): Bu işlev bir C dizgesini bir C float'a dönüştürür.
8) itoa (): Bu işlev, bir C tamsayısını bir C dizesine dönüştürür.
Misal:
int x=1; char y(100); itoa (x,y,10); lr_output_message('The string is: %s',y);
Eylem.c (8): Dize: 1
9) fopen (): Bu işlev, bir dosya tanıtıcısı açmak için kullanılır.
10) fclose (): Bu işlev, bir dosya işaretçisini kapatmak için kullanılır.
on bir) fread (): Bu işlev, biçimlendirilmemiş verileri bir akıştan bir arabelleğe okur.
12) fwrite (): Bu işlev, biçimlendirilmemiş verileri bir tampondan bir akışa yazar.
13) fprintf (): Daha önce görüldüğü gibi, bu işlev biçimlendirilmiş çıktıyı bir dosyaya yazar.
14) sprint (): Bu işlev, biçimlendirilmiş çıktıyı bir dizgeye yazar.
Misal:
int arg = 84; char filename(64), * filetype = 'txt'; sprintf (filename, 'log_%d.%s', arg, filetype); lr_output_message ('The new file name is %s', filename);
Eylem.c (7): Yeni dosya adı log_84.txt'dir
Sonuç
Bu eğitimden, önceden tanımlanmış önemli LoadRunner işlevleri hakkında daha fazla bilgi edindik.
Bu işlevler, gerçek zamanlı uygulamalarda genellikle karşılaştığımız hemen hemen tüm önemli senaryolarla ilgilenir. Bu işlevler hakkında ek ayrıntılar için VuGen yardımındaki 'İşlev Referansı' na başvurmanız önerilir.
Yaklaşan eğitimimizde, LoadRunner'ı Kullanarak Web Hizmetleri Komut Dosyası hakkında daha fazla bilgi edineceksiniz.
=> LoadRunner Eğitimlerinin Eksiksiz Serileri İçin Burayı Ziyaret Edin
PREV Eğitimi | SONRAKİ Eğitici
Önerilen Kaynaklar
- LoadRunner VuGen Komut Dosyası Kullanarak Web Hizmetleri Performans Testi
- Örneklerle C ++ 'da Tarih ve Saat İşlevleri
- Örneklerle Python DateTime Eğitimi
- Türler ve Örneklerle C ++ 'da İşlevler
- HP LoadRunner Öğreticileriyle Yük Testi
- Python İşlevleri
- Python Dizesi İşlevleri
- LoadRunner'da VUGen Kayıt Seçenekleri