Parametrizzazione, Funzioni, Transazioni in LoadRunner

Uno script registrato può simulare un utente virtuale; tuttavia, una semplice registrazione potrebbe non essere sufficiente per replicare il “comportamento reale dell’utente”.

Quando viene registrato uno script, copre il flusso singolo e diretto dell'applicazione in oggetto. Al contrario, un utente reale può eseguire più iterazioni di qualsiasi processo prima di disconnettersi. Il ritardo tra il clic sui pulsanti (pensa al tempo) varia da persona a persona. È probabile che alcuni utenti reali accedano alla tua applicazione tramite DSL e altri vi accedano tramite una connessione remota. Quindi, per avere la sensazione reale dell'utente finale, dobbiamo migliorare i nostri script affinché corrispondano esattamente, o almeno siano molto vicini nel comportamento agli utenti reali.

Quanto sopra è la considerazione più significativa quando si conduce “Test di Performance”, ma c'è di più in uno script VU. Come valuterai la quantità precisa di tempo impiegato da un VUser quando SUL è sottoposto a un test delle prestazioni? Come faresti a sapere se il VUser è passato o ha fallito a un certo punto? Qual è la causa dell'errore, se qualche processo di backend non è riuscito o se le risorse del server erano limitate?

Dobbiamo migliorare il nostro script per aiutare a rispondere a tutte le domande di cui sopra.

Utilizzo delle transazioni

Le transazioni sono meccanismi per misurare il tempo di risposta del server per qualsiasi operazione. In parole semplici, l'uso di "Transazione" aiuta a misurare il tempo impiegato dal sistema per una richiesta particolare. Può essere piccolo come un clic su un pulsante o una chiamata AJAX quando si perde il focus dalla casella di testo.

L'applicazione delle transazioni è semplice. Basta scrivere una riga di codice prima che venga effettuata la richiesta al server e chiudere la transazione al termine della richiesta. LoadRunner richiede solo una stringa come nome della transazione.

Per aprire una transazione, utilizzare questa riga di codice:

lr_start_transaction(“Transaction Name”);

Per chiudere la transazione, utilizzare questa riga di codice:

lr_end_transaction(“Transaction Name”, <status>);

IL indica a LoadRunner se questa particolare transazione ha avuto esito positivo o negativo. I possibili parametri potrebbero essere:

  • LR_AUTO
  • LR_PASS
  • LR_FAIL

Esempio:

lr_end_transaction("Il mio_Login", LR_AUTO);
lr_end_transaction("001_Opening_Dashboard Nome", LR_PASS);
lr_end_transaction("Business_Workflow_Transaction Name", LR_FAIL);

Punti da notare:

  • Non dimenticare che stai lavorando con la "C" e questo è un linguaggio con distinzione tra maiuscole e minuscole.
  • Il carattere punto (.) non è consentito nel nome della transazione, sebbene sia possibile utilizzare spazi e trattino basso.
  • Se hai ramificato bene il tuo codice e aggiunto checkpoint per verificare la risposta dal server, puoi usare una gestione degli errori personalizzata, come LR_PASS o LR_FAIL. Altrimenti, puoi usare LR_AUTO e LoadRunner gestirà automaticamente l'errore del server (HTTP 500, 400 ecc.)
  • Quando applichi le transazioni, assicurati che non ci sia pensa_tempo estratto conto inserito o in altro modo, la transazione includerà sempre tale periodo.
  • Poiché LoadRunner richiede una stringa costante come nome della transazione, un problema comune quando si applica la transazione è la mancata corrispondenza della stringa. Se dai un nome diverso all'apertura e alla chiusura di una transazione, riceverai almeno 2 errori. Poiché la transazione che hai aperto non è mai stata chiusa, LoadRunner genererà un errore. Inoltre, la transazione che stai tentando di chiudere non è mai stata aperta, risultando quindi in un errore.
  • Puoi usare la tua intelligenza e rispondere a te stesso quale degli errori di cui sopra verrà segnalato per primo? Per convalidare la tua risposta, perché non commettere il tuo errore? Se hai risposto correttamente sei sulla buona strada. Se hai risposto male, devi concentrarti.
  • Poiché LoadRunner si occupa automaticamente della sincronizzazione delle richieste e delle risposte, non dovrai preoccuparti della risposta quando applichi le transazioni.

Comprendere il tempo di riflessione, i punti di incontro e i commenti

Punti d'incontro

