important loadrunner functions used vugen scripts with examples
Ważne funkcje LoadRunner używane głównie w skryptach VuGen ze składnią i przykładami:
Wyzwania związane ze skryptami VuGen zostały szczegółowo wyjaśnione w naszym wcześniejszym samouczku w Bezpłatne szkolenia online LoadRunner .
Podczas naszej podróży z LoadRunner VuGen do tej pory natknęliśmy się na wiele predefiniowanych funkcji (i oczywiście widzieliśmy również, jak pisać własne funkcje).
W tym samouczku wymienimy i krótko omówimy ważne „wstępnie zdefiniowane” funkcje LoadRunner, specyficzne dla protokołu oraz funkcje języka C, których najczęściej używamy w skryptach / scenariuszach VuGen.
=> Kliknij tutaj, aby uzyskać pełną serię samouczków LoadRunner
Podzielmy te funkcje na trzy kategorie:
- Funkcje LoadRunner (LR)
- Funkcje specyficzne dla protokołu (WWW - HTTP / HTML)
- Funkcje języka C.
Odkrywajmy jeden po drugim!
Czego się nauczysz:
- Funkcje LoadRunner (LR)
- Funkcje specyficzne dla protokołu
- Funkcje języka C.
- Wniosek
- rekomendowane lektury
Funkcje LoadRunner (LR)
Te funkcje są ogólnymi funkcjami LoadRunner, które są wspólne dla wszystkich protokołów:
1) lr_eval_string (): Jak już widzieliśmy, ta funkcja zwraca ciąg wejściowy po ocenie wszelkich parametrów osadzonych.
dwa) lr_eval_string_ext (): Ta funkcja tworzy bufor i przypisuje go do ciągu wejściowego po ocenie osadzonych parametrów.
3) lr_save_string (): Jak już wspomniano, funkcja ta przypisuje wartość do parametru / zmiennej LR.
4) lr_save_int (): Ta funkcja przypisuje liczbę całkowitą do parametru LR, jak pokazano poniżej:
Przykład:
int number; number=8; lr_save_int(number,”numparam”);
Parametr „numparam” może być teraz używany jak każdy inny parametr LR.
5) lr_paramarr_random (): Jak już widzieliśmy, ta funkcja losowo wybiera jedną z wartości z tablicy parametrów.
6) lr_paramarr_len (): Ta funkcja zwraca liczbę elementów w tablicy parametrów.
Załóżmy, że „cFlight” jest tablicą parametrów zawierającą wartości lotu, poniższy przykład pokazuje, jak liczbę elementów tej tablicy można skopiować do zmiennej.
Przykład:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx (): Ta funkcja podaje wartość parametru w określonej lokalizacji w tablicy parametrów. Przykład pokazany poniżej zapisuje trzecią wartość tablicy parametrów do zmiennej.
Przykład:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect () : Jest to funkcja bazy danych używana do łączenia się z bazą danych.
9) lr_db_disconnect () : Jest to funkcja bazy danych służąca do odłączania się od bazy danych.
10) lr_start_transaction () i lr_end_transaction (): Jak już wspomniano, funkcje te służą do rozpoczynania i kończenia (odpowiednio) transakcji.
jedenaście) lr_message () : Jest to funkcja wiadomości używana do wysyłania wiadomości do dziennika i okna wyjściowego.
12) lr_output_message (): Jest to funkcja wiadomości używana do wysyłania wiadomości ze szczegółami, takimi jak sekcja skryptu i numer wiersza, do wyświetlania okien, plików dziennika i innych podsumowań raportów z testów.
13) lr_log_message () : Jest to funkcja przesyłania komunikatów używana do wysyłania komunikatów do pliku dziennika użytkownika lub agenta, a nie do okna wyjściowego.
14) lr_error_message (): Jest to funkcja wiadomości używana do wysyłania wiadomości do okien wyjściowych, plików dziennika i innych podsumowań raportów z testów.
piętnaście) lr_save_datetime (): Ta funkcja zapisuje aktualną datę i godzinę (lub datę i godzinę z określonym przesunięciem) do parametru, którego można użyć w naszym skrypcie w razie potrzeby.
Przykład:
co to jest funkcja znajomego w C ++
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Action.c (4): Dzisiejsza data to 9 czerwca 2018 r
Poniżej podano kolejny przykład, w którym zastosowano przesunięcie jednego dnia:
lr_save_datetime('Tomorrow's date is %B %d %Y', DATE_NOW + ONE_DAY , 'tomorrow'); lr_output_message(lr_eval_string('{tomorrow}'));
Action.c (4): Jutrzejsza data to 10 czerwca 2018 r
16) lr_set_debug_message (): Ta funkcja zmienia poziom rejestrowania komunikatów (dla części skryptu) z poziomu określonego w ustawieniach czasu wykonywania. Jak pokazano poniżej, pełne śledzenie jest włączone tylko dla żądania „index.htm” (nawet jeśli poziom rejestrowania jest ustawiony na „Dziennik standardowy” w ustawieniach czasu wykonywania).
Przykład:
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 (): Ta funkcja przerywa wykonywanie skryptu po wykonaniu sekcji „vuser_end”. Ta funkcja jest przydatna, gdy musimy ręcznie przerwać wykonywanie skryptu z powodu określonego błędu.
18) lr_exit (): Ta funkcja nakazuje Vuserowi wyjście ze skryptu wykonywanego podczas wykonywania i kontynuowanie zgodnie z określonymi w „Opcjach kontynuacji skryptu”.
W poniższym przykładzie, ta funkcja instruuje Vuser, aby zatrzymał bieżącą iterację wykonywania skryptu globalnego i rozpoczął następną iterację.
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
Oto lista innych opcji kontynuacji skryptu:
- LR_EXIT_VUSER - Wyjdź bez żadnych warunków i przejdź bezpośrednio do akcji vuser_end.
- LR_EXIT_ACTION_AND_CONTINUE - Zatrzymaj bieżącą akcję i przejdź do następnej akcji.
- LR_EXIT_ITERATION_AND_CONTINUE - Zatrzymaj bieżącą iterację i przejdź do następnej iteracji.
- LR_EXIT_VUSER_AFTER_ITERATION - Wyjście po zakończeniu bieżącej iteracji.
- LR_EXIT_VUSER_AFTER_ACTION - Wyjście po zakończeniu bieżącego przebiegu akcji.
19) lr_think_time (): Ta funkcja umożliwia Vuserowi wstrzymanie na określony czas między krokami / działaniami w skrypcie VuGen. Ma to na celu symulację rzeczywistego zachowania użytkownika polegającego na myśleniu przez pewien czas między czynnościami / krokami w aplikacji.
Na przykład, poniższy opis powoduje, że Vuser czeka 10 sekund…
lr_think_time(10);
20) lr_rendezvous (): Jak już widzieliśmy, ta funkcja instruuje LoadRunner, aby czekał w określonym kroku w skrypcie, aż wszystkie Vusery przejdą do tego kroku, aby kolejne żądanie mogło być wykonane jednocześnie.
dwadzieścia jeden) lr_load_dll (): Ta funkcja służy do ładowania zewnętrznej biblioteki dll, umożliwiając Vuserowi wywołanie funkcji zewnętrznej podczas odtwarzania skryptu.
22) lr_save_searched_string (): Ta funkcja wyszukuje wystąpienie ciągu w buforze i zapisuje część buforu po tym ciągu do parametru.
W poniższym przykładzie , trzecie wystąpienie (liczba zdefiniowana w trzecim atrybucie plus 1) ciągu „wszystkie” jest przeszukiwane w buforze i następnych 14 znaków (szósty atrybut) jest zapisywanych w parametrze (piąty atrybut „1” pomija spację po wyszukiwaniu ).
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}'));
Action.c (7): Przeszukiwany podciąg to ludzie króla.
2. 3) lr_vuser_status_message (): Ta funkcja wysyła komunikat do obszaru statusu użytkownika Vuser w kontrolerze i do dziennika użytkownika.
24) lr_next_row (): Ta funkcja działa na określonym pliku danych parametrów i służy do przechodzenia aktywnego wiersza do następnego wiersza.
25) lr_advance_param (): Ta funkcja sprawia, że skrypt używa następnej dostępnej wartości parametru, pracując na nazwach kolumn.
26) lr_start_timer () i lr_end_timer (): Funkcje te służą do uruchamiania i zatrzymywania licznika czasu w skrypcie VuGen, który oblicza upływ czasu w sekundach.
27) lr_whoami (): Ta funkcja zwraca informacje o Vuser (np. Vuser id, Vuser group).
28) lr_get_vuser_ip (): Ta funkcja zwraca adres IPv4 Vusera.
29) lr_get_host_name (): Ta funkcja zwraca nazwę maszyny wykonującej skrypt.
30) lr_get_master_host_name (): Ta funkcja zwraca nazwę maszyny, na której działa kontroler.
31) lr_decrypt (): Ta funkcja odszyfrowuje zakodowany ciąg. Zwykle jest używany do odszyfrowywania haseł.
32) lr_continue_on_error (): Ta funkcja określa sposób obsługi błędów, aby kontynuować działanie w przypadku wystąpienia błędu lub przerwać wykonywanie skryptu.
***********************************
W tej sekcji omówiliśmy szczegółowo funkcje „wstępnie zdefiniowane” i funkcje „LoadRunner”.
W następnej sekcji omówimy funkcje LoadRunner „Protocol Specific” i „C-Language”.
Funkcje specyficzne dla protokołu
Te funkcje są specyficzne dla protokołu. W naszej dyskusji ograniczymy się do omówienia protokołu „Web-HTTP / HTML” lub po prostu funkcji specyficznych dla protokołu „WWW”.
1) web_url (): Ta funkcja ładuje stronę internetową określoną w argumencie URL.
dwa) web_submit_form (): Ta funkcja przesyła formularz. Ta funkcja jest rejestrowana tylko w trybie HTML i przesyła żądanie kontekstowe (rozmawialiśmy już o żądaniach kontekstowych i bezkontekstowych).
restful web services java pytania do wywiadu
Zobacz przykład poniżej:
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 (): Ta funkcja przesyła formularz „bezkontekstowy”. Ta funkcja jest rejestrowana tylko w trybie nagrywania opartym na adresach URL lub w trybie nagrywania opartym na HTML z zaznaczoną opcją „Skrypt zawierający tylko jawne adresy URL”.
Zobacz przykład poniżej:
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 (): Ta funkcja służy do tworzenia niestandardowego żądania HTTP przy użyciu dowolnej metody lub treści.
5) web_concurrent_start () i web_concurrent_end (): Te funkcje są używane do oznaczania początku i końca (odpowiednio) grupy współbieżnej. Wszystkie funkcje w grupie (zawarte między tymi funkcjami) są wykonywane jednocześnie.
6) web_reg_save_param (): Jak już widzieliśmy, jest to funkcja korelacji brzegowej.
7) web_reg_save_param_ex (): Jest to również funkcja korelacji oparta na granicach, która jest ulepszoną wersją funkcji web_reg_save_param.
8) web_reg_find (): Jak już widzieliśmy, ta funkcja służy do sprawdzania tekstu.
9) web_image_check (): Jak już wspomniano, funkcja ta służy do sprawdzania obrazu.
10) web_convert_param (): Ta funkcja służy do konwersji tekstu HTML na zwykły tekst lub adres URL albo zwykły tekst na adres URL. W poniższym przykładzie funkcje te konwertują zawartość parametru „ParamName” z formatu HTML na format adresu URL.
Przykład:
web_convert_param („ParamName”, „SourceEncoding = HTML”, „TargetEncoding = URL”, LAST);
jedenaście) web_get_int_property (): Ta funkcja zwraca określone informacje (takie jak kod stanu, rozmiar pobierania itp.) O poprzednim żądaniu HTTP. W poniższym przykładzie funkcja ta służy do zwracania kodu stanu HTTP i rozmiaru pobierania.
Przykład:
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);
Action.c (17): web_get_int_property rozpoczęty (MsgId: MMSG-26355)
Action.c (17): web_get_int_property powiodło się (MsgId: MMSG-26392)
Action.c (18): Kod stanu HTTP to 200
Action.c (20): web_get_int_property rozpoczęty (MsgId: MMSG-26355)
Action.c (20): web_get_int_property powiodło się (MsgId: MMSG-26392)
Action.c (21): Rozmiar pobieranego pliku to 12891 bajtów
12) web_set_max_html_param_len (): Ta funkcja służy do ustawiania maksymalnej długości dowolnego ciągu HTML, który można pobrać i zapisać w parametrze. Domyślna wartość maksymalnej długości parametru, który można przechwycić podczas korelacji, to 256 znaków. Ta funkcja służy do pobierania ciągu dłuższego niż 256 znaków.
13) web_cache_cleanup (): Ta funkcja służy do czyszczenia pamięci podręcznej. Jeśli w ustawieniach środowiska wykonawczego - na karcie Emulacja przeglądarki jest włączona opcja „Symuluj nowego użytkownika w każdej iteracji”, funkcja ta jest wywoływana automatycznie na początku każdej iteracji.
14) web_cleanup_cookies (): Ta funkcja usuwa wszystkie pliki cookie, które są aktualnie przechowywane przez Vusera.
piętnaście) web_add_cookie (): Ta funkcja dodaje nowy plik cookie.
16) web_add_header (): Ta funkcja dodaje nagłówek zdefiniowany przez użytkownika do następnego żądania HTTP.
17) web_save_timestamp_param (): Ta funkcja zapisuje bieżący lokalny znacznik czasu komputera, na którym działa skrypt. Jest to liczba składająca się z 13 cyfr, a wartość to liczba milisekund od północy 1 stycznia 1970 r.
Przykład:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Action.c (5): Sygnatura czasowa: 1529249235582
18) web_set_user (): Ta funkcja określa wartość logowania i hasło do serwera WWW lub serwera proxy. Kiedy logujemy się do serwera, który wymaga nazwy użytkownika i hasła, ta funkcja jest generowana.
19) web_set_proxy (): Ta funkcja służy do instruowania Vusera, aby kierował wszystkie żądania HTTP do określonego Serwer proxy .
20) web_set_certificate (): Ta funkcja służy do poinstruowania programu Vuser, aby użył określonego certyfikatu z rejestru programu Internet Explorer (za każdym razem, gdy bezpieczny serwer sieci Web wymaga od klienta przedstawienia certyfikatu).
Na przykład, następująca funkcja instruuje użytkownika Vuser, aby użył drugiego certyfikatu z rejestru programu Internet Explorer.
web_set_certificate('2');
dwadzieścia jeden) web_set_sockets_option (): Ta funkcja służy do konfigurowania różnych opcji gniazd na komputerze klienta.
SSL_VERSION - wersja SSL: „2”, „3”, „2 i 3”, „TLS”, „TLS1.1” lub „TLS1.2”.
MAX_CONNECTIONS_PER_HOST - Maksymalna liczba jednoczesnych połączeń na hosta.
CLOSE_KEEPALIVE_CONNECTIONS - Zamyka wszystkie otwarte połączenia.
Funkcje języka C.
Są to funkcje „C”, które są używane do ulepszania skryptów VuGen w określonych scenariuszach.
1) strcpy (): Ta funkcja kopiuje jeden ciąg do drugiego.
Przykład:
char String(100); strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Action.c (8): Treść w String to: To jest ciąg
dwa) strcmp (): Ta funkcja porównuje dwa ciągi i zwraca wartość wskazującą na związek leksykograficzny między nimi („= 0”, jeśli ciągi są takie same, „0”, jeśli pierwszy ciąg jest większy niż drugi).
Przykład:
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'); }
Action.c (14): Struny nie są takie same.
3) strlen (): Ta funkcja zwraca długość łańcucha w bajtach.
4) strcat (): Ta funkcja łączy dwa ciągi.
Przykład:
char String(100)= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Action.c (10): Ostatnim ciągiem jest StarWars.
5) strtok (): Jak już widzieliśmy, ta funkcja zwraca token z ciągu oddzielonego określonymi znakami.
6) atoi (): Jak już widzieliśmy, ta funkcja konwertuje napis w języku C na liczbę całkowitą w C.
7) atof (): Ta funkcja konwertuje ciąg znaków C na zmiennoprzecinkowy C.
8) itoa (): Ta funkcja konwertuje liczbę całkowitą w języku C na łańcuch w języku C.
Przykład:
int x=1; char y(100); itoa (x,y,10); lr_output_message('The string is: %s',y);
Action.c (8): Ciąg to: 1
9) fopen (): Ta funkcja służy do otwierania wskaźnika pliku.
10) fclose (): Ta funkcja służy do zamykania wskaźnika pliku.
jedenaście) fread (): Ta funkcja odczytuje niesformatowane dane ze strumienia do bufora.
12) fwrite (): Ta funkcja zapisuje niesformatowane dane z bufora do strumienia.
13) fprintf (): Jak już widzieliśmy, ta funkcja zapisuje sformatowane dane wyjściowe do pliku.
14) sprint(): Ta funkcja zapisuje sformatowane dane wyjściowe w ciągu.
Przykład:
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);
Action.c (7): Nowa nazwa pliku to log_84.txt
Wniosek
Z tego samouczka dowiedzieliśmy się więcej o ważnych, wstępnie zdefiniowanych funkcjach LoadRunner.
java przekazując tablicę do metody
Te funkcje obsługują prawie wszystkie ważne scenariusze, z którymi zwykle spotykamy się w aplikacjach czasu rzeczywistego. Aby uzyskać dodatkowe informacje na temat tych funkcji, należy zapoznać się z „Opisem funkcji” w pomocy VuGen.
W naszym nadchodzącym samouczku dowiesz się więcej o tworzeniu skryptów usług internetowych przy użyciu LoadRunner.
=> Odwiedź tutaj, aby zapoznać się z pełną serią samouczków LoadRunner
POPRZEDNIA samouczek | NEXT Tutorial
rekomendowane lektury
- Testowanie wydajności usług sieci Web przy użyciu skryptów LoadRunner VuGen
- Funkcje daty i czasu w C ++ z przykładami
- Python DateTime Tutorial z przykładami
- Funkcje w C ++ z typami i przykładami
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Funkcje Pythona
- Funkcje łańcuchowe w Pythonie
- Opcje nagrywania VUGen w LoadRunner