Correlazione in LoadRunner con Web_Reg_Save_Param Esempio

Cos'è la correlazione?

La correlazione, come suggerisce il nome, è un meccanismo per definire una relazione tra due variabili o entità. Un dizionario lo definisce come "relazione statistica tra due o più variabili tale che i cambiamenti sistematici nell'altra accompagnano i cambiamenti sistematici nel valore di una variabile".

Perché abbiamo bisogno della correlazione?

Cerchiamo di capire la correlazione con il seguente scenario.

Considera che stai registrando uno script utilizzando LoadRunner.

Comunicazione client-server

  1. Durante la registrazione, il client invia una richiesta al server per avviare una sessione
  2. Un server riceve la richiesta e assegna un nuovo ID di sessione ABC
  3. Il client memorizza l'ID sessione ABC nello script.
  4. Il client avvia la sessione con ID ABC e invia una richiesta a un server per consentirgli di registrare
  5. Il Server riconosce l'ID ABC e consente al client di registrare lo script

Correlazione durante la registrazione

  1. Ora studiamo la comunicazione client-server durante la riproduzione
  2. Durante la riproduzione, un client invia una richiesta al server per avviare una sessione
  3. Un server riceve la richiesta e assegna un nuovo ID di sessione XYZ
  4. Un client avvia la sessione con l'ID di sessione ABC registrato in precedenza e invia una richiesta al server per consentirgli di registrare
  5. Un server non è in grado di identificare l'ID ABC poiché si aspettava l'ID XYZ assegnato e la sessione fallisce.

Correlazione durante la riproduzione

Abbiamo bisogno di una soluzione che acquisisca, analizzi il valore dinamico inviato in fase di esecuzione e restituisca questo valore al server. Ecco come apparirà la comunicazione client-server con questa soluzione

  1. Durante la riproduzione, un client invia una richiesta al server per avviare una sessione
  2. Un server riceve la richiesta e assegna un nuovo ID di sessione ZZZ
  3. Un client analizza questo nuovo ID di sessione ZZZ dalla richiesta.
  4. Un client invia una richiesta per avviare la sessione con id ZZZ
  5. Un server riconosce l'ID ZZZ e consente al client di riprodurre lo script

Abbiamo bisogno di correlazione

Questo non è altro che correlazione.

Clicchi qui se il video non è accessibile

Nel caso di VUGen, la correlazione è una relazione vincolante tra una risposta e qualsiasi richiesta precedente.

Esistono varie situazioni in cui una richiesta si basa su una risposta precedentemente ricevuta dal server, ad esempio un ID sessione, data/ora del server recuperata dal server. Questi valori sono diversi ogni volta che si esegue un'applicazione o si registra uno script. Ovviamente, se l'esecuzione dello script dipende da un valore restituito dal server, significa che è necessario trovare un meccanismo in cui è possibile “catturare” la risposta del server e allegarla a quelle richieste che il server si aspetta. Questa è in genere chiamata correlazione in LoadRunner.

In parole semplici, la soluzione utilizzando la correlazione è:

  1. Cattura il valore di output da un passaggio
  2. Utilizzare il valore acquisito sopra come input per tutti i passaggi successivi

La correlazione è classificata in 2 categorie in VUGen/LoadRunner:

  • Correlazione automatica
  • Correlazione manuale

Correlazione automatica

LoadRunner fornisce un meccanismo per eseguire facilmente la correlazione in modo automatico.

VUGen richiederà di eseguire uno script registrato almeno due volte in modo che possa confrontare internamente i valori variabili nella risposta del server.

La correlazione automatica può essere classificata in 3 categorie:

  • Correlazione di rilevamento automatico
  • Correlazione basata su regole
  • Correlare tutte le affermazioni
Nome regola Quando usare
Correlazione con rilevamento automatico Rileva e correla i dati dinamici per i server applicativi supportati da HP LoadRunner
Basato su regole Utilizzato quando si lavora con un server delle applicazioni non supportato di cui è noto il contesto.
Correlare tutto Aiuta a correlare tutti i dati dinamici in modo cieco.

Sebbene la correlazione automatica sembri più semplice, può essere soggetta a errori e funziona in non più del 5% dei casi. È sempre consigliabile utilizzare la correlazione manuale.

