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: convertire i dati codificati in HTML in un URL-formato dati codificato

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 rispetto a quella richiesta URLI 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.

Riassumi questo post con: