important loadrunner functions used vugen scripts with examples
Wichtige LoadRunner-Funktionen, die hauptsächlich in VuGen-Skripten mit Syntax und Beispielen verwendet werden:
VuGen Scripting Herausforderungen wurden in unserem früheren Tutorial in der ausführlich erklärt Kostenlose Online-LoadRunner-Schulungsserie .
Networking Interview Frage und Antwort pdf
Auf unserer Reise mit dem LoadRunner VuGen sind wir bisher auf viele vordefinierte Funktionen gestoßen (und natürlich haben wir auch gesehen, wie man eigene Funktionen schreibt).
In diesem Tutorial werden die wichtigen vordefinierten LoadRunner-, protokollspezifischen und C-sprachigen Funktionen, die wir hauptsächlich in VuGen-Skripten / -Szenarien verwenden, aufgelistet und kurz erläutert.
=> Klicken Sie hier, um eine vollständige Reihe von LoadRunner-Tutorials anzuzeigen
Klassifizieren wir diese Funktionen in drei Kategorien:
- LoadRunner (LR) -Funktionen
- Protokollspezifische (Web - HTTP / HTML) Funktionen
- C Sprachfunktionen
Lass uns eins nach dem anderen erkunden!
Was du lernen wirst:
- LoadRunner (LR) -Funktionen
- Protokollspezifische Funktionen
- C Sprachfunktionen
- Fazit
- Literatur-Empfehlungen
LoadRunner (LR) -Funktionen
Diese Funktionen sind die allgemeinen LoadRunner-Funktionen, die allen Protokollen gemeinsam sind:
1) lr_eval_string (): Wie bereits gesehen, gibt diese Funktion die Eingabezeichenfolge zurück, nachdem alle eingebetteten Parameter ausgewertet wurden.
2) lr_eval_string_ext (): Diese Funktion erstellt einen Puffer und weist ihn nach Auswertung der eingebetteten Parameter der Eingabezeichenfolge zu.
3) lr_save_string (): Wie bereits gesehen, weist diese Funktion dem LR-Parameter / der LR-Variablen einen Wert zu.
4) lr_save_int (): Diese Funktion weist einem LR-Parameter eine Ganzzahl zu, wie unten gezeigt:
Beispiel:
int number; number=8; lr_save_int(number,”numparam”);
Der Parameter 'numparam' kann jetzt wie jeder andere LR-Parameter verwendet werden.
5) lr_paramarr_random (): Wie bereits gesehen, wählt diese Funktion zufällig einen der Werte aus einem Parameterarray aus.
6) lr_paramarr_len (): Diese Funktion gibt die Anzahl der Elemente in einem Parameterarray zurück.
Angenommen, 'cFlight' ist das Parameterarray mit Flugwerten. Das folgende Beispiel zeigt, wie die Anzahl der Elemente dieses Arrays in eine Variable kopiert werden kann.
Beispiel:
int arrLen; arrLen = lr_paramarr_len('cFlight');
7) lr_paramarr_idx (): Diese Funktion gibt den Wert des Parameters an einer bestimmten Stelle in einem Parameterarray an. In einem unten gezeigten Beispiel wird der dritte Wert des Parameterarrays in einer Variablen gespeichert.
Beispiel:
char * flightVal; flightVal = lr_paramarr_idx('cFlight', 3);
8) lr_db_connect () :: Dies ist eine Datenbankfunktion, mit der eine Verbindung zu einer Datenbank hergestellt wird.
9) lr_db_disconnect () :: Dies ist eine Datenbankfunktion, mit der die Verbindung zu einer Datenbank getrennt wird.
10) lr_start_transaction () und lr_end_transaction (): Wie bereits gesehen, werden diese Funktionen verwendet, um eine Transaktion zu starten bzw. zu beenden.
elf) lr_message () :: Dies ist eine Nachrichtenfunktion, mit der eine Nachricht an das Protokoll und das Ausgabefenster gesendet wird.
12) lr_output_message (): Dies ist eine Nachrichtenfunktion, mit der die Nachricht (en) mit Details wie dem Skriptabschnitt und der Zeilennummer an Ausgabefenster, Protokolldateien und andere Zusammenfassungen von Testberichten gesendet werden.
13) lr_log_message () :: Dies ist eine Nachrichtenfunktion, mit der eine oder mehrere Nachrichten an die Vuser- oder Agentenprotokolldatei und nicht an das Ausgabefenster gesendet werden.
14) lr_error_message (): Dies ist eine Nachrichtenfunktion, mit der eine Nachricht an die Ausgabefenster, Protokolldateien und andere Zusammenfassungen von Testberichten gesendet wird.
fünfzehn) lr_save_datetime (): Diese Funktion speichert das aktuelle Datum und die aktuelle Uhrzeit (oder das Datum und die Uhrzeit mit dem angegebenen Versatz) in einem Parameter, der bei Bedarf in unserem Skript verwendet werden kann.
Beispiel:
lr_save_datetime('Today’s date is %B %d %Y', DATE_NOW , 'today'); lr_output_message(lr_eval_string('{today}'));
Aktion.c (4): Das heutige Datum ist der 09. Juni 2018
Im Folgenden ist ein weiteres Beispiel angegeben, bei dem der Versatz eines Tages verwendet wird:
lr_save_datetime('Tomorrow's date is %B %d %Y', DATE_NOW + ONE_DAY , 'tomorrow'); lr_output_message(lr_eval_string('{tomorrow}'));
Aktion.c (4): Morgen ist der 10. Juni 2018
16) lr_set_debug_message (): Diese Funktion ändert die Nachrichtenprotokollierungsstufe (für einen Teil des Skripts) von der in den Laufzeiteinstellungen festgelegten Stufe. Wie unten gezeigt, ist eine vollständige Ablaufverfolgung nur für die Anforderung 'index.htm' aktiviert (auch wenn die Protokollebene in den Laufzeiteinstellungen auf 'Standardprotokoll' festgelegt ist).
Beispiel:
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 (): Diese Funktion bricht die Ausführung des Skripts ab, nachdem der Abschnitt 'vuser_end' ausgeführt wurde. Diese Funktion ist nützlich, wenn das Skript aufgrund einer bestimmten Fehlerbedingung manuell abgebrochen werden muss.
18) lr_exit (): Diese Funktion weist Vuser an, den Skriptlauf während der Ausführung zu beenden und gemäß den angegebenen 'Skriptfortsetzungsoptionen' fortzufahren.
Im folgenden Beispiel, Diese Funktion weist Vuser an, die aktuelle Iteration des globalen Skriptlaufs zu stoppen und die nächste Iteration zu starten.
lr_exit(LR_EXIT_MAIN_ITERATION_AND_CONTINUE, LR_AUTO);
Hier ist eine Liste anderer Optionen zur Skriptfortsetzung:
- LR_EXIT_VUSER - Beenden Sie ohne Bedingung und gehen Sie direkt zur Aktion vuser_end.
- LR_EXIT_ACTION_AND_CONTINUE - Stoppen Sie die aktuelle Aktion und fahren Sie mit der nächsten Aktion fort.
- LR_EXIT_ITERATION_AND_CONTINUE - Stoppen Sie die aktuelle Iteration und fahren Sie mit der nächsten Iteration fort.
- LR_EXIT_VUSER_AFTER_ITERATION - Beenden Sie nach Abschluss des aktuellen Iterationslaufs.
- LR_EXIT_VUSER_AFTER_ACTION - Beenden Sie nach Abschluss des aktuellen Aktionslaufs.
19) lr_think_time (): Mit dieser Funktion kann ein Vuser für eine definierte Zeit zwischen Schritten / Aktionen im VuGen-Skript pausieren. Dies dient dazu, das tatsächliche Benutzerverhalten des Denkens für einige Zeit zwischen Aktionen / Schritten in einer Anwendung zu simulieren.
Zum Beispiel, Das Folgende lässt einen Vuser 10 Sekunden warten…
lr_think_time(10);
zwanzig) lr_rendezvous (): Wie bereits gesehen, weist diese Funktion den LoadRunner an, an einem bestimmten Schritt im Skript zu warten, bis alle Vuser zu diesem Schritt gekommen sind, damit die nachfolgende Anforderung gleichzeitig ausgeführt werden kann.
einundzwanzig) lr_load_dll (): Diese Funktion wird zum Laden einer externen DLL verwendet, sodass ein Vuser bei der Wiedergabe des Skripts eine externe Funktion aufrufen kann.
22) lr_save_searched_string (): Diese Funktion sucht nach einem Vorkommen einer Zeichenfolge in einem Puffer und speichert einen Teil des Puffers nach dieser Zeichenfolge in einem Parameter.
Im folgenden Beispiel Das dritte Vorkommen (im dritten Attribut definierte Nummer plus 1) der Zeichenfolge 'all' wird im Puffer gesucht, und die nächsten 14 Zeichen (sechstes Attribut) werden in einem Parameter gespeichert (das fünfte Attribut '1' überspringt das Leerzeichen nach der Suche ).
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}'));
Aktion.c (7): Die gesuchte Unterzeichenfolge sind die Männer des Königs.
2. 3) lr_vuser_status_message (): Diese Funktion sendet eine Nachricht an den Vuser-Statusbereich des Controllers und an das Vuser-Protokoll.
24) lr_next_row (): Diese Funktion arbeitet mit der angegebenen Parameterdatendatei und wird verwendet, um eine aktive Zeile zur nächsten Zeile zu verschieben.
25) lr_advance_param (): Diese Funktion veranlasst das Skript, den nächsten verfügbaren Wert des Parameters zu verwenden, indem an Spaltennamen gearbeitet wird.
26) lr_start_timer () und lr_end_timer (): Diese Funktionen werden zum Starten und Stoppen eines Timers in einem VuGen-Skript verwendet, das den Zeitablauf in Sekunden berechnet.
27) lr_whoami (): Diese Funktion gibt Informationen über den Vuser zurück (wie Vuser-ID, Vuser-Gruppe).
28) lr_get_vuser_ip (): Diese Funktion gibt die IPv4-Adresse eines Vuser zurück.
29) lr_get_host_name (): Diese Funktion gibt den Namen des Computers zurück, der das Skript ausführt.
30) lr_get_master_host_name (): Diese Funktion gibt den Namen des Computers zurück, auf dem der Controller ausgeführt wird.
31) lr_decrypt (): Diese Funktion entschlüsselt eine codierte Zeichenfolge. Es wird im Allgemeinen zum Entschlüsseln von Passwörtern verwendet.
32) lr_continue_on_error (): Diese Funktion gibt an, wie Fehler behandelt werden sollen, um die Ausführung fortzusetzen, wenn ein Fehler auftritt, oder um die Skriptausführung abzubrechen.
***************************************
In diesem Abschnitt haben wir uns eingehender mit vordefinierten Funktionen und LoadRunner-Funktionen befasst.
In unserem nächsten Abschnitt werden wir über die LoadRunner-Funktionen 'Protokollspezifisch' und 'C-Sprache' sprechen.
Protokollspezifische Funktionen
Diese Funktionen sind protokollspezifisch. In unserer Diskussion beschränken wir uns darauf, das Web-HTTP / HTML-Protokoll oder einfach die protokollspezifischen Webfunktionen zu diskutieren.
1) web_url (): Diese Funktion lädt die durch das URL-Argument angegebene Webseite.
2) web_submit_form (): Diese Funktion sendet ein Formular. Und diese Funktion wird nur im HTML-Modus aufgezeichnet und sendet eine kontextsensitive Anfrage (wir haben bereits über kontextsensitive und kontextlose Anfragen gesprochen).
Siehe Beispiel unten::
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 (): Diese Funktion sendet ein 'kontextloses' Formular. Diese Funktion wird nur im URL-basierten Aufnahmemodus oder im HTML-basierten Aufnahmemodus aufgezeichnet, wobei die Option 'Ein Skript, das nur explizite URLs enthält' aktiviert ist.
Siehe das folgende Beispiel:
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 (): Diese Funktion wird verwendet, um eine benutzerdefinierte HTTP-Anforderung mit einer beliebigen Methode oder einem beliebigen Text zu erstellen.
5) web_concurrent_start () und web_concurrent_end (): Diese Funktionen werden verwendet, um den Anfang bzw. das Ende einer gleichzeitigen Gruppe zu markieren. Alle Funktionen innerhalb einer Gruppe (zwischen diesen Funktionen eingeschlossen) werden gleichzeitig ausgeführt.
6) web_reg_save_param (): Wie bereits gesehen, ist dies eine grenzenbasierte Korrelationsfunktion.
7) web_reg_save_param_ex (): Dies ist auch eine grenzenbasierte Korrelationsfunktion, die eine verbesserte Version der Funktion web_reg_save_param ist.
8) web_reg_find (): Wie bereits gesehen, wird diese Funktion zur Textprüfung verwendet.
9) web_image_check (): Wie bereits gesehen, wird diese Funktion zur Bildprüfung verwendet.
10) web_convert_param (): Diese Funktion wird verwendet, um HTML-Text in einfachen Text oder URL oder einfachen Text in URL zu konvertieren. Im folgenden Beispiel konvertieren diese Funktionen den Inhalt des Parameters 'ParamName' vom HTML-Format in das URL-Format.
Beispiel:
web_convert_param ('ParamName', 'SourceEncoding = HTML', 'TargetEncoding = URL', LAST);
elf) web_get_int_property (): Diese Funktion gibt bestimmte Informationen (wie Statuscode, Downloadgröße usw.) über die vorherige HTTP-Anforderung zurück. In dem unten gezeigten Beispiel wird diese Funktion verwendet, um den HTTP-Statuscode und die Downloadgröße zurückzugeben.
Beispiel:
wie man .bin Dateien öffnet
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);
Aktion.c (17): web_get_int_property gestartet (MsgId: MMSG-26355)
Aktion.c (17): web_get_int_property war erfolgreich (MsgId: MMSG-26392)
Aktion.c (18): Der HTTP-Statuscode lautet 200
Aktion.c (20): web_get_int_property gestartet (MsgId: MMSG-26355)
Aktion.c (20): web_get_int_property war erfolgreich (MsgId: MMSG-26392)
Aktion.c (21): Die Downloadgröße beträgt 12891 Bytes
12) web_set_max_html_param_len (): Mit dieser Funktion wird die maximale Länge einer HTML-Zeichenfolge festgelegt, die abgerufen und in einem Parameter gespeichert werden kann. Der Standardwert für die maximale Länge eines Parameters, der während der Korrelation erfasst werden kann, beträgt 256 Zeichen. Diese Funktion wird verwendet, um eine Zeichenfolge abzurufen, die länger als 256 Zeichen ist.
13) web_cache_cleanup (): Diese Funktion wird verwendet, um den Cache zu leeren. Wenn auf der Registerkarte Laufzeiteinstellungen - Browser-Emulation die Option 'Bei jeder Iteration einen neuen Benutzer simulieren' aktiviert ist, wird diese Funktion zu Beginn jeder Iteration automatisch aufgerufen.
14) web_cleanup_cookies (): Diese Funktion löscht alle Cookies, die derzeit vom Vuser gespeichert werden.
fünfzehn) web_add_cookie (): Diese Funktion fügt ein neues Cookie hinzu.
16) web_add_header (): Diese Funktion fügt der nächsten HTTP-Anforderung einen benutzerdefinierten Header hinzu.
17) web_save_timestamp_param (): Diese Funktion speichert den aktuellen lokalen Zeitstempel des Computers, auf dem das Skript ausgeführt wird. Dies ist eine 13-stellige Zahl und der Wert ist die Anzahl der Millisekunden seit dem 1. Januar 1970 um Mitternacht.
Beispiel:
web_save_timestamp_param('currentTimeStamp', LAST ); lr_output_message(lr_eval_string('Timestamp: {currentTimeStamp}'));
Aktion.c (5): Zeitstempel: 1529249235582
18) web_set_user (): Diese Funktion gibt einen Anmeldewert und ein Kennwort für einen Webserver oder einen Proxyserver an. Wenn wir uns bei einem Server anmelden, für den Benutzername und Kennwort erforderlich sind, wird diese Funktion generiert.
19) web_set_proxy (): Diese Funktion wird verwendet, um Vuser anzuweisen, alle HTTP-Anforderungen an die angegebenen zu leiten Proxy Server .
zwanzig) web_set_certificate (): Diese Funktion wird verwendet, um Vuser anzuweisen, ein bestimmtes Zertifikat aus der Internet Explorer-Registrierung zu verwenden (wenn ein sicherer Webserver vom Client die Vorlage eines Zertifikats verlangt).
Zum Beispiel, Die folgende Funktion weist den Vuser an, das zweite Zertifikat aus der Internet Explorer-Registrierung zu verwenden.
So zeigen Sie eine Bin-Datei an
web_set_certificate('2');
einundzwanzig) web_set_sockets_option (): Diese Funktion wird verwendet, um verschiedene Optionen für Sockets auf dem Clientcomputer zu konfigurieren.
SSL_VERSION - SSL-Version: '2', '3', '2 & 3', 'TLS', 'TLS1.1' oder 'TLS1.2'.
MAX_CONNECTIONS_PER_HOST - Die maximale Anzahl gleichzeitiger Verbindungen pro Host.
CLOSE_KEEPALIVE_CONNECTIONS - Schließt alle offenen Verbindungen.
C Sprachfunktionen
Dies sind die C-Funktionen, mit denen die VuGen-Skripte für bestimmte Szenarien verbessert werden.
1) strcpy (): Diese Funktion kopiert eine Zeichenfolge in eine andere.
Beispiel::
char String(100); strcpy (String,'This is a string'); lr_output_message('The content in String is : %s', String);
Aktion.c (8): Der Inhalt in String ist: Dies ist ein String
2) strcmp (): Diese Funktion vergleicht zwei Zeichenfolgen und gibt einen Wert zurück, der die lexikografische Beziehung zwischen ihnen angibt ('= 0', wenn die Zeichenfolgen gleich sind, '0', wenn die erste Zeichenfolge größer als eine zweite Zeichenfolge ist).
Beispiel::
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'); }
Aktion.c (14): Saiten sind nicht dasselbe.
3) strlen (): Diese Funktion gibt die Länge eines Strings in Bytes zurück.
4) strcat (): Diese Funktion verkettet zwei Zeichenfolgen.
Beispiel::
char String(100)= 'Star'; strcat (String,'Wars'); lr_output_message('The final string is: %s',String);
Aktion.c (10): Die letzte Zeichenfolge ist StarWars.
5) strtok (): Wie bereits gesehen, gibt diese Funktion ein Token aus einer Zeichenfolge zurück, die durch angegebene Zeichen begrenzt ist.
6) atoi (): Wie bereits gesehen, konvertiert diese Funktion eine C-Zeichenfolge in eine C-Ganzzahl.
7) atof (): Diese Funktion konvertiert einen C-String in einen C-Float.
8) itoa (): Diese Funktion konvertiert eine C-Ganzzahl in eine C-Zeichenfolge.
Beispiel:
int x=1; char y(100); itoa (x,y,10); lr_output_message('The string is: %s',y);
Aktion.c (8): Die Zeichenfolge lautet: 1
9) fopen (): Mit dieser Funktion wird ein Dateizeiger geöffnet.
10) fclose (): Diese Funktion wird verwendet, um einen Dateizeiger zu schließen.
elf) fread (): Diese Funktion liest unformatierte Daten aus einem Stream in einen Puffer.
12) fwrite (): Diese Funktion schreibt unformatierte Daten aus einem Puffer in einen Stream.
13) fprintf (): Wie bereits gesehen, schreibt diese Funktion formatierte Ausgaben in eine Datei.
14) Sprint(): Diese Funktion schreibt formatierte Ausgaben in eine Zeichenfolge.
Beispiel::
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);
Aktion.c (7): Der neue Dateiname lautet log_84.txt
Fazit
In diesem Tutorial haben wir mehr über die wichtigen vordefinierten LoadRunner-Funktionen erfahren.
Diese Funktionen kümmern sich um fast alle wichtigen Szenarien, auf die wir in Echtzeitanwendungen normalerweise stoßen. Weitere Informationen zu diesen Funktionen finden Sie in der VuGen-Hilfe unter „Funktionsreferenz“.
In unserem nächsten Tutorial erfahren Sie mehr über Web Services Scripting mit LoadRunner.
=> Besuchen Sie hier für eine vollständige Reihe von LoadRunner-Tutorials
PREV Tutorial | NÄCHSTES Tutorial
Literatur-Empfehlungen
- Testen der Webdienstleistung mit LoadRunner VuGen Scripting
- Datums- und Uhrzeitfunktionen in C ++ mit Beispielen
- Python DateTime Tutorial mit Beispielen
- Funktionen in C ++ mit Typen und Beispielen
- Lasttests mit HP LoadRunner-Tutorials
- Python-Funktionen
- Python-String-Funktionen
- VUGen-Aufnahmeoptionen in LoadRunner