Per configurare la correlazione automatica al momento della registrazione, eseguire la configurazione seguente in Impostazione ora di registrazione dopo che uno script è stato registrato.

Fare clic su Registra => Opzioni di registrazione (o fare clic su Ctrl +F7),

Correlazione automatica

Si aprirà la finestra sottostante:

Correlazione automatica

Fare clic su Correlazione => Configurazione: si aprirà la finestra sottostante.

Correlazione automatica

Qui è necessario contrassegnare come verificato rispetto a tutte le applicazioni (ASPNET) ecc. utilizzate nell'applicazione in questione. Sul lato destro puoi vedere le regole che rileveranno i possibili candidati per la correlazione, ad esempio _VIEWSTATE. Puoi anche aggiungere più applicazioni o regole personalizzate facendo clic sul pulsante Nuova regola.

Puoi anche fare clic su REGOLE, vedrai quanto segue:

Correlazione automatica

Affinché la correlazione automatica funzioni, è necessario assicurarsi che Scansione regole sia contrassegnata come selezionata. Se si fa clic su Correla automaticamente i valori trovati, VUGen non ti chiederà la scelta una volta trovato un candidato alla correlazione, ma li correlerà semplicemente.

Più avanti capiremo l'API utilizzata per la correlazione. Tuttavia, è consigliabile usare il confronto HTML anziché il confronto di testo.

Dopo aver selezionato una regola, fare clic sul pulsante OK per chiudere la finestra.

Fare clic su Correlazione automaticadal menu e VUGen rigenererà lo script (senza dover registrare) con nuove configurazioni. VUGen aggiungerà automaticamente la parte di codice richiesta per gestire la correlazione. Esamineremo il campione in modo più dettagliato in Correlazione manuale.

Tieni presente che se esegui la correlazione manualmente o utilizzi la correlazione automatica, la parte di codice conterrà esattamente la stessa sintassi e funzione.

Passaggi per correlare automaticamente uno script:

  1. Registra una sceneggiatura
  2. Riproduci la sceneggiatura
  3. Identificare i valori da correlare
  4. Selezionare i valori e fare clic sul pulsante di correlazione automatica
  5. Verificare lo script eseguendo nuovamente. Una corsa riuscita significa una correlazione riuscita.

Suggerimento:

  • La correlazione aiuta a eseguire lo script con valori diversi
  • La correlazione riduce anche la dimensione dello script

Correlazione manuale

La correlazione manuale riguarda la scrittura del codice direttamente nello script per soddisfare valori in continua evoluzione. Possiamo suddividerlo nei passaggi seguenti:

  1. Determinare il valore da acquisire
  2. Trova i limiti di testo destro e sinistro del valore da acquisire (WEB)
  3. Trova quale occorrenza dei confini del testo deve essere utilizzata
  4. Aggiungi una funzione web_reg_save_param allo script, sopra la parte di codice che richiede la pagina con il valore da acquisire
  5. Aggiungere un nome di parametro, il limite sinistro, il limite destro e l'occorrenza alla funzione
  6. Parametrizzare il valore dinamico nello script ogni volta che si verifica
  7. Verificare la corretta esecuzione
web_reg_save_param (" OracleAppJSESSIONID3",
	"LB/IC=JSESSIONID=",
	"RB/IC=;",
	"Ord=l",
	"Search=headers",
	"RelFrameId=l",
	LAST);

web_reg_save_param("Siebel_Analytic_ViewState2",
	"LB/IC=ViewState\" value=\"",
	"RB/IC=\"",
	"Ord=1",
	"Search=Body",
	"RelFrameId=l",
	LAST);

La correlazione manuale può essere eseguita tramite VUser Comparison. I passaggi nel metodo di correlazione VUser Comparison possono essere suddivisi come di seguito:

  1. Identificare i valori dinamici che devono essere correlati
  2. Trova la risposta dei server contenente il valore dinamico
  3. Cattura il valore dinamico in un parametro
  4. Sostituisci ogni occorrenza del valore Dynamic con il parametro
  5. Verifica modifiche

Comprensione della funzione Web_reg_save_param

VUGen fornisce più funzioni o API per correlare i candidati, tra cui:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Mentre qui viene fornita una breve introduzione, per una comprensione dettagliata delle funzioni e dei loro parametri, apri VUGen, scrivi funzione (o usa Steps Toolbox), sposta un cursore sulla funzione e clicca su F1: familiarizza con la guida di VUGen e prendine l'abitudine. Dovrai occupartene molto quando lavori nel settore.

