Correlación en LoadRunner con el ejemplo Web_Reg_Save_Param

¿Qué es la correlación?

La correlación, como sugiere el nombre, es un mecanismo para definir una relación entre dos variables o entidades. Un diccionario la define como “relación estadística entre dos o más variables tal que cambios sistemáticos en la otra acompañan a cambios sistemáticos en el valor de una variable”.

¿Por qué necesitamos correlación?

Entendamos la correlación con el siguiente escenario.

Considere que está grabando un script usando LoadRunner.

Comunicación cliente-servidor

  1. Durante la grabación, el cliente envía una solicitud al servidor para iniciar una sesión.
  2. Un servidor recibe la solicitud y asigna un nuevo ID de sesión ABC
  3. El cliente almacena la identificación de sesión ABC en el script.
  4. El cliente inicia la sesión con ID ABC y envía una solicitud a un servidor para permitirle grabar
  5. El Servidor reconoce el ID ABC y permite al cliente grabar el script

Correlación durante la grabación

  1. Ahora, estudiemos la comunicación cliente-servidor durante la reproducción.
  2. Durante la reproducción, un cliente envía una solicitud al servidor para iniciar una sesión.
  3. Un servidor recibe la solicitud y asigna un nuevo ID de sesión XYZ
  4. Un Cliente inicia la sesión con el ID de sesión ABC previamente grabado y envía una solicitud al servidor para permitirle grabar
  5. Un servidor no puede identificar el ID ABC porque esperaba el ID XYZ que ha asignado y la sesión falla.

Correlación durante la reproducción

Necesitamos una solución que capture, analice el valor dinámico enviado en tiempo de ejecución y devuelva este valor al servidor. Así es como se verá la comunicación cliente-servidor con esta solución

  1. Durante la reproducción, un cliente envía una solicitud al servidor para iniciar una sesión.
  2. Un servidor recibe la solicitud y asigna un nuevo ID de sesión ZZZ
  3. Un Cliente analiza esta nueva identificación de sesión ZZZ a partir de la solicitud.
  4. Un Cliente envía una solicitud para iniciar sesión con id ZZZ
  5. Un servidor reconoce el ID ZZZ y permite al cliente reproducir el script

Necesitamos correlación

Esto no es más que correlació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 anterior.

Hay varias situaciones en las que una solicitud se basa en una respuesta recibida previamente del servidor, como un ID de sesión, la fecha/hora del servidor que se obtiene del servidor. Estos valores son diferentes cada vez que ejecuta una aplicación o graba un script. Obviamente, si la ejecución del script depende de un valor devuelto por el servidor, significa que necesita encontrar un mecanismo donde pueda "captar" la respuesta del servidor y adjuntarla a las solicitudes que el servidor espera. Esto normalmente se denomina correlación en LoadRunner.

En palabras simples, la solución usando Correlación es:

  1. Capturar el valor de salida de un paso
  2. 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 requerirá que ejecute un script grabado al menos dos veces para que pueda comparar internamente los distintos 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 HP 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.

Haga clic en Grabar =>Opciones de grabación (o haga clic en Ctrl +F7),

Correlación automática

Se abrirá la siguiente ventana:

Correlación automática

Haga clic en Correlación =>Configuración; se abrirá la siguiente ventana.

Correlación automática

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:

Correlación automática

Para que funcione la correlación automática, debe asegurarse de que la exploración de reglas esté marcada como marcada. Si hace clic en correlacionar automáticamente los valores encontrados, VUGen no le pedirá la opción una vez que se encuentre un candidato de correlación, sino que 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 Correlación automáticadesde el menú y VUGen regenerará el script (sin tener que grabar) con nuevas configuraciones. VUGen agregará automáticamente un fragmento de código requerido para manejar la correlación. Veremos la muestra con más detalle en 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:

  1. Grabar un guión
  2. Reproducir guión
  3. Identificar los valores a correlacionar.
  4. Seleccione los valores y haga clic en el botón de correlación automática
  5. Verifique el script ejecutándolo nuevamente. Una ejecución exitosa significa una correlación exitosa.

Consejo:

  • 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:

  1. Determinar el valor a capturar.
  2. Encuentre los límites de texto derecho e izquierdo del valor a capturar (WEB)
  3. Encuentre qué aparición de los límites del texto se debe utilizar
  4. 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
  5. Agregue un nombre de parámetro, límite izquierdo, límite derecho y ocurrencia a la función
  6. Parametrizar el valor dinámico en el script cada vez que ocurra
  7. 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);

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:

  1. Identificar los valores dinámicos que deben correlacionarse
  2. Buscar respuesta de servidores que contenga el valor dinámico
  3. Capturar el valor dinámico en un parámetro
  4. Reemplace cada aparición del valor dinámico con el parámetro
  5. Verificar cambios