Punti Rendezvous significa “punti di incontro”. È solo una riga di istruzione che indica a LoadRunner di introdurre la concorrenza. Si inseriscono punti di incontro negli script VUser per emulare il carico pesante dell'utente sul server.

I punti di incontro indicano al VUser di attendere durante l'esecuzione del test che più VUser arrivino a un determinato punto, in modo che possano eseguire contemporaneamente un'attività. Ad esempio, per emulare il carico di punta sul server della banca, è possibile inserire un punto di incontro che istruisce 100 VUser a depositare contanti sui propri conti contemporaneamente. Ciò può essere ottenuto facilmente utilizzando rendezvous.

Se i punti di incontro non sono posizionati correttamente, il VUser accederà a parti diverse dell'applicazione, anche per lo stesso script. Questo perché ogni VUser ottiene tempi di risposta diversi e quindi pochi utenti restano indietro.

Sintassi: lr_rendesvous(“Nome logico”);

migliori pratiche:

  • Prefisso un punto di incontro con "rdv_" per una migliore leggibilità del codice; ad esempio "rdv_Login"
  • Rimuovi qualsiasi dichiarazione relativa al tempo di riflessione immediato
  • Applicazione di punti d'incontro in una vista script (dopo la registrazione)

Punti d'incontro

Commenti

Aggiungi commenti per descrivere un'attività, una parte di codice o una riga di codice. I commenti aiutano a rendere il codice comprensibile per chiunque vi faccia riferimento in futuro. Forniscono informazioni su operazioni specifiche e separano due sezioni per distinguerle.

Puoi aggiungere commenti

  • Durante la registrazione (utilizzando lo strumento)
  • Dopo la registrazione (scrivendo direttamente nel codice)

migliori Pratica: contrassegna tutti i commenti nella parte superiore di ogni file di script

Inserimento di funzioni tramite menu

Sebbene tu possa scrivere direttamente semplici linee di codice, potresti aver bisogno di un indizio per richiamare una funzione. Puoi anche usare Steps Toolbox (noto come Insert Function prima della versione 12) per trovare e inserire qualsiasi funzione direttamente nel tuo script.

Puoi trovare la barra degli strumenti Passaggi in Visualizza àStrumenti Passaggi.

Inserimento di funzioni tramite menu

Si aprirà una finestra laterale, guarda l'istantanea:

Inserimento di funzioni tramite menu

Cos'è la parametrizzazione?

A parametro in VUGen è un contenitore che contiene un valore registrato che viene sostituito per vari utenti.

Durante l'esecuzione dello script (in VUGen o Controller), il valore da una fonte esterna (come .txt, XML o database) sostituisce il valore precedente del parametro.

La parametrizzazione è utile, ad esempio, per inviare valori dinamici (o univoci) al server; si desidera che un processo aziendale esegua 10 iterazioni, selezionando ogni volta un nome utente univoco.

Aiuta anche a stimolare comportamenti realistici nel sistema soggetto. Dai un'occhiata all'esempio seguente:

Esempi di problemi:

Il processo aziendale funziona solo per la data corrente che proviene dal server, quindi non può essere passato come richiesta hardcoded.

A volte, l'applicazione client passa un ID univoco al server (ad esempio session_id) affinché il processo possa continuare (anche per un singolo utente) – In tal caso, la parametrizzazione aiuta.

Spesso l'applicazione client mantiene una cache di dati inviati da e verso il server. Di conseguenza, il server non riceve un comportamento reale dell'utente (nel caso in cui il server esegua un algoritmo diverso a seconda dei criteri di ricerca). Anche se lo script VUser verrà eseguito correttamente, le statistiche sulle prestazioni tracciate non saranno significative. L'utilizzo di dati diversi tramite la parametrizzazione aiuta a emulare l'attività lato server (procedure ecc.) ed esercita il sistema.

Una data codificata nel VUser durante la registrazione potrebbe non essere più valida una volta trascorsa. La parametrizzazione della data consente l'esecuzione di VUser con successo sostituendo la data codificata. Tali campi o richieste sono i candidati giusti per la parametrizzazione.

Clicchi qui se il video non è accessibile

Impostazioni del tempo di esecuzione e il loro impatto sulla simulazione della VU

Le impostazioni del tempo di esecuzione hanno la stessa importanza dello script VUGen. Variando le configurazioni è possibile ottenere diversi progetti di test. Questo è il motivo per cui potresti ottenere risultati non ripetibili se le impostazioni di runtime non sono coerenti. Discutiamo ogni attributo uno per uno.

