important loadrunner functions used vugen scripts with examples
Funzioni importanti di LoadRunner utilizzate principalmente negli script VuGen con sintassi ed esempi:
VuGen Scripting Challenges sono stati spiegati in dettaglio nel nostro precedente tutorial in Serie di formazione LoadRunner gratuita in linea .
Nel nostro viaggio con LoadRunner VuGen, finora ci siamo imbattuti in molte funzioni predefinite (e ovviamente abbiamo anche visto come scrivere le nostre funzioni).
In questo tutorial, elencheremo e parleremo brevemente delle importanti funzioni LoadRunner 'predefinite', specifiche del protocollo e del linguaggio C che utilizziamo principalmente negli script / scenari VuGen.
=> Fare clic qui per una serie completa di tutorial su LoadRunner
Classifichiamo queste funzioni in tre categorie:
- Funzioni LoadRunner (LR)
- Funzioni specifiche del protocollo (Web - HTTP / HTML)
- Funzioni del linguaggio C.
Esploriamo uno per uno!
Cosa imparerai:
- Funzioni LoadRunner (LR)
- Funzioni specifiche del protocollo
- Funzioni del linguaggio C.
- Conclusione
- Lettura consigliata
Funzioni LoadRunner (LR)
Queste sono le funzioni generali di LoadRunner comuni a tutti i protocolli:
1) lr_eval_string (): Come già visto, questa funzione restituisce la stringa di input dopo aver valutato eventuali parametri incorporati.
Due) lr_eval_string_ext (): Questa funzione crea un buffer e lo assegna alla stringa di input dopo aver valutato i parametri incorporati.
3) lr_save_string (): Come già visto, questa funzione assegna un valore al parametro / variabile LR.
4) lr_save_int (): Questa funzione assegna un numero intero a un parametro LR come mostrato di seguito:
Esempio:
int number; number=8; lr_save_int(number,”numparam”);
Il parametro 'numparam' può ora essere utilizzato come qualsiasi altro parametro LR.
5) lr_paramarr_random (): Come già visto, questa funzione seleziona casualmente uno dei valori da un array di parametri.
6) lr_paramarr_len (): Questa funzione restituisce il numero di elementi in una matrice di parametri.
Supponiamo che 'cFlight' sia l'array di parametri con valori di volo, l'esempio seguente mostra come il numero di elementi di questo array può essere copiato in una variabile.
Esempio:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx (): Questa funzione fornisce il valore del parametro in una posizione specificata in una matrice di parametri. Un esempio mostrato di seguito salva il terzo valore della matrice di parametri in una variabile.
Esempio:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect () : Questa è una funzione di database utilizzata per connettersi a un database.
9) lr_db_disconnect () : Questa è una funzione di database utilizzata per disconnettersi da un database.
10) lr_start_transaction () e lr_end_transaction (): Come già visto, queste funzioni servono per avviare e terminare (rispettivamente) una transazione.
undici) lr_message () : Questa è una funzione di messaggio che viene utilizzata per inviare uno o più messaggi al registro e alla finestra di output.
12) lr_output_message (): Questa è una funzione di messaggio che viene utilizzata per inviare i messaggi con dettagli come la sezione dello script e il numero di riga alle finestre di output, ai file di registro e ad altri riepiloghi dei rapporti di prova.
13) lr_log_message () : Questa è una funzione di messaggio che viene utilizzata per inviare uno o più messaggi al file di registro Vuser o agente e non alla finestra di output.
14) lr_error_message (): Questa è una funzione di messaggio utilizzata per inviare un messaggio alle finestre di output, ai file di registro e ad altri riepiloghi dei rapporti di prova.
quindici) lr_save_datetime (): Questa funzione salva la data e l'ora correnti (o la data e l'ora con l'offset specificato) in un parametro che può essere utilizzato nel nostro script come e quando richiesto.
Esempio:
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Azione.c (4): La data odierna è il 9 giugno 2018
Di seguito è riportato un altro esempio in cui viene utilizzato l'offset di un giorno:
lr_save_datetime('Tomorrow's date is %B %d %Y', DATE_NOW + ONE_DAY , 'tomorrow'); lr_output_message(lr_eval_string('{tomorrow}'));
Azione.c (4): La data di domani è il 10 giugno 2018
16) lr_set_debug_message (): Questa funzione modifica il livello di registrazione del messaggio (per una parte dello script) rispetto a quanto impostato nelle impostazioni del tempo di esecuzione. Come mostrato di seguito, una traccia completa è abilitata solo per la richiesta 'index.htm' (anche se il livello di registro è impostato su 'Registro standard' nelle impostazioni di runtime).
Esempio:
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 (): Questa funzione interrompe l'esecuzione dello script dopo aver eseguito la sezione 'vuser_end'. Questa funzione è utile quando è necessario interrompere manualmente lo script a causa di una specifica condizione di errore.
18) lr_exit (): Questa funzione indica a Vuser di uscire dallo script eseguito durante l'esecuzione e continuare secondo le 'Opzioni di continuazione dello script' specificate.
miglior software di aggiornamento driver per Windows 10
Nell'esempio seguente, questa funzione indica a Vuser di interrompere l'iterazione di esecuzione dello script globale corrente e di avviare l'iterazione successiva.
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
Ecco un elenco di altre opzioni di continuazione dello script:
- LR_EXIT_VUSER - Esci senza alcuna condizione e vai direttamente all'azione vuser_end.
- LR_EXIT_ACTION_AND_CONTINUE - Interrompi l'azione corrente e vai all'azione successiva.
- LR_EXIT_ITERATION_AND_CONTINUE - Interrompi l'iterazione corrente e passa all'iterazione successiva.
- LR_EXIT_VUSER_AFTER_ITERATION - Esci al termine dell'iterazione corrente.
- LR_EXIT_VUSER_AFTER_ACTION - Esci al termine dell'azione corrente.
19) lr_think_time (): Questa funzione consente a un utente V di mettere in pausa per un tempo definito tra i passaggi / azioni sullo script VuGen. Questo serve per simulare il comportamento reale dell'utente di pensare per un po 'di tempo tra azioni / passaggi su un'applicazione.
Per esempio, quanto segue fa aspettare un Vuser per 10 secondi ...
lr_think_time(10);
venti) lr_rendezvous (): Come già visto, questa funzione indica al LoadRunner di attendere in un passaggio specificato nello script fino a quando tutti i Vuser arrivano a quel passaggio in modo che la richiesta successiva possa essere eseguita simultaneamente.
ventuno) lr_load_dll (): Questa funzione viene utilizzata per caricare una DLL esterna che consente a un utente V di chiamare una funzione esterna durante la riproduzione dello script.
22) lr_save_searched_string (): Questa funzione cerca l'occorrenza di una stringa in un buffer e salva una parte del buffer dopo quella stringa in un parametro.
Nell'esempio seguente , la terza occorrenza (numero definito nel terzo attributo più 1) della stringa “all” viene cercata nel buffer e i successivi 14 caratteri (sesto attributo) vengono salvati in un parametro (il quinto attributo '1' salta lo spazio dopo la ricerca ).
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}'));
Azione.c (7): La sottostringa ricercata sono gli uomini del re.
2. 3) lr_vuser_status_message (): Questa funzione invia un messaggio all'area di stato Vuser del Controller e al registro Vuser.
24) lr_next_row (): Questa funzione opera sul file di dati dei parametri specificato e viene utilizzata per far avanzare una riga attiva alla riga successiva.
25) lr_advance_param (): Questa funzione fa in modo che lo script utilizzi il successivo valore disponibile del parametro lavorando sui nomi delle colonne.
26) lr_start_timer () e lr_end_timer (): Queste funzioni vengono utilizzate per avviare e arrestare un timer in uno script VuGen che calcola il passare del tempo in secondi.
27) lr_whoami (): Questa funzione restituisce informazioni su Vuser (come Vuser id, Vuser group).
28) lr_get_vuser_ip (): Questa funzione restituisce l'indirizzo IPv4 di un Vuser.
29) lr_get_host_name (): Questa funzione restituisce il nome della macchina che esegue lo script.
30) lr_get_master_host_name (): Questa funzione restituisce il nome della macchina che esegue il controller.
31) lr_decrypt (): Questa funzione decrittografa una stringa codificata. Viene generalmente utilizzato per decrittografare le password.
32) lr_continue_on_error (): Questa funzione specifica come gestire gli errori per continuare l'esecuzione se si verifica un errore o per interrompere l'esecuzione dello script.
***********************************
In questa sezione, abbiamo discusso di più sulle funzioni 'predefinite' e sulle funzioni 'LoadRunner' in dettaglio.
Nella nostra prossima sezione, parleremo delle funzioni 'Protocol Specific' e 'C-Language' di LoadRunner.
Funzioni specifiche del protocollo
Queste funzioni sono specifiche di un protocollo, nella nostra discussione ci limiteremo a discutere del protocollo 'Web-HTTP / HTML' o semplicemente delle funzioni specifiche del protocollo 'Web'.
1) web_url (): Questa funzione carica la pagina Web specificata dall'argomento URL.
Due) web_submit_form (): Questa funzione invia un modulo. E questa funzione viene registrata solo in modalità HTML e invia una richiesta sensibile al contesto (abbiamo già parlato di richieste sensibili al contesto e senza contesto).
Vedere l'esempio di seguito:
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 (): Questa funzione invia un modulo 'senza contesto'. Questa funzione viene registrata solo in modalità di registrazione basata su URL o in modalità di registrazione basata su HTML con l'opzione 'Uno script contenente solo URL espliciti' selezionata.
Vedere l'esempio di seguito:
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 (): Questa funzione viene utilizzata per creare una richiesta HTTP personalizzata utilizzando qualsiasi metodo o corpo.
5) web_concurrent_start () e web_concurrent_end (): Queste funzioni vengono utilizzate per contrassegnare l'inizio e la fine (rispettivamente) di un gruppo simultaneo. Tutte le funzioni all'interno di un gruppo (racchiuse tra queste funzioni) vengono eseguite contemporaneamente.
6) web_reg_save_param (): Come già visto, questa è una funzione di correlazione basata sui limiti.
7) web_reg_save_param_ex (): Questa è anche una funzione di correlazione basata sui limiti che è una versione migliorata della funzione web_reg_save_param.
come eseguire file .jar su Windows 10
8) web_reg_find (): Come già visto, questa funzione viene utilizzata per il controllo del testo.
9) web_image_check (): Come già visto, questa funzione viene utilizzata per il controllo dell'immagine.
10) web_convert_param (): Questa funzione viene utilizzata per convertire il testo HTML in testo normale o URL o testo normale in URL. Nell'esempio seguente, queste funzioni convertono il contenuto del parametro 'ParamName' dal formato HTML al formato URL.
Esempio:
web_convert_param ('ParamName', 'SourceEncoding = HTML', 'TargetEncoding = URL', LAST);
undici) web_get_int_property (): Questa funzione restituisce informazioni specifiche (come il codice di stato, la dimensione del download ecc.) Sulla precedente richiesta HTTP. Nell'esempio mostrato di seguito, questa funzione viene utilizzata per restituire il codice di stato HTTP e la dimensione del download.
Esempio:
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);
Azione.c (17): web_get_int_property avviato (MsgId: MMSG-26355)
Azione.c (17): web_get_int_property ha avuto esito positivo (MsgId: MMSG-26392)
Azione.c (18): Il codice di stato HTTP è 200
Azione.c (20): web_get_int_property avviato (MsgId: MMSG-26355)
Azione.c (20): web_get_int_property ha avuto esito positivo (MsgId: MMSG-26392)
Azione.c (21): La dimensione del download è 12891 byte
12) web_set_max_html_param_len (): Questa funzione viene utilizzata per impostare la lunghezza massima di qualsiasi stringa HTML che può essere recuperata e salvata in un parametro. Il valore predefinito per la lunghezza massima di un parametro che può essere acquisito durante la correlazione è 256 caratteri. Questa funzione viene utilizzata per recuperare una stringa più lunga di 256 caratteri.
13) web_cache_cleanup (): Questa funzione viene utilizzata per cancellare la cache. Nella scheda Impostazioni di runtime-Emulazione browser, se 'Simula un nuovo utente a ogni iterazione' è abilitato, questa funzione viene automaticamente chiamata all'inizio di ogni iterazione.
14) web_cleanup_cookies (): Questa funzione cancella tutti i cookie attualmente memorizzati da Vuser.
quindici) web_add_cookie (): Questa funzione aggiunge un nuovo cookie.
16) web_add_header (): Questa funzione aggiunge un'intestazione definita dall'utente alla successiva richiesta HTTP.
17) web_save_timestamp_param (): Questa funzione salva il timestamp locale corrente del computer che esegue lo script. Questo è un numero di 13 cifre e il valore è il numero di millisecondi trascorsi dalla mezzanotte del 1 gennaio 1970.
Esempio:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Azione.c (5): Timestamp: 1529249235582
18) web_set_user (): Questa funzione specifica un valore di accesso e una password per un server Web o un server proxy. Quando accediamo a un server che richiede nome utente e password, viene generata questa funzione.
19) web_set_proxy (): Questa funzione viene utilizzata per indicare a Vuser di indirizzare tutte le richieste HTTP al file Server proxy .
venti) web_set_certificate (): Questa funzione viene utilizzata per indicare a Vuser di utilizzare un certificato specifico dal registro di Internet Explorer (ogni volta che un server Web sicuro richiede al client di presentare un certificato).
Per esempio, la seguente funzione indica a Vuser di utilizzare il secondo certificato dal registro di Internet Explorer.
web_set_certificate('2');
ventuno) web_set_sockets_option (): Questa funzione viene utilizzata per configurare varie opzioni per i socket sulla macchina client.
SSL_VERSION - Versione SSL: '2', '3', '2 e 3', 'TLS', 'TLS1.1' o 'TLS1.2'.
MAX_CONNECTIONS_PER_HOST - Il numero massimo di connessioni simultanee per host.
CLOSE_KEEPALIVE_CONNECTIONS - Chiude tutte le connessioni aperte.
Funzioni del linguaggio C.
Queste sono le funzioni 'C' utilizzate per migliorare gli script VuGen per scenari specifici.
1) strcpy (): Questa funzione copia una stringa in un'altra.
Esempio:
char String(100); strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Azione.c (8): Il contenuto in String è: Questa è una stringa
Due) strcmp (): Questa funzione confronta due stringhe e restituisce un valore che indica la relazione lessicografica tra di loro ('= 0' se le stringhe sono uguali, '0' se la prima stringa è maggiore di una seconda stringa).
Esempio:
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'); }
Azione.c (14): Le corde non sono la stessa cosa.
3) strlen (): Questa funzione restituisce la lunghezza di una stringa in byte.
4) strcat (): Questa funzione concatena due stringhe.
Esempio:
char String(100)= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Azione.c (10): La stringa finale è StarWars.
5) strtok (): Come già visto, questa funzione restituisce un token da una stringa delimitata da caratteri specificati.
6) atoi (): Come già visto, questa funzione converte una stringa C in un intero C.
7) atof (): Questa funzione converte una stringa C in un float C.
8) itoa (): Questa funzione converte un intero C in una stringa C.
Esempio:
int x=1; char y(100); itoa (x,y,10); lr_output_message('The string is: %s',y);
Azione.c (8): La stringa è: 1
9) fopen (): Questa funzione viene utilizzata per aprire un puntatore di file.
10) fclose (): Questa funzione viene utilizzata per chiudere un puntatore di file.
undici) fread (): Questa funzione legge i dati non formattati da un flusso in un buffer.
12) fwrite (): Questa funzione scrive dati non formattati da un buffer a un flusso.
13) fprintf (): Come già visto, questa funzione scrive l'output formattato su un file.
14) sprint(): Questa funzione scrive l'output formattato in una stringa.
Esempio:
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);
Azione.c (7): Il nuovo nome file è log_84.txt
Conclusione
Da questo tutorial, abbiamo imparato di più sulle importanti funzioni predefinite di LoadRunner.
Queste funzioni si prendono cura di quasi tutti gli scenari importanti che generalmente incontriamo nelle applicazioni in tempo reale. Si consiglia di fare riferimento alla 'Guida di riferimento alle funzioni' nella guida VuGen per ulteriori dettagli su queste funzioni.
Nel nostro prossimo tutorial, imparerai di più sullo scripting dei servizi Web utilizzando LoadRunner.
=> Visita qui per una serie completa di tutorial su LoadRunner
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Test delle prestazioni dei servizi Web mediante LoadRunner VuGen Scripting
- Funzioni di data e ora in C ++ con esempi
- Tutorial Python DateTime con esempi
- Funzioni in C ++ con tipi ed esempi
- Test di carico con HP LoadRunner Tutorial
- Funzioni Python
- Funzioni stringa Python
- Opzioni di registrazione VUGen in LoadRunner