Comprender la función Web_reg_save_param

VUGen proporciona múltiples funciones o API para correlacionar candidatos, que incluyen:

  • web_reg_save_param
  • web_reg_save_param_ex
  • web_reg_save_param_regexp
  • web_reg_save_param_xpath

Si bien aquí se ofrece una breve introducción, para comprender en detalle las funciones y sus parámetros, abra VUGen, escriba function (o use Steps Toolbox), mueva el cursor sobre la función y haga clic en F1: familiarícese con la ayuda de VUGen y adquiera el hábito de hacerlo. Tendrá que lidiar con esto mucho cuando trabaje en la industria.

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

Convertir: Los valores posibles son:

HTML_TO_URL: convierte datos codificados en HTML a un formato de datos codificados en URL

HTML_TO_TEXT: convierte datos codificados en HTML a formato de texto sin formato; este atributo es opcional.

Ignorar redirecciones: Si se especifica "Ignorar redirecciones = Sí" y la respuesta del servidor es información de redirección (código de estado HTTP 300-303, 307), no se busca la respuesta. En cambio, después de recibir una respuesta de redirección, la solicitud GET se envía a la ubicación redirigida y la búsqueda se realiza en la respuesta de esa ubicación.

Este atributo es opcional. El valor predeterminado es "Ignorar redirecciones = No".

LB: El límite izquierdo del parámetro o los datos dinámicos. Si no especifica un valor LB, utiliza todos los caracteres desde el principio de los datos como límite. Los parámetros de límites 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. Este atributo es obligatorio. Consulte la sección Argumentos de límites.

EXTRAVIADO: La opción de manejo cuando no se encuentra un límite y se genera una cadena vacía.

“No encontrado=error”, el valor predeterminado, provoca que se genere un error cuando no se encuentra un límite.

“No encontrado=advertencia” (“No encontrado=vacío” en versiones anteriores) no genera ningún error. Si no se encuentra el límite, establece el recuento de parámetros en 0 y continúa ejecutando el script. La opción "advertencia" es ideal si desea ver si se encontró la cadena, pero no desea que el script falle.

Nota: Si Continuar en caso de error está habilitado para el script, incluso cuando NOTFOUND esté configurado en "error", el script continúa cuando no se encuentra el límite, pero se escribe un mensaje de error en el archivo de registro extendido.

Este atributo también es opcional.

Señor: Indica la posición ordinal o instancia de la coincidencia. La instancia predeterminada es 1. Si especifica "Todos", guarda los valores de los parámetros en una matriz. Este atributo es opcional.

Nota: El uso de Instance en lugar de ORD se admite por compatibilidad con versiones anteriores, pero está en desuso.

RB: El límite derecho del parámetro o de los datos dinámicos. Si no especifica un valor RB, utiliza todos los caracteres hasta el final de los datos como límite. Los parámetros de límites 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. Este atributo es obligatorio. Consulte la sección Argumentos de límites.

RelFrameID: el nivel de jerarquía de la página HTML en relación con la URL solicitada. Los valores posibles son TODOS o un número. Haga clic en Atributo RelFrameID para obtener una descripción detallada. Este atributo es opcional.

Nota: RelFrameID no se admite en scripts de nivel GUI.

GuardarLen: La longitud de una subcadena del valor encontrado, desde el desplazamiento especificado, para guardar en el parámetro. Este atributo es opcional. El valor predeterminado es -1, lo que indica que se debe guardar hasta el final de la cadena.

GuardarCompensación: El desplazamiento de una subcadena del valor encontrado, para guardar en el parámetro. El valor de compensación no debe ser negativo. El valor predeterminado es 0. Este atributo es opcional.

Buscar: El alcance de la búsqueda: dónde buscar los datos delimitados. Los valores posibles son Encabezados (busca solo los encabezados), Cuerpo (busca solo los datos del cuerpo, no los encabezados), Sin recurso (busca solo el cuerpo HTML, excluyendo todos los encabezados y recursos) o TODOS (cuerpo de búsqueda, encabezados y recursos). El valor predeterminado es TODO. Este atributo es opcional pero generalmente se prefiere.