Ecco i dettagli della funzione:

web_reg_save_param(Nome parametro, Confine sinistro, Confine destro)

Elenco degli attributi

Convertire: I valori possibili sono:

HTML_TO_URL: converte i dati con codifica HTML in un formato dati con codifica URL

HTML_TO_TEXT: converte i dati codificati HTML in formato testo normale; questo attributo è facoltativo.

Ignora reindirizzamenti: Se viene specificato "Ignora reindirizzamenti=Sì" e la risposta del server contiene informazioni di reindirizzamento (codice di stato HTTP 300-303, 307), la risposta non viene cercata. Invece, dopo aver ricevuto una risposta di reindirizzamento, la richiesta GET viene inviata alla posizione reindirizzata e la ricerca viene eseguita sulla risposta da quella posizione.

Questo attributo è facoltativo. L'impostazione predefinita è "Ignora reindirizzamenti = No".

LIBBRE: Il limite sinistro del parametro o dei dati dinamici. Se non si specifica un valore LB, verranno utilizzati tutti i caratteri dall'inizio dei dati come limite. I parametri di confine fanno distinzione tra maiuscole e minuscole. Per personalizzare ulteriormente il testo di ricerca, utilizzare uno o più flag di testo. Questo attributo è obbligatorio. Vedere la sezione Argomenti di confine.

NON TROVATO: l'opzione di gestione quando non viene trovato un limite e viene generata una stringa vuota.

"Non trovato=errore", il valore predefinito, provoca la generazione di un errore quando non viene trovato un limite.

"Non trovato=avviso" ("Non trovato=vuoto" nelle versioni precedenti), non genera errori. Se il limite non viene trovato, imposta il conteggio dei parametri su 0 e continua l'esecuzione dello script. L'opzione "avviso" è l'ideale se vuoi vedere se la stringa è stata trovata, ma non vuoi che lo script fallisca.

Note:: Se Continua in caso di errore è abilitato per lo script, anche quando NOTFOUND è impostato su "errore", lo script continua quando il limite non viene trovato, ma viene scritto un messaggio di errore nel file di registro esteso.

Anche questo attributo è facoltativo.

ORD: indica la posizione ordinale o l'istanza della corrispondenza. L'istanza predefinita è 1. Se si specifica "Tutto", i valori dei parametri vengono salvati in un array. Questo attributo è facoltativo.

Nota: l'uso di Istanza invece di ORD è supportato per compatibilità con le versioni precedenti, ma deprecato.

RB: il limite destro del parametro o dei dati dinamici. Se non si specifica un valore RB, verranno utilizzati tutti i caratteri fino alla fine dei dati come limite. I parametri di confine fanno distinzione tra maiuscole e minuscole. Per personalizzare ulteriormente il testo di ricerca, utilizzare uno o più flag di testo. Questo attributo è obbligatorio. Vedere la sezione Argomenti di confine.

RelFrameID: il livello gerarchico della pagina HTML relativo all'URL richiesto. I valori possibili sono TUTTI o un numero. Fare clic su Attributo RelFrameID per una descrizione dettagliata. Questo attributo è facoltativo.

Nota: RelFrameID non è supportato negli script a livello di GUI.

SalvaLen: La lunghezza di una sottostringa del valore trovato, dall'offset specificato, da salvare nel parametro. Questo attributo è facoltativo. Il valore predefinito è -1, che indica di salvare fino alla fine della stringa.

Salva Offset: L'offset di una sottostringa del valore trovato, da salvare nel parametro. Il valore di offset deve essere non negativo. Il valore predefinito è 0. Questo attributo è facoltativo.

Ricerca: L'ambito della ricerca: dove cercare i dati delimitati. I valori possibili sono Intestazioni (cerca solo nelle intestazioni), Corpo (cerca solo i dati del corpo, non le intestazioni), Nessuna risorsa (cerca solo il corpo HTML, escludendo tutte le intestazioni e le risorse) o TUTTO (corpo della ricerca, intestazioni e risorse). Il valore predefinito è TUTTI. Questo attributo è facoltativo ma generalmente preferito.