Transacciones de LoadRunner, Comprobaciones de Imágenes y Texto, Comentarios y Puntos de Encuentro
Introducción a las mejoras básicas del Script VuGen:
Exploramos la Correlación en LoadRunner en detalle en nuestro tutorial anterior en este Tutorial Completo de capacitación de LoadRunner.
En los dos últimos tutoriales, trabajamos en el manejo de datos en un script VuGen (Correlación y Parametrización).
En este tutorial de LoadRunner, veremos las otras mejoras básicas (enumeradas a continuación) que se requieren para nuestro script:Transacciones
- – Para medir la velocidad y el tiempo de respuesta de las acciones del usuario.Verificaciones de texto e imagen
- Para garantizar que la respuesta devuelta sea correcta.
- Puntos de encuentro: para hacer que los usuarios realicen una tarea simultáneamente.
=> Haga Clic Aquí Para Ver una Serie Completa de Tutoriales de LoadRunner
Transacciones en VuGen Script
La mera reproducción de scripts de rendimiento solo pondrá una carga en la aplicación, pero no mide nada. El objetivo final de cualquier script de rendimiento es inyectar carga y medir la velocidad y el tiempo de respuesta de las acciones del usuario en la aplicación.
Por ejemplo, cuánto tiempo tomó una búsqueda de productos cuando 100 usuarios están en la aplicación, cuántos informes se generan en un tiempo de, por ejemplo, 15 minutos, etc. Para medirlos, tenemos que insertar transacciones en un script VuGen (después de la prueba, podemos ver la tasa y el tiempo de respuesta de estas transacciones en los resultados).
“Una transacción es una medición de extremo a extremo de una acción de usuario (o un grupo de acciones de usuario) en una aplicación”.
Las transacciones se pueden insertar de dos maneras:
- Durante la grabación
- Después de la grabación (donde insertamos manualmente las funciones de transacción en el script)
Inserte la transacción para la acción de usuario de “Inicio de sesión” en nuestra aplicación de “Recorridos web”.
En nuestro primer tutorial, vimos cómo registrar las acciones de los usuarios. Durante la grabación, después de ingresar el ‘Nombre de usuario’ y la ‘ Contraseña ‘en la página de inicio de sesión, justo antes de hacer clic en el botón’ Iniciar sesión’, haga clic en el icono’ Insertar Iniciar transacción ‘ en la barra de grabación flotante.
VuGen solicita el nombre de la transacción. Introduzca cualquier nombre significativo. Hemos dado “Inicio de sesión” aquí, pero es una buena práctica seguir una convención como esta (número de transacción, nombre del escenario, acción del usuario, etc.).): 01_WebTours_Launch 02_WebTours_Login (y así sucesivamente).
Ahora haga clic en el botón de inicio de sesión.
Una vez que lleguemos a la página de inicio (página principal), haga clic en el icono “Insertar transacción final” en la barra de grabación flotante.
Seleccione la transacción que queremos finalizar (transacción de’ Inicio de sesión ‘ aquí).
Detenga la grabación y vea el script generado. Podemos ver que las funciones de inicio y fin de transacción se insertan en el script (resaltadas en amarillo) y todas las solicitudes correspondientes a la acción de usuario ‘Login’ se encierran entre estas funciones.
lr_start_transaction("Login");web_submit_data("login.pl","Action=http://127.0.0.1:1080/cgi-bin/login.pl","Method=POST","TargetFrame=","RecContentType=text/html","Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home","Snapshot=t3.inf","Mode=HTML",ITEMDATA,"Name=userSession", "Value=123530.624949372zDftVAzpfcAiDDDDDiVctpzDQVcf", ENDITEM,"Name=username", "Value=jojo", ENDITEM,"Name=password", "Value=bean", ENDITEM,"Name=JSFormSubmit", "Value=off", ENDITEM,"Name=login.x", "Value=69", ENDITEM,"Name=login.y", "Value=8", ENDITEM,LAST);lr_end_transaction("Login",LR_AUTO);
La sintaxis de las funciones’ inicio de transacción ‘y’ fin de transacción ‘ es bastante simple. Ambos tienen el nombre de transacción como primer argumento. La función’ end transaction ‘ tiene un atributo más – ‘LR_AUTO’, esto indica a VuGen que pase o Falle una transacción automáticamente (en lugar de especificar explícitamente una condición para un pase o fallo).
Si el ejecutor de carga encuentra errores en la ejecución de solicitudes dentro de una transacción, falla la transacción, de lo contrario, pasa la transacción.
Las comprobaciones de texto e imagen en el script VuGen
Las comprobaciones de texto se utilizan para verificar si la respuesta devuelta para la solicitud es correcta o no. En el tutorial de ‘Correlación’, vimos que a veces VuGen puede no mostrar ningún error, pero la respuesta devuelta puede no ser la correcta. Por lo tanto, para asegurarnos de que la respuesta sea correcta, utilizamos comprobaciones de texto.
Por ejemplo, cuando iniciamos sesión en la aplicación de visitas web, vamos a la página de inicio. Vamos a verificar en el script que estamos recibiendo la respuesta correcta (página de inicio) o no cuando iniciamos sesión.
Para hacer esto, tenemos que identificar algún texto en la respuesta (página de inicio aquí) que pueda decir si la respuesta es correcta o no. “Bienvenido” es uno de esos textos.
Para la comprobación de texto, utilizamos la función ‘web_reg_find’ justo antes de la solicitud.
La sintaxis de esta función es:
web_reg_find("Text=","SaveCount=","Fail=",LAST);
Aquí tenemos tres atributos (consulte la ayuda de VuGen para obtener la lista completa de atributos):
‘Texto’: Se usa para especificar qué texto buscar.
‘ SaveCount – – Guarda el número de ocurrencias del texto especificado en un parámetro que especifiquemos.
‘Fail’ – Toma uno de los dos valores -‘Found’ y ‘NotFound’ y falla el script en consecuencia.
Así que la función, web_reg_find (“Text=Welcome”,”SaveCount=WelcomeCount”,” Fail=NotFound”, LAST) busca el texto ‘Welcome’ en la respuesta y guarda el número de ocurrencias en el parámetro ‘WelcomeCount’ (y falla el script si el texto no se encuentra).
El script se ve así:
web_reg_find("Text=Welcome","SaveCount=WelcomeCount","Fail=NotFound",LAST);web_submit_data("login.pl","Action=http://127.0.0.1:1080/cgi-bin/login.pl","Method=POST","TargetFrame=body","RecContentType=text/html","Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home","Snapshot=t2.inf","Mode=HTML",ITEMDATA,"Name=userSession", "Value=123531.149939247zDftVDDpfcfDiVctpiAVVf", ENDITEM,"Name=username", "Value=jojo", ENDITEM,"Name=password", "Value=bean", ENDITEM,"Name=JSFormSubmit", "Value=off", ENDITEM,"Name=login.x", "Value=66", ENDITEM,"Name=login.y", "Value=12", ENDITEM,LAST);
Ahora, si repetimos el script, obtendremos un error para la solicitud de inicio de sesión (consulte en el registro de retransmisión) porque VuGen no encontró el texto que especificamos en la respuesta. Esto se debe a que no obtuvimos la página de inicio correcta (como se muestra en el visor en tiempo de ejecución).
Ahora corrijamos nuestro script (correlacionemos la sesión de usuario) y reproduzcamos el script de nuevo.
web_reg_find("Text=Welcome","SaveCount=WelcomeCount","Fail=NotFound",LAST);web_submit_data("login.pl", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "TargetFrame=body", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value={corUserSession}", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=off", ENDITEM, "Name=login.x", "Value=66", ENDITEM, "Name=login.y", "Value=12", ENDITEM, LAST);
Esta vez no vemos ningún error en el registro de reproducción, pero vemos un mensaje de que nuestra comprobación de texto se realizó correctamente. Así que esta vez obtuvimos la respuesta correcta (como lo corrobora el ‘visor de tiempo de ejecución’).
Podemos combinar comprobaciones de texto con transacciones y hacer que VuGen pase una transacción si la comprobación de texto es correcta y falle una transacción si la comprobación de texto falla.
Esto se muestra a continuación:
lr_start_transaction("Login");web_reg_find("Text=Welcome","SaveCount=WelcomeCount",LAST);web_submit_data("login.pl", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "TargetFrame=body", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value={corUserSession}", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=off", ENDITEM, "Name=login.x", "Value=66", ENDITEM, "Name=login.y", "Value=12", ENDITEM, LAST);if(atoi(lr_eval_string("{WelcomeCount}"))>0){lr_end_transaction("Login",LR_PASS);}else{lr_end_transaction("Login",LR_FAIL);}
Hemos usado la instrucción if aquí con el atributo SaveCount. El parámetro ‘WelcomeCount’ (que guarda el número de ocurrencias del texto) se utiliza como condición para aprobar/fallar la transacción. Los atributos’ LR_PASS ‘y’ LR_FAIL ‘ de las funciones de transacción se utilizan para pasar y fallar explícitamente (respectivamente) una transacción.
Nota: Utilizamos dos nuevas funciones aquí: ‘atoi ‘y’lr_eval_string’. Hablaremos de estas funciones más adelante.
Más información sobre la combinación de atributos de función’ web_reg_find’:
#1) Si solo se usa el atributo’ Text ‘ –
Ejemplo: web_reg_find (“Text=Welcome”, LAST) –
VuGen busca el texto y falla el script si la búsqueda no tiene éxito.
#2) Si solo se utilizan los atributos ‘Text’ y ‘ SaveCount – –
Ejemplo: web_reg_find (“Text = Welcome”, “SaveCount=WelcomeCount”, LAST) – VuGen busca el texto y guarda el número de ocurrencias (incluso si es cero) en el parámetro especificado (no falla el script si la búsqueda no tiene éxito).
#3) Si solo se utilizan los atributos ‘Text’ y ‘ Fail – –
Ejemplo: web_reg_find (“Text = Welcome”, “Fail=NotFound”, LAST) – VuGen busca el texto y falla el script si el texto se encuentra/no se encuentra.
Las comprobaciones de texto también se pueden insertar durante la grabación utilizando el icono “Insertar comprobación de texto” en la barra de grabación flotante. Esto insertará la misma función ‘web_reg_find’ en el script.
Pero es mejor que insertemos esta función manualmente, ya que tendremos un mejor control principalmente sobre los atributos.
Hemos entendido la comprobación de texto claramente, ahora vamos a la comprobación de imágenes.
Image check se utiliza para verificar la presencia de una imagen especificada en una respuesta. la función ‘web_image_check’ se utiliza para la comprobación de imágenes. Esta función debe colocarse después de la solicitud (en cuya respuesta esperamos la imagen).
Ejemplo de esta función:
web_image_check("Image","Src=/WebTours/images/flights.gif",LAST)
Donde el primer atributo es cualquier nombre significativo y el segundo atributo (‘Src’) es el nombre/enlace de la imagen (consulte la ayuda de VuGen para obtener la lista completa de atributos).
Comentarios en el script VuGen
Los comentarios en un script VuGen se pueden introducir durante la grabación y también manualmente después de grabar el script.
Durante la grabación, haga clic en el icono “Insertar comentario” en la barra de grabación flotante.
Ingrese el comentario (diga ‘Iniciar sesión’ aquí).
Después de grabar, podemos ver los comentarios en el script como se muestra a continuación.
/* Login */web_submit_data("login.pl", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "TargetFrame=body", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t6.inf", "Mode=HTML",
En VuGen, una sola línea se puede comentar simplemente poniendo ‘/ / ‘ antes de la línea como se muestra a continuación:
// web_add_cookie("SRCHD=AF=IESS3N; DOMAIN=www.bing.com");web_add_cookie("SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com");web_add_cookie("SRCHUSR=DOB=20180312; DOMAIN=www.bing.com");
Y se pueden conectar varias líneas poniendo ‘/ * ‘al principio y’ * / ‘ al final (como se muestra a continuación)
/* web_add_cookie("SRCHD=AF=IESS3N; DOMAIN=www.bing.com");web_add_cookie("SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com");web_add_cookie("SRCHUSR=DOB=20180312; DOMAIN=www.bing.com"); */
Nota: En los ejemplos mostrados anteriormente, comentamos las funciones de cookies (web_add_cookie). Hablaremos sobre las funciones de cookies más adelante en esta serie de tutoriales.
Es una buena práctica insertar comentarios en cada paso durante la grabación, ya que nos ayudará a relacionar las solicitudes en el script con las acciones del usuario en la aplicación.
Punto de encuentro en Script VuGen
Si tenemos un escenario en el que un mayor número de usuarios realiza una acción simultáneamente en la aplicación (como comprobar los resultados) y si tenemos que simular la misma en nuestra prueba de rendimiento, podemos usar un ‘Punto de encuentro’.
Un ‘Punto de encuentro’ es una función única y simple en un script VuGen que indica a load runner (durante una prueba con varios usuarios) que espere en un paso especificado en el script hasta que todos los Vusers (que ejecutan el script) lleguen a ese paso para que la solicitud posterior se pueda ejecutar simultáneamente.
La sintaxis de la función Rendezvous es:
lr_rendezvous("MeaningfulName");
Esta función se puede insertar durante la grabación y también manualmente después de grabar el script.
Supongamos que queremos poner una carga simultánea en el paso de pago en nuestra aplicación ‘Web Tours’. Durante la grabación en ese paso (antes de enviar los detalles de pago ), haga clic en el icono “Insertar cita” en la barra de grabación flotante.
E introduzca el nombre del punto de encuentro (cualquier nombre significativo).
Después de grabar, podemos ver la función de encuentro en el script de esta manera.
lr_rendezvous("Payment");web_submit_data("reservations.pl_3","Action=http://127.0.0.1:1080/cgi-bin/reservations.pl","Method=POST","TargetFrame=","RecContentType=text/html","Referer=http://127.0.0.1:1080/cgi-bin/reservations.pl","Snapshot=t13.inf","Mode=HTML",ITEMDATA,"Name=firstName", "Value=Jojo", ENDITEM,"Name=lastName", "Value=Bean", ENDITEM,"Name=address1", "Value=1st Lane, Down Street", ENDITEM,"Name=address2", "Value=567123", ENDITEM,"Name=pass1", "Value=Jojo Bean", ENDITEM,"Name=creditCard", "Value=123456789101", ENDITEM,"Name=expDate", "Value=0520", ENDITEM,"Name=oldCCOption", "Value=", ENDITEM,"Name=numPassengers", "Value=1", ENDITEM,"Name=seatType", "Value=Coach", ENDITEM,"Name=seatPref", "Value=None", ENDITEM,"Name=outboundFlight", "Value=020;338;05/03/2018", ENDITEM,"Name=advanceDiscount", "Value=0", ENDITEM,"Name=returnFlight", "Value=", ENDITEM,"Name=JSFormSubmit", "Value=off", ENDITEM,"Name=.cgifields", "Value=saveCC", ENDITEM,"Name=buyFlights.x", "Value=63", ENDITEM,"Name=buyFlights.y", "Value=12", ENDITEM,LAST);
Ahora, cuando ejecutamos este script con varios usuarios en Controller, el script será ejecutado por Vusers de forma independiente, pero Vusers esperará en este paso de “Pago” hasta que todos (o algún porcentaje de Vusers definidos en la política de Rendezvous) alcancen este paso, después de lo cual realizarán este paso simultáneamente.
Veremos más sobre la política de rendezvous (opciones) en el tutorial del Controlador.
Conclusión
Hasta ahora hemos discutido la Correlación y la Parametrización en los tutoriales y Transacciones anteriores, Comprobaciones de texto/Imagen, Comentarios y puntos de encuentro en este tutorial, también hemos cubierto los métodos de mejora de scripts más importantes.
En nuestro siguiente tutorial, veremos algunos desafíos de scripting más junto con las formas de manejarlos.
=> Visite Aquí Para ver la Serie Completa de Tutoriales de LoadRunner
Tutorial ANTERIOR / Tutorial siguiente
Leave a Reply