loadrunner transactions
c ++ converte char in int
Introduzione ai miglioramenti di base di VuGen Script:
Abbiamo esplorato Correlazione in LoadRunner in dettaglio nel nostro precedente tutorial in questo Completa i tutorial di formazione su LoadRunner .
Negli ultimi due tutorial, abbiamo lavorato sulla gestione dei dati in uno script VuGen (correlazione e parametrizzazione).
In questo tutorial di LoadRunner, vedremo gli altri miglioramenti di base (elencati di seguito) necessari per il nostro script:
- Transazioni - Per misurare la velocità e il tempo di risposta delle azioni dell'utente.
- Verifiche di testo e immagini - Per garantire che la risposta restituita sia corretta.
- Commenti
- Punti di Rendezvous - Per fare in modo che Vuser esegua un'attività contemporaneamente.
=> Fare clic qui per una serie completa di tutorial su LoadRunner
Cosa imparerai:
- Transazioni in VuGen Script
- Verifiche di testo e immagini in VuGen Script
- Commenti in VuGen Script
- Punto d'incontro in VuGen Script
- Conclusione
- Lettura consigliata
Transazioni in VuGen Script
La semplice riproduzione degli script delle prestazioni metterà solo un carico sull'applicazione ma non misura nulla. L'obiettivo finale di qualsiasi script delle prestazioni è iniettare il carico e misurare la velocità e il tempo di risposta delle azioni dell'utente sull'applicazione.
Per esempio ,quanto tempo ha impiegato la ricerca di un prodotto quando 100 utenti sono sull'applicazione, quanti report vengono generati in un tempo, diciamo, 15 minuti e così via. Per misurarli, dobbiamo inserire le transazioni in uno script VuGen (dopo il test, possiamo vedere il tasso e il tempo di risposta di queste transazioni nei risultati).
'Una transazione è una misurazione end-to-end di un'azione dell'utente (o di un gruppo di azioni dell'utente) su un'applicazione'.
Le transazioni possono essere inserite in due modi:
- Durante la registrazione
- Dopo la registrazione (dove inseriamo manualmente le funzioni di transazione nello script)
Cerchiamo di inserire la transazione per l'azione dell'utente 'Accedi' nella nostra applicazione 'Web Tours'.
Nel nostro primo tutorial, abbiamo visto come registrare le azioni dell'utente. Durante la registrazione, dopo aver inserito 'Nome utente' e 'Password' nella pagina di accesso, subito prima di fare clic sul pulsante 'Accesso', fare clic sull'icona 'Inserisci transazione iniziale' sulla barra di registrazione mobile.
VuGen richiede il nome della transazione. Immettere un nome significativo. Abbiamo fornito 'Login' qui, ma è buona norma seguire una convenzione come questa (numero di transazione, nome dello scenario, azione dell'utente ecc.): 01_WebTours_Launch 02_WebTours_Login (e così via).
Ora fai clic sul file Pulsante di accesso.
Una volta raggiunta la home page (pagina principale), fare clic sull'icona 'Inserisci transazione finale' sulla barra di registrazione mobile.
Seleziona la transazione che vogliamo terminare (transazione 'Accedi' qui).
Interrompi la registrazione e guarda lo script generato. Possiamo vedere che le funzioni di inizio e fine transazione sono inserite nello script (evidenziate in giallo) e tutte le richieste corrispondenti all'azione utente 'Accedi' sono racchiuse tra queste funzioni.
lr_start_transaction('Login'); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t3.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123530.624949372zDftVAzpfcAiDDDDDiVctpzDQVcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 69 ', ENDITEM , 'Name= login.y ', 'Value= 8 ', ENDITEM , LAST ); lr_end_transaction('Login', LR_AUTO );
La sintassi delle funzioni 'inizio transazione' e 'fine transazione' è piuttosto semplice. Entrambi hanno il nome della transazione come primo argomento. La funzione 'fine transazione' ha un altro attributo: 'LR_AUTO', che istruisce VuGen a superare o fallire automaticamente una transazione (invece di specificare esplicitamente una condizione per un passaggio o un errore).
Se il load runner incontra errori nell'esecuzione delle richieste all'interno di una transazione, fallisce la transazione altrimenti la passa.
Verifiche di testo e immagini in VuGen Script
I controlli del testo vengono utilizzati per verificare se la risposta restituita per la richiesta è corretta o meno. Nel tutorial 'Correlazione', abbiamo visto che a volte VuGen potrebbe non mostrare alcun errore ma la risposta restituita potrebbe non essere quella corretta. Quindi, per garantire che la risposta sia corretta, utilizziamo controlli di testo.
Per esempio, quando accediamo all'applicazione web Tours, andiamo alla home page. Verifichiamo nello script che stiamo ottenendo la risposta corretta (home page) o meno quando effettuiamo l'accesso.
Per fare questo, dobbiamo identificare del testo nella risposta (homepage qui) che può dire se la risposta è corretta o meno. 'Benvenuto' è uno di questi testi.
Per il controllo del testo, utilizziamo ' web_reg_find ' funzione appena prima della richiesta.
La sintassi di questa funzione è:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Qui abbiamo tre attributi (fai riferimento alla guida di VuGen per ottenere l'elenco completo degli attributi):
'Testo': utilizzato per specificare quale testo cercare.
'SaveCount': salva il numero di occorrenze del testo specificato in un parametro da noi specificato.
'Fail': accetta uno dei due valori 'Found' e 'NotFound' e di conseguenza non supera lo script.
Quindi la funzione web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', 'Fail = NotFound', LAST) cerca il testo 'Welcome' nella risposta e salva il numero di occorrenze nel parametro 'WelcomeCount' (e fallisce lo script se il testo non viene trovato).
Lo script ha questo aspetto:
web_reg_find('Text= Welcome ','SaveCount= WelcomeCount ','Fail= NotFound ', LAST ); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame= body ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t2.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123531.149939247zDftVDDpfcfDiVctpiAVVf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 66 ', ENDITEM , 'Name= login.y ', 'Value= 12 ', ENDITEM , LAST );
Ora, se riproduciamo lo script, otterremo un errore per la richiesta di accesso (vedere nel registro di inoltro) perché VuGen non ha trovato il testo che abbiamo specificato, nella risposta. Questo perché non abbiamo ottenuto la home page corretta (come mostrato nel 'visualizzatore di runtime').
Ora correggiamo il nostro script (correliamo userSession) e ripetiamo di nuovo lo script.
web_reg_find('Text=Welcome','SaveCount=WelcomeCount','Fail=NotFound', LAST ); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA , 'Name=userSession', 'Value={corUserSession}', ENDITEM , 'Name=username', 'Value=jojo', ENDITEM , 'Name=password', 'Value=bean', ENDITEM , 'Name=JSFormSubmit', 'Value=off', ENDITEM , 'Name=login.x', 'Value=66', ENDITEM , 'Name=login.y', 'Value=12', ENDITEM , LAST );
Questa volta non vediamo alcun errore nel registro di riproduzione ma viene visualizzato un messaggio che indica che il nostro controllo del testo è riuscito. Quindi questa volta abbiamo ottenuto la risposta corretta (poiché è confermata dal 'visualizzatore di runtime').
Possiamo combinare i controlli del testo con le transazioni e fare in modo che VuGen passi una transazione se il controllo del testo ha esito positivo e fallire una transazione se il controllo del testo non è riuscito.
Questo è mostrato di seguito:
lr_start_transaction('Login'); web_reg_find('Text=Welcome','SaveCount=WelcomeCount',LAST); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA, 'Name=userSession', 'Value={corUserSession}', ENDITEM, 'Name=username', 'Value=jojo', ENDITEM, 'Name=password', 'Value=bean', ENDITEM, 'Name=JSFormSubmit', 'Value=off', ENDITEM, 'Name=login.x', 'Value=66', ENDITEM, 'Name=login.y', 'Value=12', ENDITEM, LAST); if(atoi(lr_eval_string('{WelcomeCount}'))>0) { lr_end_transaction('Login',LR_PASS); } else { lr_end_transaction('Login',LR_FAIL); }
Abbiamo utilizzato 'if statement' qui con l'attributo 'SaveCount'. Il parametro 'WelcomeCount' (che salva il numero di occorrenze del testo) viene utilizzato come condizione per passare / fallire la transazione. Gli attributi 'LR_PASS' e 'LR_FAIL' delle funzioni di transazione vengono utilizzati per passare esplicitamente e fallire (rispettivamente) una transazione.
Nota: Abbiamo usato due nuove funzioni qui: 'Atoi' e 'Lr_eval_string' . Parleremo più avanti di queste funzioni.
Altre informazioni sulla combinazione degli attributi della funzione 'web_reg_find':
# 1) Se viene utilizzato solo l'attributo 'Testo' -
Esempio: web_reg_find ('Text = Welcome', LAST) -
VuGen cerca il testo e fallisce lo script se la ricerca ha esito negativo.
# 2) Se vengono utilizzati solo gli attributi 'Text' e 'SaveCount' -
Esempio: web_reg_find ('Text = Welcome', 'SaveCount = WelcomeCount', LAST) - VuGen cerca il testo e salva il numero di occorrenze (anche se è zero) nel parametro specificato (non fallisce lo script se la ricerca non ha successo ).
# 3) Se vengono utilizzati solo gli attributi 'Text' e 'Fail' -
Esempio: web_reg_find ('Text = Welcome', 'Fail = NotFound', LAST) - VuGen cerca il testo e fallisce lo script se il testo viene trovato / non trovato.
I controlli del testo possono anche essere inseriti durante la registrazione utilizzando l'icona 'Inserisci controllo del testo' sulla barra di registrazione mobile. Questo inserirà lo stesso 'Web_reg_find' funzione nello script.
Ma è meglio che inseriamo questa funzione manualmente in quanto avremo un controllo migliore principalmente sugli attributi.
Abbiamo capito chiaramente il controllo del testo, ora passiamo al controllo dell'immagine.
Il controllo dell'immagine viene utilizzato per verificare la presenza di un'immagine specificata in una risposta. ' web_image_check ' viene utilizzata per il controllo dell'immagine. Questa funzione va inserita dopo la richiesta (nella cui risposta ci aspettiamo l'immagine).
Esempio di questa funzione:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Dove il primo attributo è un nome significativo e il secondo attributo ('Src') è il nome / collegamento dell'immagine (fare riferimento alla guida VuGen per ottenere l'elenco completo degli attributi).
Commenti in VuGen Script
I commenti in uno script VuGen possono essere inseriti durante la registrazione e anche manualmente dopo che lo script è stato registrato.
Durante la registrazione, fare clic su 'Inserisci commento' icona sulla barra di registrazione mobile.
Inserisci il commento (dì 'Accedi' qui).
Dopo la registrazione, possiamo vedere i commenti nello script come mostrato di seguito.
/* Login */ web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t6.inf', 'Mode=HTML',
In VuGen, una singola riga può essere commentata semplicemente inserendo '//' prima della riga come mostrato di seguito:
// web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com');
E più righe possono essere collegate inserendo '/ *' all'inizio e '* /' alla fine (come mostrato di seguito)
/* web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com'); */
Nota: Negli esempi mostrati sopra, abbiamo commentato le funzioni dei cookie ( web_add_cookie ). Parleremo delle funzioni dei cookie più avanti in questa serie di tutorial.
È buona norma inserire commenti ad ogni passaggio durante la registrazione perché ci aiuterà a mettere in relazione le richieste nello script con le azioni dell'utente sull'applicazione.
Punto d'incontro in VuGen Script
Se disponiamo di uno scenario in cui un numero maggiore di utenti esegue un'azione simultaneamente sull'applicazione (come il controllo dei risultati) e se dobbiamo simulare la stessa nel nostro test delle prestazioni, possiamo utilizzare un 'punto di incontro'.
Un 'Rendezvous point' è una singola e semplice funzione in uno script VuGen che istruisce il load runner (durante un test con più utenti) di attendere in un passaggio specificato nello script finché tutti i Vuser (che eseguono lo script) arrivano a quel passaggio, quindi tale richiesta successiva può essere eseguita contemporaneamente.
La sintassi per la funzione Rendezvous è:
lr_rendezvous(“MeaningfulName”);
Questa funzione può essere inserita durante la registrazione e anche manualmente dopo la registrazione dello script.
Supponiamo di voler caricare simultaneamente la fase di pagamento nella nostra applicazione 'Web Tours'. Durante la registrazione in quella fase (prima di inviare i dettagli del pagamento), fare clic sull'icona 'Inserisci Rendezvous' sulla barra di registrazione mobile.
E inserisci il nome del punto di incontro (qualsiasi nome significativo).
Dopo la registrazione, possiamo vedere la funzione rendezvous nello script in questo modo.
lr_rendezvous('Payment'); web_submit_data('reservations.pl_3', 'Action= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Snapshot= t13.inf ', 'Mode= HTML ', ITEMDATA , 'Name= firstName ', 'Value= Jojo ', ENDITEM , 'Name= lastName ', 'Value= Bean ', ENDITEM , 'Name= address1 ', 'Value= 1st Lane , Down Street', ENDITEM , 'Name= address2 ', 'Value= 567123 ', ENDITEM , 'Name= pass1 ', 'Value= Jojo Bean ', ENDITEM , 'Name= creditCard ', 'Value= 123456789101 ', ENDITEM , 'Name= expDate ', 'Value= 0520 ', ENDITEM , 'Name= oldCCOption ', 'Value=', ENDITEM , 'Name= numPassengers ', 'Value= 1 ', ENDITEM , 'Name= seatType ', 'Value= Coach ', ENDITEM , 'Name= seatPref ', 'Value= None ', ENDITEM , 'Name= outboundFlight ', 'Value= 020 ;338;05/03/2018', ENDITEM , 'Name= advanceDiscount ', 'Value= 0 ', ENDITEM , 'Name= returnFlight ', 'Value=', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= .cgifields ', 'Value= saveCC ', ENDITEM , 'Name= buyFlights.x ', 'Value= 63 ', ENDITEM , 'Name= buyFlights.y ', 'Value= 12 ', ENDITEM , LAST );
Ora, quando eseguiamo questo script con più utenti nel controller, lo script verrà eseguito da Vuser in modo indipendente, ma Vuser attenderà in questo passaggio di 'Pagamento' finché tutti (o una certa percentuale di Vuser definiti nella politica di Rendezvous) raggiungeranno questo passaggio dopo di che eseguiranno questo passaggio contemporaneamente.
Vedremo di più sulla politica del rendezvous (opzioni) nel tutorial del controller.
Conclusione
Fino ad ora abbiamo discusso la correlazione e la parametrizzazione nei tutorial precedenti e nelle transazioni, nei controlli di testo / immagine, nei commenti e nei punti di Rendezvous in questo tutorial, abbiamo anche trattato i metodi di miglioramento degli script più importanti.
Nel nostro prossimo tutorial, vedremo alcune altre sfide di scripting insieme ai modi per gestirle.
=> Visita qui per una serie completa di tutorial su LoadRunner
Tutorial PREV | PROSSIMO Tutorial
Lettura consigliata
- Test di carico con HP LoadRunner Tutorial
- Introduzione a Micro Focus LoadRunner - Test di carico con LoadRunner Tutorial n. 1
- Correlazione - Test di carico con LoadRunner
- Tutorial LoadRunner per principianti (corso approfondito gratuito di 8 giorni)
- Analisi e rapporti dei risultati dei test - Test di carico con LoadRunner
- Test delle prestazioni dei servizi Web mediante LoadRunner VuGen Scripting
- Differenza tra LoadRunner e Performance Center
- Come configurare i file di script LoadRunner VuGen e le impostazioni di runtime