Esegui Logica

Run Logic definisce il numero di volte in cui verranno eseguite tutte le azioni, eccetto vuser_init e vuser_end.

Probabilmente questo rende più chiaro il motivo per cui LoadRunner suggerisce di mantenere tutto il codice di accesso in vuser_init e la parte di disconnessione in vuser_end, entrambi esclusivamente.

Se hai creato più azioni, ad esempio Accedi, Apri schermo, Calcola noleggio, Invia fondi, Controlla saldo e disconnettiti, per ciascun VUser si verificherà lo scenario seguente:

Tutti gli utenti VUser effettueranno l'accesso, eseguiranno Apri schermo, Calcola noleggio, Invii fondi, Controlla saldo - quindi - di nuovo Apri schermo, Calcola affitti ... e così via - ripetendo 10 volte - seguito dal logout (una volta).

Esegui Logica

Questa è un'impostazione potente che consente di agire più come un utente reale. Ricorda, un utente reale non effettua il login e il logout ogni volta: di solito ripete gli stessi passaggi.

Quante volte clicchi su "Posta in arrivo" quando controlli la posta elettronica prima di disconnetterti?

Pacing

Questo è importante. La maggior parte delle persone non sono in grado di comprendere la differenza tra ritmo e tempo di riflessione. L'unica differenza è, "La stimolazione si riferisce al ritardo tra le iterazioni" mentre il tempo di riflessione è il ritardo tra 2 passaggi qualsiasi.

L'impostazione consigliata dipende dal progetto del test. Tuttavia, se desideri avere un carico aggressivo, considera di optare per "Non appena termina l'iterazione precedente"

Pacing

Log

Un registro (come generalmente inteso) è una contabilità di tutti gli eventi durante l'esecuzione di LoadRunner. Puoi abilitare il log per sapere cosa sta succedendo tra la tua applicazione e il tuo server.

LoadRunner offre un potente meccanismo di registrazione che è robusto e scalabile di per sé. Ti consente di conservare solo il "Registro standard" o un registro esteso dettagliato e configurabile o di disabilitarlo del tutto.

Un registro standard è informativo e facilmente comprensibile. Contiene la giusta quantità di conoscenze di cui generalmente avrai bisogno per risolvere i problemi degli script VUser.

Nel caso del registro esteso, tutte le informazioni del registro standard costituiscono un sottoinsieme. Inoltre, è possibile avere la sostituzione dei parametri. Ciò indica al componente LoadRunner di includere informazioni complete su tutti i parametri (dalla parametrizzazione) comprese le richieste, nonché i dati di risposta.

Se includi "Dati restituiti dal server", il tuo registro sarà lungo. Ciò includerà tutto l'HTML, i tag, le risorse e le informazioni non relative alle risorse incluse direttamente nel registro. L'opzione è valida solo se è necessaria una risoluzione seria dei problemi. Di solito, questo rende il file di registro di dimensioni molto grandi e non facilmente comprensibile.

Come avrai già intuito, se opti per "Advance Trace", il tuo file di registro sarà enorme. Devi provarlo. Noterai che anche la quantità di tempo impiegata da VUGen è aumentata in modo significativo, anche se questo non avrà alcun impatto sul tempo di risposta della transazione segnalato da VUGen. Tuttavia, queste sono informazioni molto avanzate e potrebbero essere utili se comprendi l'applicazione in questione, la comunicazione client-server tra la tua applicazione e l'hardware, nonché i dettagli del livello di protocollo. Di solito, queste informazioni sono morte per essenza poiché richiedono sforzi estremi per essere comprese e risolvere i problemi.

Log

Suggerimenti:

  • Non importa quanto tempo impiega VUGen quando il registro è abilitato, non ha alcun impatto sul tempo di risposta della transazione. HP definisce questo fenomeno “tecnologia all’avanguardia”.
  • Disabilita il registro se non è richiesto.
  • Disabilita il registro quando hai finito con gli script. L'inclusione di script con la registrazione abilitata causerà un rallentamento dell'esecuzione del controller e riporterà messaggi fastidiosi.
  • La disabilitazione del registro aumenterà la capacità del numero massimo di utenti che puoi simulare da LoadRunner.
  • Prendi in considerazione l'utilizzo di "Invia messaggio solo quando si verifica un errore": questo silenzierà i messaggi di informazioni non necessari e riporterà solo i messaggi relativi agli errori.

