important loadrunner functions used vugen scripts with examples
Funcions importants de LoadRunner utilitzades principalment en scripts VuGen amb sintaxi i exemples:
Reptes de creació de guions VuGen es van explicar detalladament en el nostre anterior tutorial de Sèrie d'entrenament LoadRunner gratuïta en línia .
En el nostre viatge amb el LoadRunner VuGen, fins ara hem trobat moltes funcions predefinides (i, per descomptat, també hem vist com escriure les nostres pròpies funcions).
En aquest tutorial, llistarem i parlarem breument sobre les importants funcions ‘predefinides’ de LoadRunner, específiques de protocols i llenguatge C que utilitzem principalment en els escenaris / scripts de VuGen.
=> Feu clic aquí per obtenir una sèrie completa de tutorials de LoadRunner
Classifiquem aquestes funcions en tres categories:
- Funcions de LoadRunner (LR)
- Funcions específiques del protocol (web - HTTP / HTML)
- Funcions del llenguatge C.
Explorem un per un!
Què aprendreu:
- Funcions de LoadRunner (LR)
- Funcions específiques del protocol
- Funcions del llenguatge C
- Conclusió
- Lectura recomanada
Funcions de LoadRunner (LR)
Aquestes funcions són les funcions generals de LoadRunner que són habituals per a tots els protocols:
1) lr_eval_string (): Com ja s'ha vist, aquesta funció retorna la cadena d'entrada després d'avaluar els paràmetres incrustats.
modelització de dades preguntes i respostes d’entrevistes pdf
2) lr_eval_string_ext (): Aquesta funció crea una memòria intermèdia i l’assigna a la cadena d’entrada després d’avaluar els paràmetres incrustats.
3) lr_save_string (): Com ja s'ha vist, aquesta funció assigna un valor al paràmetre / variable LR.
4) lr_save_int (): Aquesta funció assigna un enter a un paràmetre LR com es mostra a continuació:
Exemple:
int number; number=8; lr_save_int(number,”numparam”);
El paràmetre ‘numparam’ ara es pot utilitzar com a qualsevol altre paràmetre LR.
5) lr_paramarr_random (): Com ja s'ha vist, aquesta funció selecciona a l'atzar un dels valors d'una matriu de paràmetres.
6) lr_paramarr_len (): Aquesta funció retorna el nombre d'elements d'una matriu de paràmetres.
Suposem que 'cFlight' és la matriu de paràmetres amb valors de vol; l'exemple següent mostra com es pot copiar el nombre d'elements d'aquesta matriu en una variable.
Exemple:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx (): Aquesta funció proporciona el valor del paràmetre en una ubicació especificada en una matriu de paràmetres. Un exemple que es mostra a continuació desa el tercer valor de la matriu de paràmetres en una variable.
Exemple:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect () : Aquesta és una funció de base de dades que s’utilitza per connectar-se a una base de dades.
9) lr_db_disconnect () : Aquesta és una funció de base de dades que s’utilitza per desconnectar d’una base de dades.
10) lr_start_transaction () i lr_end_transaction (): Com ja s’ha vist, aquestes funcions s’utilitzen per iniciar i finalitzar (respectivament) una transacció.
11) lr_message () : Aquesta és una funció de missatge que s’utilitza per enviar un (s) missatge (s) al registre i a la finestra de sortida.
12) lr_output_message (): Aquesta és una funció de missatge que s’utilitza per enviar els missatges amb detalls com la secció de guió i el número de línia per a la sortida de finestres, fitxers de registre i altres resums d’informes de prova.
13) lr_log_message () : Aquesta és una funció de missatge que s’utilitza per enviar un (s) missatge (s) al fitxer de registre de l’usuari o de l’agent i no a la finestra de sortida.
14) lr_error_message (): Aquesta és una funció de missatge que s’utilitza per enviar un (s) missatge (s) a les finestres de sortida, fitxers de registre i altres resums d’informes de prova.
15) lr_save_datetime (): Aquesta funció desa la data i l'hora actuals (o la data i l'hora amb el desplaçament especificat) en un paràmetre que es pot utilitzar al nostre script quan i quan sigui necessari.
Exemple:
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Action.c (4): La data d’avui és el 9 de juny de 2018
A continuació es mostra un altre exemple en què s’utilitza el desplaçament d’un dia:
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): La data de demà és el 10 de juny de 2018
16) lr_set_debug_message (): Aquesta funció canvia el nivell de registre de missatges (per a una part de l'script) del que s'estableix a la configuració del temps d'execució. Com es mostra a continuació, només es pot habilitar un seguiment complet per a la sol·licitud 'index.htm' (fins i tot si el nivell de registre està definit com a 'Registre estàndard' a la configuració del temps d'execució).
Exemple:
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 (): Aquesta funció avorta l'execució de l'script després d'executar la secció 'vuser_end'. Aquesta funció és útil quan hem d'abortar manualment l'script a causa d'una condició d'error específica.
18) lr_exit (): Aquesta funció indica a Vuser que surti de l'execució de scripts durant l'execució i continuï segons les opcions de continuació de scripts especificades.
A l'exemple següent, aquesta funció indica a Vuser que aturi la iteració global actual de l'execució de scripts i que comenci la següent iteració.
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
Aquí hi ha una llista d’altres opcions de continuació de seqüències:
- LR_EXIT_VUSER - Sortiu sense cap condició i aneu directament a l'acció vuser_end.
- LR_EXIT_ACTION_AND_CONTINUE - Atureu l'acció actual i aneu a la següent acció.
- LR_EXIT_ITERATION_AND_CONTINUE - Atureu la iteració actual i aneu a la següent iteració.
- LR_EXIT_VUSER_AFTER_ITERATION - Surt després que s'hagi completat l'execució d'iteració actual.
- LR_EXIT_VUSER_AFTER_ACTION - Surt després de completar l'execució de l'acció actual.
19) lr_think_time (): Aquesta funció permet que un usuari faci una pausa durant un temps definit entre passos / accions a l'script VuGen. Es tracta de simular el comportament real de l'usuari de pensar durant un temps entre accions / passos d'una aplicació.
Per exemple, el següent fa que un Vuser esperi 10 segons ...
lr_think_time(10);
20) lr_rendezvous (): Com ja s'ha vist, aquesta funció indica al LoadRunner que espereu a un pas especificat de l'script fins que tots els Vusers arribin a aquest pas perquè la sol·licitud posterior es pugui executar simultàniament.
21) lr_load_dll (): Aquesta funció s'utilitza per carregar una dll externa que permet a un usuari trucar a una funció externa quan es reprodueix l'script.
on es troba la clau de seguretat de la xarxa al router
22) lr_save_searched_string (): Aquesta funció cerca l'aparició d'una cadena en una memòria intermèdia i desa una part de la memòria intermèdia després d'aquesta cadena en un paràmetre.
A l'exemple següent , es cerca a la memòria intermèdia la tercera ocurrència (número definit al tercer atribut més 1) de la cadena 'tot' i es guarden els 14 caràcters següents (sisè atribut) en un paràmetre (el cinquè atribut '1' salta l'espai després de la cerca ).
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): La sub-cadena cercada són els homes del rei.
23) lr_vuser_status_message (): Aquesta funció envia un missatge a l'àrea d'estat de l'usuari del controlador i al registre de l'usuari.
24) lr_next_row (): Aquesta funció funciona al fitxer de dades de paràmetres especificat i s’utilitza per avançar una fila activa a la fila següent.
25) lr_advance_param (): Aquesta funció fa que l'script utilitzi el següent valor disponible del paràmetre treballant en noms de columnes.
26) lr_start_timer () i lr_end_timer (): Aquestes funcions s’utilitzen per iniciar i aturar un temporitzador en un script VuGen que calcula el pas del temps en segons.
27) lr_whoami (): Aquesta funció retorna informació sobre el Vuser (com ara Vuser id, grup Vuser).
28) lr_get_vuser_ip (): Aquesta funció retorna l'adreça IPv4 d'un Vuser.
29) lr_get_host_name (): Aquesta funció retorna el nom de la màquina que executa l'script.
30) lr_get_master_host_name (): Aquesta funció retorna el nom de la màquina que executa el controlador.
31) lr_decrypt (): Aquesta funció desxifra una cadena codificada. Generalment s’utilitza per desxifrar contrasenyes.
32) lr_continue_on_error (): Aquesta funció especifica com gestionar els errors per continuar executant-se si es produeix un error o avortar l'execució de l'script.
***********************************
En aquesta secció, hem debatut més sobre les funcions 'predefinides' i les funcions 'LoadRunner' en detall.
A la nostra següent secció, parlarem de les funcions LoadRunner ‘Protocol Specific’ i ‘C-Language’.
Funcions específiques del protocol
Aquestes funcions són específiques d’un protocol; en la nostra discussió, ens limitarem a discutir sobre el protocol ‘Web-HTTP / HTML’ o simplement sobre funcions específiques del protocol ‘Web’.
1) web_url (): Aquesta funció carrega la pàgina web especificada per l'argument URL.
2) web_submit_form (): Aquesta funció envia un formulari. I aquesta funció només es registra en mode HTML i envia una sol·licitud sensible al context (ja hem parlat de sol·licituds contextuals i sense context).
Vegeu l'exemple següent:
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 (): Aquesta funció envia un formulari sense context. Aquesta funció només es registra en mode de gravació basat en URL o en mode de gravació basat en HTML amb l'opció 'Un script que conté només URL explícits'.
Vegeu l'exemple següent:
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 (): Aquesta funció s'utilitza per crear una sol·licitud HTTP personalitzada mitjançant qualsevol mètode o cos.
5) web_concurrent_start () i web_concurrent_end (): Aquestes funcions s'utilitzen per marcar l'inici i el final (respectivament) d'un grup simultani. Totes les funcions d'un grup (incloses entre aquestes funcions) s'executen simultàniament.
6) web_reg_save_param (): Com ja s’ha vist, es tracta d’una funció de correlació basada en límits.
7) web_reg_save_param_ex (): Aquesta també és una funció de correlació basada en límits que és una versió millorada de la funció web_reg_save_param.
8) web_reg_find (): Com ja s’ha vist, aquesta funció s’utilitza per a la comprovació de text.
9) web_image_check (): Com ja s’ha vist, aquesta funció s’utilitza per comprovar la imatge.
10) web_convert_param (): Aquesta funció s'utilitza per convertir text HTML a text pla o URL, o text pla a URL. A l'exemple següent, aquestes funcions converteixen el contingut del paràmetre 'ParamName' del format HTML al format d'URL.
Exemple:
web_convert_param ('ParamName', 'SourceEncoding = HTML', 'TargetEncoding = URL', ÚLTIM);
11) web_get_int_property (): Aquesta funció retorna informació específica (com ara el codi d'estat, la mida de la baixada, etc.) sobre la sol·licitud HTTP anterior. A l'exemple que es mostra a continuació, aquesta funció s'utilitza per retornar el codi d'estat HTTP i la mida de la descàrrega.
Exemple:
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 iniciada (MsgId: MMSG-26355)
Action.c (17): web_get_int_property ha tingut èxit (MsgId: MMSG-26392)
Action.c (18): El codi d’estat HTTP és 200
Action.c (20): web_get_int_property iniciada (MsgId: MMSG-26355)
Action.c (20): web_get_int_property ha tingut èxit (MsgId: MMSG-26392)
Action.c (21): La mida de descàrrega és de 12891 bytes
12) web_set_max_html_param_len (): Aquesta funció s'utilitza per establir la longitud màxima de qualsevol cadena HTML que es pot recuperar i desar en un paràmetre. El valor predeterminat per a la longitud màxima d'un paràmetre que es pot capturar durant la correlació és de 256 caràcters. Aquesta funció s'utilitza per recuperar una cadena de més de 256 caràcters.
13) web_cache_cleanup (): Aquesta funció s'utilitza per esborrar la memòria cau. A la configuració del temps d’execució: pestanya Emulació del navegador, si està habilitat ‘Simula un usuari nou cada iteració’, aquesta funció es crida automàticament al principi de cada iteració.
14) web_cleanup_cookies (): Aquesta funció esborra totes les cookies que actualment emmagatzema el Vuser.
15) web_add_cookie (): Aquesta funció afegeix una nova cookie.
16) web_add_header (): Aquesta funció afegeix una capçalera definida per l'usuari a la següent sol·licitud HTTP.
17) web_save_timestamp_param (): Aquesta funció desa la marca de temps local actual de l'ordinador que executa l'script. Es tracta d’un número de 13 dígits i el valor és el nombre de mil·lisegons des de la mitjanit de l’1 de gener de 1970.
Exemple:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Action.c (5): Marca de temps: 1529249235582
18) web_set_user (): Aquesta funció especifica un valor d'inici de sessió i una contrasenya per a un servidor web o un servidor intermediari. Quan iniciem la sessió a un servidor que requereix un nom d’usuari i una contrasenya, es genera aquesta funció.
19) web_set_proxy (): Aquesta funció s'utilitza per indicar a Vuser que dirigeixi totes les sol·licituds HTTP a l'especificat Servidor intermediari .
20) web_set_certificate (): Aquesta funció s'utilitza per indicar a Vuser que utilitzi un certificat específic del registre d'Internet Explorer (sempre que un servidor web segur requereixi que el client presenti un certificat).
Per exemple, la següent funció indica al Vuser que utilitzi el segon certificat del registre d'Internet Explorer.
web_set_certificate('2');
21) web_set_sockets_option (): Aquesta funció s'utilitza per configurar diverses opcions per a sòcols a la màquina client.
SSL_VERSION - Versió SSL: '2', '3', '2 i 3', 'TLS', 'TLS1.1' o 'TLS1.2'.
MAX_CONNECTIONS_PER_HOST - El nombre màxim de connexions simultànies per host.
CLOSE_KEEPALIVE_CONNECTIONS - Tanca totes les connexions obertes.
Funcions del llenguatge C
Aquestes són les funcions 'C' que s'utilitzen per millorar els scripts VuGen per a escenaris específics.
1) strcpy (): Aquesta funció copia una cadena a una altra.
Exemple:
char String(100); strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Action.c (8): El contingut de la cadena és: Aquesta és una cadena
2) strcmp (): Aquesta funció compara dues cadenes i retorna un valor que indica la relació lexicogràfica entre elles ('= 0' si les cadenes són iguals, '0' si la primera cadena és superior a una segona cadena).
Exemple:
com escriure casos de proves manuals
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): Les cordes no són les mateixes.
3) strlen (): Aquesta funció retorna la longitud d'una cadena en bytes.
4) strcat (): Aquesta funció concatena dues cadenes.
Exemple:
char String(100)= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Action.c (10): La cadena final és StarWars.
5) strtok (): Com ja s'ha vist, aquesta funció retorna un testimoni d'una cadena delimitada per caràcters especificats.
6) atoi (): Com ja s’ha vist, aquesta funció converteix una cadena C en un enter C.
7) atof (): Aquesta funció converteix una cadena C en un float C.
8) itoa (): Aquesta funció converteix un enter C en una cadena C.
Exemple:
int x=1; char y(100); itoa (x,y,10); lr_output_message('The string is: %s',y);
Action.c (8): La cadena és: 1
9) fopen (): Aquesta funció s'utilitza per obrir un punter de fitxer.
10) fclose (): Aquesta funció s'utilitza per tancar un punter de fitxer.
11) fread (): Aquesta funció llegeix les dades sense format d'un flux a una memòria intermèdia.
12) fwrite (): Aquesta funció escriu dades sense format des d'una memòria intermèdia a un flux.
13) fprintf (): Com ja s'ha vist, aquesta funció escriu la sortida formatada en un fitxer.
14) sprint (): Aquesta funció escriu la sortida formatada en una cadena.
Exemple:
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): El nou nom del fitxer és log_84.txt
Conclusió
A partir d’aquest tutorial, hem après més sobre les funcions LoadRunner predefinides importants.
Aquestes funcions tenen cura de gairebé tots els escenaris importants que generalment trobem en aplicacions en temps real. Es recomana consultar 'Referència de funcions' a l'ajuda de VuGen per obtenir informació addicional sobre aquestes funcions.
Al nostre proper tutorial, obtindreu més informació sobre la creació de scripts de serveis web mitjançant LoadRunner.
=> Visiteu aquí per obtenir una sèrie completa de tutorials de LoadRunner
PREV Tutorial | NEXT Tutorial
Lectura recomanada
- Proves de rendiment dels serveis web mitjançant LoadRunner VuGen Scripting
- Funcions de data i hora a C ++ amb exemples
- Tutorial de Python DateTime amb exemples
- Funcions en C ++ amb tipus i exemples
- Prova de càrrega amb tutorials HP LoadRunner
- Funcions Python
- Funcions de cadena de Python
- Opcions de gravació de VUGen a LoadRunner