Ejemplo de correlación en LoadRunner con web_reg_save_param
⚡ Resumen inteligente
La función de correlación en LoadRunner captura un valor dinámico del servidor, como un ID de sesión, y lo utiliza en solicitudes posteriores para que un script VuGen grabado se reproduzca correctamente en lugar de fallar por datos obsoletos.
¿Qué es la correlación?
La correlación, como su nombre indica, es un mecanismo para definir una relación entre dos variables o entidades. Un diccionario la define como “una relación estadística entre dos o más variables, de tal manera que los cambios sistemáticos en una de ellas acompañan a los cambios sistemáticos en el valor de la otra”.
Nota de marca: Esta herramienta se envió como HP y luego Micro Focus LoadRunner, y es ahora OpenText Ingeniería de Desempeño Profesional. Todas las funciones de correlación a continuación permanecen sin cambios, y el proveedor deletrea el generador de scripts. VuGen.
¿Por qué necesitamos correlación?
Analicemos la correlación con el siguiente escenario.
Suponga que está grabando un guion usando LoadRunner.
La comunicación cliente-servidor durante la grabación se desarrolla de la siguiente manera, y el diagrama la resume:
- Durante la grabación, el cliente envía una solicitud al servidor para iniciar una sesión.
- Un servidor recibe la solicitud y asigna un nuevo ID de sesión ABC
- El cliente almacena la identificación de sesión ABC en el script.
- El cliente inicia la sesión con la ID ABC y envía una solicitud a un servidor para permitirle grabar.
- El Servidor reconoce el ID ABC y permite al cliente grabar el script
Ahora, estudiemos la comunicación cliente-servidor durante la reproducción, que se muestra después de estos pasos:
- Durante la reproducción, un cliente envía una solicitud al servidor para iniciar una sesión.
- Un servidor recibe la solicitud y asigna un nuevo ID de sesión XYZ
- Un cliente inicia la sesión con el ID de sesión previamente registrado ABC y envía una solicitud al servidor para permitirle grabar.
- Un servidor no puede identificar el ID ABC porque esperaba el ID XYZ que ha asignado y la sesión falla.
Necesitamos una solución que pueda capturar y analizar el valor dinámico enviado en tiempo de ejecución y devolverlo al servidor. Así es como se verá la comunicación cliente-servidor con esta solución, como se muestra en el siguiente diagrama:
- Durante la reproducción, un cliente envía una solicitud al servidor para iniciar una sesión.
- Un servidor recibe la solicitud y asigna un nuevo ID de sesión ZZZ
- Un Cliente analiza esta nueva identificación de sesión ZZZ a partir de la solicitud.
- Un Cliente envía una solicitud para iniciar sesión con id ZZZ
- Un servidor reconoce el ID ZZZ y permite al cliente reproducir el script
Esto no es más que multidominio.
El breve vídeo que aparece a continuación explica el mismo problema de grabación y reproducción.
Haga clic en aquí si el video no es accesible
En el caso de VuGen, la correlación es una relación vinculante entre una respuesta y cualquier solicitud precedente.
Existen diversas situaciones en las que una solicitud se basa en una respuesta previa del servidor, como un ID de sesión o la fecha y hora del servidor. Estos valores varían cada vez que se ejecuta una aplicación o se graba un script. Obviamente, si la ejecución del script depende de un valor devuelto por el servidor, es necesario encontrar un mecanismo para capturar la respuesta del servidor y asociarla a las solicitudes que este espera. En LoadRunner, esto se conoce como correlación.
En palabras simples, la solución usando Correlación es:
- Capturar el valor de salida de un paso
- Utilice el valor capturado anteriormente para que sirva como entrada para todos los pasos posteriores.
La correlación se clasifica en 2 categorías en VuGen/LoadRunner:
- Correlación automática
- correlación manual
Correlación automática
LoadRunner proporciona un mecanismo para realizar fácilmente la correlación de forma automática.
VuGen le pedirá que ejecute un script grabado al menos dos veces para que pueda comparar internamente los diferentes valores en la respuesta del servidor.
La correlación automática se puede clasificar en 3 categorías:
- Correlación de detección automática
- Correlación basada en reglas
- Correlacionar todas las declaraciones
| Nombre de la regla | Cuándo usar |
| Correlación de detección automática | Detectar y correlacionar datos dinámicos para servidores de aplicaciones compatibles con LoadRunner. |
| Basado en reglas | Se utiliza cuando se trabaja con un servidor de aplicaciones no compatible cuyo contexto se conoce. |
| Correlacionar todo | Ayuda a correlacionar todos los datos dinámicos a ciegas. |
Aunque la correlación automática parece más simple, puede ser propensa a errores y no funciona en más del 5% de los casos. Siempre es recomendable utilizar la correlación manual.
Para configurar la correlación automática en el momento de la grabación, realice la siguiente configuración en Configuración de tiempo de grabación después de que se haya grabado un guión.
Haz clic en Grabar => Opciones de grabación (o pulsa Ctrl + F7), que se muestra en el menú inferior.
Se abrirá la siguiente ventana:
Haga clic en Correlación =>Configuración; se abrirá la siguiente ventana.
Aquí, debe marcar como verificadas con todas las aplicaciones (ASPNET), etc., que se utilizan en su aplicación en cuestión. En el lado derecho, puede ver las reglas que detectarán posibles candidatos para la correlación, p. _VERESTADO. También puede agregar más aplicaciones o reglas personalizadas haciendo clic en el botón Nueva regla.
También puede hacer clic en REGLAS, verá lo siguiente:
Para que la correlación automática funcione, asegúrese de que la opción "Análisis de reglas" esté marcada. Si hace clic en "Correlacionar automáticamente los valores encontrados", VuGen no le pedirá que elija una opción cuando encuentre un posible valor de correlación; simplemente los correlacionará.
Más adelante entenderemos la API que se utiliza para la correlación. Sin embargo, es recomendable utilizar la comparación HTML en lugar de la comparación de texto.
Una vez que haya seleccionado alguna regla, haga clic en el botón Aceptar para cerrar las ventanas.
Haga clic en el botón de la barra de herramientas que se muestra aquí. Seleccione la opción correspondiente en el menú y VuGen regenerará el script (sin necesidad de grabar) con las nuevas configuraciones. VuGen añadirá automáticamente el código necesario para gestionar la correlación. Analizaremos el ejemplo con más detalle en la sección de Correlación manual.
Tenga en cuenta que si realiza la correlación manualmente o utiliza la correlación automática, el fragmento de código contendrá exactamente la misma sintaxis y función.
Pasos para correlacionar automáticamente un guión:
- Grabar un guión
- Reproducir guión
- Identificar los valores a correlacionar.
- Seleccione los valores y haga clic en el botón de correlación automática
- Verifique el script ejecutándolo nuevamente. Una ejecución exitosa significa una correlación exitosa.
Tip:
- La correlación ayuda a ejecutar su script con diferentes valores
- La correlación también reduce el tamaño de su guión.
Correlación manual
La correlación manual consiste en escribir código directamente en su script para atender valores en constante cambio. Podemos dividirlo en los siguientes pasos:
- Determinar el valor a capturar.
- Encuentre los límites de texto derecho e izquierdo del valor a capturar (WEB)
- Encuentre qué aparición de los límites del texto se debe utilizar
- Agregue una función web_reg_save_param al script, encima del fragmento de código que solicita la página con el valor a capturar
- Agregue un nombre de parámetro, límite izquierdo, límite derecho y ocurrencia a la función
- Parametrizar el valor dinámico en el script cada vez que ocurra
- Verificar la ejecución correcta
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: Ambos fragmentos aparecen exactamente como se publicaron. Fíjese en los ordinales: Orden=l y RelFrameId=l Utilice una L minúscula y VuGen espera el dígito 1.
La correlación manual se puede realizar mediante VUser Comparison. Los pasos del método de correlación de comparación de VUser se pueden dividir de la siguiente manera:
- Identificar los valores dinámicos que deben correlacionarse
- Encuentre la respuesta del servidor que contiene el valor dinámico.
- Capturar el valor dinámico en un parámetro
- Reemplace cada aparición del valor dinámico con el parámetro
- Verificar cambios
Comprensión de la función web_reg_save_param
VuGen proporciona múltiples funciones o API para correlacionar candidatos, entre las que se incluyen:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Nota de versión: Las versiones actuales de VuGen tratan web_reg_save_param_ex como sucesor de la función original, y web_reg_save_param_regexp como la elección cuando los límites mismos cambian. El ejemplo original sigue funcionando.
Si bien aquí se proporciona una breve introducción, para comprender en detalle las funciones y sus parámetros, abra VuGen, escriba la función (o utilice Steps Toolbox), mueva un cursor sobre la función y haga clic en F1; familiarícese con ella. Ayuda de VuGen y conviértelo en un hábito. Tendrás que lidiar con ello con frecuencia cuando trabajes en este sector.
Aquí vamos con los detalles de la función:
web_reg_save_param(Nombre del parámetro, Límite izquierdo, Límite derecho)
Lista de atributos
La tabla que aparece a continuación recoge todos los atributos que acepta la función, si son obligatorios y qué controlan.
| Atributo | ¿Necesario? | ¿Qué hace? |
| Convertir | Opcional | HTML_TO_URL convierte datos codificados en HTML a un URLFormato de datos codificados en HTML. HTML_TO_TEXT convierte datos codificados en HTML a formato de texto plano. |
| Ignorar redirecciones | Opcional, por defecto “Ignorar redirecciones=No” | Cuando se establece en Sí y la respuesta del servidor es información de redirección (código de estado HTTP 300-303, 307), esa respuesta no se busca. La solicitud GET se dirige a la ubicación redirigida y la búsqueda se realiza sobre la respuesta desde allí. |
| LB | Obligatorio | El límite izquierdo del parámetro o de los datos dinámicos. Si no especifica un valor para el límite izquierdo, se utilizan todos los caracteres del inicio de los datos como límite. Los parámetros de límite distinguen entre mayúsculas y minúsculas. Para personalizar aún más el texto de búsqueda, utilice uno o más indicadores de texto. |
| EXTRAVIADO | Opcional, valor predeterminado “error” | Manejo de situaciones donde no se encuentra un límite y se genera una cadena vacía. "Not found=error" genera un error. "Not found=warning" ("Not found=empty" en versiones anteriores) establece el contador de parámetros en 0 y continúa, lo cual es ideal cuando se desea verificar si se encontró la cadena sin que el script falle. Con la opción "Continuar en caso de error" habilitada, el script continúa incluso en caso de error, pero el registro extendido lo registra. |
| Señor | Opcional, valor predeterminado 1 | Indica la posición ordinal o instancia de la coincidencia. Si especifica «Todas», guarda los valores de los parámetros en una matriz. Se admite el uso de Instancia en lugar de ORD para mantener la compatibilidad con versiones anteriores, pero está obsoleto. |
| RB | Obligatorio | El límite derecho del parámetro o de los datos dinámicos. Si no especifica un valor RB, se utilizan todos los caracteres hasta el final de los datos como límite. Los parámetros de límite distinguen entre mayúsculas y minúsculas. Para personalizar aún más el texto de búsqueda, utilice uno o más indicadores de texto. |
| RelFrameID | Opcional | El nivel de jerarquía de la página HTML en relación con la solicitud URLLos valores posibles son TODOS o un número. RelFrameID no es compatible con los scripts de nivel de interfaz gráfica de usuario. |
| GuardarLen | Opcional, valor predeterminado -1 | Longitud de una subcadena del valor encontrado, desde el desplazamiento especificado, que se guardará en el parámetro. Por defecto, se guarda al final de la cadena. |
| GuardarCompensación | Opcional, valor predeterminado 0 | El desplazamiento de una subcadena del valor encontrado, que se guardará en el parámetro. El valor de desplazamiento debe ser no negativo. |
| Buscar | Opcional, por defecto TODOS | El alcance de la búsqueda indica dónde se buscarán los datos delimitados. Los valores posibles son Encabezados (buscar solo en los encabezados), Cuerpo (buscar solo en el cuerpo, no en los encabezados), Sin recurso (buscar solo en el cuerpo HTML, excluyendo todos los encabezados y recursos) o TODOS (buscar en el cuerpo, los encabezados y los recursos). |
Una vez que el script se reproduzca correctamente, agregue configuración de parametrización, transacciones y tiempo de ejecución, ejecútalo desde el Controly lea el resultado en Análisis como parte de un plan más amplio Test de rendimiento y Prueba de carga.







