Esempio di correlazione in LoadRunner con web_reg_save_param
⚡ Riepilogo intelligente
La funzionalità di correlazione di LoadRunner cattura un valore dinamico del server, come ad esempio un ID di sessione, e lo utilizza nelle richieste successive, in modo che uno script VuGen registrato venga riprodotto correttamente anziché fallire a causa di dati obsoleti.

Cos'è la correlazione?
La correlazione, come suggerisce il nome, è un meccanismo che definisce una relazione tra due variabili o entità. Un dizionario la definisce come "relazione statistica tra due o più variabili tale per cui variazioni sistematiche nelle altre variabili si accompagnano a variazioni sistematiche nel valore di una delle due".
Nota del marchio: questo strumento è stato spedito come HP e poi Micro Focus LoadRunner, ed è adesso OpenText Ingegneria delle prestazioni professionali. Ogni funzione di correlazione sottostante rimane invariata e il fornitore scrive il generatore di script VuGen.
Perché abbiamo bisogno della correlazione?
Cerchiamo di comprendere la correlazione con il seguente scenario.
Considera che stai registrando uno script utilizzando LoadRunner.
La comunicazione client-server durante la registrazione avviene come segue, e il diagramma la riassume:
- Durante la registrazione, il client invia una richiesta al server per avviare una sessione
- Un server riceve la richiesta e assegna un nuovo ID di sessione ABC
- Il client memorizza l'ID sessione ABC nello script.
- Il client avvia la sessione con ID ABC e invia una richiesta a un server per consentirgli di registrare
- Il Server riconosce l'ID ABC e consente al client di registrare lo script
Ora, analizziamo la comunicazione client-server durante la riproduzione, illustrata dopo questi passaggi:
- Durante la riproduzione, un client invia una richiesta al server per avviare una sessione
- Un server riceve la richiesta e assegna un nuovo ID di sessione XYZ
- Un client avvia la sessione con l'ID di sessione precedentemente registrato ABC e invia una richiesta al server per consentirgli di registrare
- Un server non è in grado di identificare l'ID ABC poiché si aspettava l'ID XYZ assegnato e la sessione fallisce.
Abbiamo bisogno di una soluzione in grado di acquisire e analizzare il valore dinamico inviato in fase di esecuzione e di restituirlo al server. Ecco come si presenterà la comunicazione client-server con questa soluzione, come mostrato nel diagramma seguente:
- Durante la riproduzione, un client invia una richiesta al server per avviare una sessione
- Un server riceve la richiesta e assegna un nuovo ID di sessione ZZZ
- Un client analizza questo nuovo ID di sessione ZZZ dalla richiesta.
- Un client invia una richiesta per avviare la sessione con id ZZZ
- Un server riconosce l'ID ZZZ e consente al client di riprodurre lo script
Questo non è altro che correlazione.
Il breve video qui sotto illustra lo stesso problema di registrazione e riproduzione.
Clicchi Qui. se il video non è accessibile
Nel caso di VuGen, la correlazione è una relazione di vincolo tra una risposta e qualsiasi richiesta precedente.
Esistono diverse situazioni in cui una richiesta si basa su una risposta precedentemente ricevuta dal server, come un ID di sessione o una data e ora del 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 per "catturare" la risposta del server e associarla alle richieste previste dal server. In LoadRunner, questo meccanismo è generalmente chiamato "correlazione".
In parole semplici, la soluzione utilizzando la correlazione è:
- Cattura il valore di output da un passaggio
- Utilizzare il valore acquisito sopra come input per tutti i passaggi successivi
In VuGen/LoadRunner la correlazione viene classificata in 2 categorie:
- Correlazione automatica
- Correlazione manuale
Correlazione automatica
LoadRunner fornisce un meccanismo per eseguire facilmente la correlazione in modo automatico.
VuGen richiederà l'esecuzione di uno script registrato almeno due volte, in modo da poter confrontare internamente i diversi valori presenti 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 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.
Fai clic su Registra => Opzioni di registrazione (oppure fai clic su Ctrl + F7), mostrato nel menu sottostante,
Si aprirà la finestra sottostante:
Fare clic su Correlazione => Configurazione: si aprirà la finestra sottostante.
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:
Affinché la correlazione automatica funzioni, è necessario assicurarsi che l'opzione "Scansione regole" sia selezionata. Se si fa clic su "Correla automaticamente i valori trovati", VuGen non richiederà la scelta una volta individuato un potenziale valore di correlazione, ma lo correggerà direttamente.
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.
Fai clic sul pulsante della barra degli strumenti mostrato qui Dal menu, VuGen rigenererà lo script (senza bisogno di registrarlo) con le nuove configurazioni. VuGen aggiungerà automaticamente il codice necessario per gestire la correlazione. Analizzeremo l'esempio più in dettaglio nella sezione 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:
- Registra una sceneggiatura
- Riproduci la sceneggiatura
- Identificare i valori da correlare
- Selezionare i valori e fare clic sul pulsante di correlazione automatica
- 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:
- Determinare il valore da acquisire
- Trova i limiti di testo destro e sinistro del valore da acquisire (WEB)
- Trova quale occorrenza dei confini del testo deve essere utilizzata
- Aggiungi una funzione web_reg_save_param allo script, sopra la parte di codice che richiede la pagina con il valore da acquisire
- Aggiungere un nome di parametro, il limite sinistro, il limite destro e l'occorrenza alla funzione
- Parametrizzare il valore dinamico nello script ogni volta che si verifica
- 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);
Code Nota: Entrambi i frammenti appaiono esattamente come pubblicati. Osservate gli ordinali: Ord=l and RelFrameId=l usa una L minuscola e VuGen si aspetta la cifra 1.
La correlazione manuale può essere eseguita tramite VUser Comparison. I passaggi nel metodo di correlazione VUser Comparison possono essere suddivisi come di seguito:
- Identificare i valori dinamici che devono essere correlati
- Trova la risposta del server contenente il valore dinamico
- Cattura il valore dinamico in un parametro
- Sostituisci ogni occorrenza del valore Dynamic con il parametro
- Verifica modifiche
Comprensione della funzione web_reg_save_param
VuGen offre diverse 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
Nota sulla versione: Le versioni attuali di VuGen trattano web_reg_save_param_ex in qualità di successore della funzione originaria, e web_reg_save_param_regexp come scelta quando i confini stessi cambiano. L'esempio originale è ancora valido.
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 il cursore sulla funzione e fai clic su F1 – familiarizza con Guida di VuGen e fatene un'abitudine. Dovrete affrontarla spesso lavorando in questo settore.
Ecco i dettagli della funzione:
web_reg_save_param(Nome parametro, Confine sinistro, Confine destro)
Elenco degli attributi
La tabella seguente elenca tutti gli attributi accettati dalla funzione, indicando se sono obbligatori e cosa controllano.
| Attributo | Necessario? | Ciò che fa |
| convertire | Opzionale | HTML_TO_URL converte i dati codificati in HTML in un URL-formato dati codificato. HTML_TO_TEXT converte i dati codificati in HTML in formato testo semplice. |
| Ignora reindirizzamenti | Opzionale, impostazione predefinita "Ignora reindirizzamenti=No" | Se impostato su Sì e la risposta del server è un'informazione di reindirizzamento (codice di stato HTTP 300-303, 307), tale risposta non viene analizzata tramite ricerca. La richiesta GET viene inviata alla posizione reindirizzata e la ricerca viene eseguita sulla risposta presente in quella posizione. |
| LB | Obbligatorio | Il limite sinistro del parametro o dei dati dinamici. Se non si specifica un valore LB, vengono utilizzati tutti i caratteri dall'inizio dei dati come limite. I parametri di limite distinguono tra maiuscole e minuscole. Per personalizzare ulteriormente il testo di ricerca, utilizzare uno o più flag di testo. |
| NON TROVATO | Opzionale, predefinito “errore” | Gestione del caso in cui un limite non viene trovato e viene generata una stringa vuota. "Not found=error" genera un errore. "Not found=warning" ("Not found=empty" nelle versioni precedenti) imposta invece il conteggio dei parametri a 0 e continua, il che è ideale quando si desidera verificare se la stringa è stata trovata senza interrompere lo script. Con l'opzione "Continua in caso di errore" abilitata, lo script continua anche in caso di "errore", ma il log esteso lo registra. |
| ORD | Opzionale, valore predefinito 1 | Indica la posizione ordinale o l'istanza della corrispondenza. Se si specifica "Tutti", i valori dei parametri vengono salvati in un array. L'utilizzo di Instance al posto di ORD è supportato per compatibilità con le versioni precedenti, ma è deprecato. |
| RB | Obbligatorio | Il limite destro del parametro o dei dati dinamici. Se non si specifica un valore RB, vengono utilizzati tutti i caratteri fino alla fine dei dati come limite. I parametri di limite distinguono tra maiuscole e minuscole. Per personalizzare ulteriormente il testo di ricerca, utilizzare uno o più flag di testo. |
| RelFrameID | Opzionale | Il livello gerarchico della pagina HTML rispetto alla richiesta URLI valori possibili sono TUTTI o un numero. RelFrameID non è supportato negli script a livello di interfaccia grafica. |
| SalvaLen | Opzionale, predefinito -1 | La lunghezza di una sottostringa del valore trovato, a partire dall'offset specificato, da salvare nel parametro. Il valore predefinito viene salvato alla fine della stringa. |
| Salva Offset | Opzionale, valore predefinito 0 | L'offset di una sottostringa del valore trovato, da salvare nel parametro. Il valore dell'offset deve essere non negativo. |
| Cerca | Opzionale, predefinito TUTTO | Ambito della ricerca: dove cercare i dati delimitati. I valori possibili sono Intestazioni (cerca solo nelle intestazioni), Corpo (cerca solo nei dati del corpo, escluse le intestazioni), Nessuna risorsa (cerca solo nel corpo HTML, escludendo intestazioni e risorse) o TUTTO (cerca nel corpo, nelle intestazioni e nelle risorse). |
Una volta che lo script viene riprodotto correttamente, aggiungi parametrizzazione, transazioni e impostazioni di runtime, eseguilo dal Controllere leggere il risultato in Analisi come parte di un più ampio Test di Performance and Caricare i test.







