important loadrunner functions used vugen scripts with examples
Viktiga LoadRunner-funktioner som huvudsakligen används i VuGen-skript med syntax och exempel:
VuGen Scripting-utmaningar förklarades i detalj i vår tidigare handledning i Online gratis LoadRunner-utbildningsserie .
Under vår resa med LoadRunner VuGen hittade vi hittills många fördefinierade funktioner (och naturligtvis såg vi också hur vi skulle skriva våra egna funktioner).
I denna handledning kommer vi att lista och prata kort om de viktiga 'fördefinierade' LoadRunner-, protokollspecifika och C-språkfunktionerna som vi oftast använder i VuGen-skript / scenarier.
=> Klicka här för en komplett serie LoadRunner-handledning
Låt oss klassificera dessa funktioner i tre kategorier:
- LoadRunner (LR) -funktioner
- Protokollspecifika (webb - HTTP / HTML) funktioner
- C-språkfunktioner
Låt oss utforska en efter en!
Vad du kommer att lära dig:
- LoadRunner (LR) -funktioner
- Protokollspecifika funktioner
- C Språkfunktioner
- Slutsats
- Rekommenderad läsning
LoadRunner (LR) -funktioner
Dessa funktioner är de allmänna LoadRunner-funktionerna som är vanliga för alla protokoll:
1) lr_eval_string (): Som redan ses returnerar denna funktion inmatningssträngen efter utvärdering av inbäddade parametrar.
två) lr_eval_string_ext (): Denna funktion skapar en buffert och tilldelar den till inmatningssträngen efter utvärdering av de inbäddade parametrarna.
3) lr_save_string (): Som redan sett tilldelar denna funktion ett värde till LR-parametern / variabeln.
4) lr_save_int (): Denna funktion tilldelar ett heltal till en LR-parameter enligt nedan:
Exempel:
int number; number=8; lr_save_int(number,”numparam”);
Parametern ”numparam” kan nu användas som vilken annan LR-parameter som helst.
5) lr_paramarr_random (): Som redan ses väljer denna funktion slumpmässigt ett av värdena från en parametermatris.
6) lr_paramarr_len (): Den här funktionen returnerar antalet element i en parametermatris.
Antag att 'cFlight' är den parameteruppsättning som har flygvärden, exemplet nedan visar hur antalet element i denna matris kan kopieras till en variabel.
Exempel:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx (): Den här funktionen ger parametervärdet på en angiven plats i en parametermatris. Ett exempel som visas nedan sparar det tredje värdet i parameteruppsättningen till en variabel.
Exempel:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect () : Detta är en databasfunktion som används för att ansluta till en databas.
9) lr_db_disconnect () : Detta är en databasfunktion som används för att koppla från en databas.
10) lr_start_transaction () och lr_end_transaction (): Som redan ses används dessa funktioner för att starta och avsluta (respektive) en transaktion.
elva) lr_message () : Detta är en meddelandefunktion som används för att skicka ett eller flera meddelanden till loggen och utgångsfönstret.
12) lr_output_message (): Detta är en meddelandefunktion som används för att skicka meddelandet med detaljer som skriptsektion och radnummer till utgångsfönster, loggfiler och andra testrapportsammanfattningar.
13) lr_log_message () : Detta är en meddelandefunktion som används för att skicka ett meddelande till Vuser- eller agentloggfilen och inte till utdatafönstret.
14) lr_error_message (): Detta är en meddelandefunktion som används för att skicka ett eller flera meddelanden till utdatafönstren, loggfilerna och andra testrapportsammanfattningar.
femton) lr_save_datetime (): Den här funktionen sparar aktuellt datum och tid (eller datum och tid med den angivna förskjutningen) i en parameter som kan användas i vårt skript när det behövs.
Exempel:
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Action.c (4): Dagens datum är 09 juni 2018
Nedan följer ett annat exempel där en dags förskjutning används:
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): Morgondagens datum är 10 juni 2018
16) lr_set_debug_message (): Denna funktion ändrar loggningsnivån för meddelanden (för en del av skriptet) från vad som anges i inställningarna för körning. Som visas nedan är en fullständig spårning aktiverad endast för 'index.htm' -begäran (även om loggnivån är inställd på 'Standardlogg' i körtidsinställningar).
Exempel:
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 (): Denna funktion avbryter körningen av skriptet efter att ha utfört avsnittet ”vuser_end”. Denna funktion är användbar när vi måste avbryta manuset manuellt på grund av ett specifikt felvillkor.
18) lr_exit (): Den här funktionen instruerar Vuser att lämna skriptkörningen under körning och fortsätta enligt de angivna 'Skript Fortsättningsalternativen'.
I följande exempel, den här funktionen instruerar Vuser att stoppa den nuvarande globala skriptkörningen och starta nästa iteration.
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
Här är en lista över andra alternativ för skriptfortsättning:
- LR_EXIT_VUSER - Gå ut utan några villkor och gå direkt till vuser_end-åtgärden.
- LR_EXIT_ACTION_AND_CONTINUE - Stoppa nuvarande åtgärd och gå till nästa åtgärd.
- LR_EXIT_ITERATION_AND_CONTINUE - Stoppa den aktuella iterationen och gå till nästa iteration.
- LR_EXIT_VUSER_AFTER_ITERATION - Avsluta när den nuvarande iterationskörningen är klar.
- LR_EXIT_VUSER_AFTER_ACTION - Avsluta när den aktuella åtgärdskörningen är klar.
19) lr_think_time (): Denna funktion tillåter en Vuser att pausa under en definierad tid mellan steg / åtgärder i VuGen-skriptet. Detta för att simulera det verkliga användarbeteendet att tänka under en tid mellan åtgärder / steg i en applikation.
Till exempel, följande får en Vuser att vänta i 10 sekunder ...
lr_think_time(10);
tjugo) lr_rendezvous (): Som redan sett instruerar den här funktionen LoadRunner att vänta vid ett specifikt steg i skriptet tills alla Vusers kommer till det steget så att efterfrågan kan köras samtidigt.
tjugoett) lr_load_dll (): Denna funktion används för att ladda en extern dll så att en användare kan ringa en extern funktion när man spelar om skriptet.
22) lr_save_searched_string (): Denna funktion söker efter en förekomst av en sträng i en buffert och sparar en del av bufferten efter den strängen till en parameter.
I följande exempel , tredje förekomst (nummer definierat i det tredje attributet plus 1) av strängen 'all' söks i bufferten och de kommande 14 tecknen (sjätte attributet) sparas i en parameter (femte attributet '1' hoppar över mellanslag efter sökningen ).
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): Den sökta understrängen är kungens män.
2. 3) lr_vuser_status_message (): Denna funktion skickar ett meddelande till Vuser-statusområdet för Controller och till Vuser-loggen.
24) lr_next_row (): Denna funktion fungerar på den angivna parameterdatafilen och används för att flytta en aktiv rad till nästa rad.
25) lr_advance_param (): Denna funktion gör att skriptet använder nästa tillgängliga värde för parametern genom att arbeta med kolumnnamn.
26) lr_start_timer () och lr_end_timer (): Dessa funktioner används för att starta och stoppa en timer i ett VuGen-skript som beräknar tidens gång i sekunder.
27) lr_whoami (): Den här funktionen returnerar information om Vuser (som Vuser-id, Vuser-grupp).
28) lr_get_vuser_ip (): Den här funktionen returnerar IPv6-adressen till en Vuser.
bästa programmet för att konvertera youtube till mp3
29) lr_get_host_name (): Den här funktionen returnerar namnet på maskinen som kör skriptet.
30) lr_get_master_host_name (): Den här funktionen returnerar namnet på maskinen som kör styrenheten.
31) lr_decrypt (): Den här funktionen dekrypterar en kodad sträng. Det används vanligtvis för att dekryptera lösenord.
32) lr_continue_on_error (): Den här funktionen anger hur man hanterar fel för att fortsätta att köra om ett fel inträffar eller för att avbryta skriptkörningen.
***********************************
I det här avsnittet diskuterade vi mer om 'fördefinierade' funktioner och 'LoadRunner' -funktioner i detalj.
I vårt nästa avsnitt kommer vi att prata om LoadRunner-protokollspecifika och C-språkfunktioner.
Protokollspecifika funktioner
Dessa funktioner är specifika för ett protokoll, i vår diskussion begränsar vi oss till att diskutera ”Web-HTTP / HTML” -protokoll eller helt enkelt ”Web” -protokollspecifika funktioner.
1) web_url (): Denna funktion laddar den webbsida som anges av URL-argumentet.
två) web_submit_form (): Denna funktion skickar in ett formulär. Och den här funktionen registreras endast i HTML-läge och skickar en kontextkänslig begäran (vi har redan pratat om kontextkänsliga och kontextlösa begäranden).
Se exempel nedan:
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) webb_submit_data (): Den här funktionen skickar en 'kontextlös' form. Den här funktionen spelas in endast i URL-baserat inspelningsläge eller i HTML-baserat inspelningsläge med alternativet 'Ett skript som innehåller endast explicita URL'.
Se exemplet nedan:
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 (): Denna funktion används för att skapa en anpassad HTTP-begäran med vilken metod eller kropp som helst.
5) web_concurrent_start () och web_concurrent_end (): Dessa funktioner används för att markera början respektive slutet av en samtidig grupp. Alla funktioner i en grupp (bifogade mellan dessa funktioner) körs samtidigt.
6) web_reg_save_param (): Som redan sett är detta en gränsbaserad korrelationsfunktion.
7) web_reg_save_param_ex (): Detta är också en gränsbaserad korrelationsfunktion som är en förbättrad version av funktionen web_reg_save_param.
8) web_reg_find (): Som redan ses används den här funktionen för textkontroll.
9) web_image_check (): Som redan sett används den här funktionen för bildkontroll.
10) web_convert_param (): Denna funktion används för att konvertera HTML-text till vanlig text eller URL, eller vanlig text till URL. I exemplet nedan konverterar dessa funktioner innehållet i parametern 'ParamName' från HTML-format till URL-format.
Exempel:
web_convert_param (“ParamName”, “SourceEncoding = HTML”, “TargetEncoding = URL”, SISTA);
elva) web_get_int_property (): Den här funktionen returnerar specifik information (som statuskod, nedladdningsstorlek etc.) om den tidigare HTTP-begäran. I exemplet som visas nedan används den här funktionen för att returnera HTTP-statuskod och nedladdningsstorlek.
Exempel:
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 startade (MsgId: MMSG-26355)
Action.c (17): web_get_int_property lyckades (MsgId: MMSG-26392)
Action.c (18): HTTP-statuskoden är 200
Action.c (20): web_get_int_property startade (MsgId: MMSG-26355)
Action.c (20): web_get_int_property lyckades (MsgId: MMSG-26392)
Action.c (21): Nedladdningsstorleken är 12891 byte
12) web_set_max_html_param_len (): Den här funktionen används för att ställa in maximal längd för alla HTML-strängar som kan hämtas och sparas i en parameter. Standardvärdet för den maximala längden på en parameter som kan fångas under korrelationen är 256 tecken. Denna funktion används för att hämta en sträng som är längre än 256 tecken.
13) web_cache_cleanup (): Denna funktion används för att rensa cacheminnet. På fliken Runtime-inställningar - Webbläsaremulering, om 'Simulera en ny användare varje iteration' är aktiverat, anropas denna funktion automatiskt i början av varje iteration.
c ++ genererar slumptal mellan 0 och 1
14) web_cleanup_cookies (): Denna funktion rensar alla kakor som för närvarande lagras av Vuser.
femton) web_add_cookie (): Denna funktion lägger till en ny cookie.
16) web_add_header (): Den här funktionen lägger till en användardefinierad rubrik i nästa HTTP-begäran.
17) web_save_timestamp_param (): Denna funktion sparar den aktuella lokala tidsstämpeln för den dator som kör skriptet. Detta är ett 13-siffrigt nummer och värdet är antalet millisekunder sedan midnatt den 1 januari 1970.
Exempel:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Action.c (5): Tidsstämpel: 1529249235582
18) web_set_user (): Denna funktion anger ett inloggningsvärde och lösenord för en webbserver eller en proxyserver. När vi loggar in på en server som kräver användarnamn och lösenord genereras denna funktion.
19) web_set_proxy (): Denna funktion används för att instruera Vuser att rikta alla HTTP-förfrågningar till det angivna Proxyserver .
tjugo) web_set_certificate (): Denna funktion används för att instruera Vuser att använda ett specifikt certifikat från Internet Explorer-registret (när en säker webbserver kräver att klienten presenterar ett certifikat).
Till exempel, följande funktion instruerar Vuser att använda det andra certifikatet från Internet Explorer-registret.
web_set_certificate('2');
tjugoett) web_set_sockets_option (): Denna funktion används för att konfigurera olika alternativ för uttag på klientmaskinen.
SSL_VERSION - SSL-version: '2', '3', '2 & 3', 'TLS', 'TLS1.1' eller 'TLS1.2'.
MAX_CONNECTIONS_PER_HOST - Det maximala antalet samtidiga anslutningar per värd.
CLOSE_KEEPALIVE_CONNECTIONS - Stänger alla öppna anslutningar.
C Språkfunktioner
Det här är C-funktionerna som används för att förbättra VuGen-skript för specifika scenarier.
1) strcpy (): Denna funktion kopierar en sträng till en annan.
Exempel:
char String(100); strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Action.c (8): Innehållet i String är: Detta är en sträng
två) strcmp (): Denna funktion jämför två strängar och returnerar ett värde som indikerar den lexikografiska relationen mellan dem ('= 0' om strängar är desamma, '0' om den första strängen är större än en andra sträng).
Exempel:
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): Strängar är inte desamma.
3) strlen (): Den här funktionen returnerar längden på en sträng i byte.
4) strcat (): Denna funktion sammanfogar två strängar.
Exempel:
char String(100)= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Action.c (10): Den sista strängen är StarWars.
5) strtok (): Som redan sett returnerar den här funktionen en token från en sträng avgränsad med angivna tecken.
6) atoi (): Som redan sett konverterar denna funktion en C-sträng till ett C-heltal.
7) atof (): Denna funktion omvandlar en C-sträng till en C-flottör.
8) itoa (): Denna funktion omvandlar ett C-heltal till en C-sträng.
Exempel:
int x=1; char y(100); itoa (x,y,10); lr_output_message('The string is: %s',y);
Action.c (8): Strängen är: 1
9) fopen (): Denna funktion används för att öppna en filpekare.
10) fclose (): Denna funktion används för att stänga en filpekare.
elva) fread (): Denna funktion läser oformaterad data från en ström till en buffert.
12) fwrite (): Denna funktion skriver oformaterad data från en buffert till en ström.
13) fprintf (): Som redan sett skriver den här funktionen formaterad utdata till en fil.
14) sprinta(): Denna funktion skriver formaterad utdata till en sträng.
Exempel:
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): Det nya filnamnet är log_84.txt
Slutsats
Från denna handledning lärde vi oss mer om de viktiga fördefinierade LoadRunner-funktionerna.
Dessa funktioner tar hand om nästan alla viktiga scenarier som vi generellt stöter på i realtidsapplikationer. Vi rekommenderar att du hänvisar till ”Funktionsreferens” i VuGen-hjälpen för ytterligare information om dessa funktioner.
I vår kommande handledning lär du dig mer om skriptning av webbtjänster med LoadRunner.
=> Besök här för en komplett serie LoadRunner-självstudier
PREV-handledning | NÄSTA självstudie
Rekommenderad läsning
- Test av webbtjänstens prestanda med LoadRunner VuGen Scripting
- Funktioner för datum och tid i C ++ med exempel
- Python DateTime-handledning med exempel
- Funktioner i C ++ med typer och exempel
- Lasttestning med HP LoadRunner-handledning
- Python-funktioner
- Python-strängfunktioner
- Inspelningsalternativ för VUGen i LoadRunner