Pensa ai tempi

Think Time è semplicemente il ritardo tra due passaggi.

Think Time aiuta a replicare il comportamento dell'utente poiché nessun utente reale può utilizzare alcuna applicazione come una macchina (VUGen). VUGen genera automaticamente il tempo di riflessione. Hai ancora il controllo completo per rimuovere, moltiplicare o fluttuare la durata del tempo di riflessione.

Per capirne di più, ad esempio, un utente può aprire una schermata (ovvero una risposta seguita da una richiesta) e quindi fornire nome utente e password prima di premere invio. La successiva interazione dell'applicazione con il server avverrà quando si fa clic su "Accedi". Il tempo impiegato da un utente per digitare il nome utente e la password è Think Time in LoadRunner.

Pensa ai tempi

Se stai cercando di simulare un carico aggressivo sull'applicazione, valuta la possibilità di disabilitare completamente il tempo di riflessione.

Tuttavia, per simulare un comportamento reale, puoi "Tempo di riflessione casuale dell'utente" e impostare le percentuali come desiderato.

Prendi in considerazione l'utilizzo di Limita il tempo di riflessione a un periodo legittimo. Di solito, 30 secondi sono abbastanza buoni.

Simulazione della velocità

La simulazione della velocità si riferisce semplicemente alla capacità di larghezza di banda per ciascuna macchina client.

Dal momento che stiamo simulando migliaia di VUser tramite LoadRunner, è sorprendente quanto sia semplice LoadRunner controllare la simulazione della larghezza di banda/velocità di rete.

Se sei cliente e accedi alla tua applicazione su 128 Kbps, puoi controllarla da qui. Potrai simulare un "comportamento reale" che dovrebbe aiutare a ottenere le giuste statistiche sulle prestazioni.

Simulazione della velocità

Il miglior consiglio è impostare su Utilizza larghezza di banda massima. Ciò consentirà di ignorare eventuali colli di bottiglia delle prestazioni relativi alla rete e di concentrarsi prima su eventuali problemi potenziali nell'applicazione. Puoi sempre eseguire il test più volte per vedere comportamenti diversi in circostanze diverse.

Emulazione del browser

L'esperienza dell'utente non dipende dal browser utilizzato dall'utente finale. Chiaramente, questo va oltre lo scopo delle misure di performance. Tuttavia, puoi scegliere quale browser desideri emulare.

Emulazione del browser

Puoi risponderti quando esattamente sarà davvero importante per te selezionare il browser giusto in questa configurazione?

Utilizzerai questa configurazione se l'applicazione in oggetto è un'applicazione Web, che restituisce risposte diverse per browser diversi. Ad esempio, puoi vedere immagini e contenuti diversi per IE e Firefox ecc.

Un'altra impostazione importante è Simula cache del browser. Se vuoi misurare il tempo di risposta quando la cache è abilitata, seleziona questa casella. Se stai cercando la situazione peggiore, questa ovviamente non è una considerazione.

Il download di risorse non HTML consentirà a LoadRunner di scaricare qualsiasi CSS, JS e altri contenuti multimediali. Questo dovrebbe essere mantenuto controllato. Tuttavia, se desideri eliminarlo dalla progettazione del test delle prestazioni, puoi deselezionarlo.

delega

È meglio eliminare completamente il proxy dal tuo Ambiente di test – questo renderà i risultati del test inaffidabili. Tuttavia, potresti affrontare situazioni in cui è inevitabile. In una situazione del genere, LoadRunner ti facilita con le impostazioni proxy.

Lavorerai (o dovresti lavorare) senza l'impostazione proxy. Puoi ottenerlo dal tuo browser predefinito. Tuttavia, non dimenticare di verificare quale browser è impostato come predefinito e quale è la configurazione proxy per il browser predefinito.

delega

Se stai utilizzando un proxy e richiede l'autenticazione (o uno script), puoi fare clic sul pulsante Autentica che porta ad una nuova finestra. Fare riferimento allo screenshot seguente.

delega

Utilizzare questa schermata per fornire nome utente e password per autenticarsi sul server proxy. Fare clic su OK per chiudere la schermata.

Congratulazioni. Hai finito con la configurazione del tuo script VUGen. Non dimenticare di configurarlo per tutti i tuoi script VUser.

Newsletter quotidiana di Guru99

Inizia la giornata con le ultime e più importanti notizie sull'intelligenza artificiale, pubblicate in questo momento.