Parametrización, Funciones, Transacciones en LoadRunner
⚡ Resumen inteligente
La parametrización, las transacciones y la configuración en tiempo de ejecución son las tres mejoras que convierten una grabación simple de VuGen en un script que se comporta como un usuario real y proporciona información sobre tiempos en los que realmente se puede confiar.
Un guion grabado puede simular un usuario virtual; sin embargo, una simple grabación puede no ser suficiente para replicar el comportamiento de un usuario real.
Cuando se graba un script, este abarca un único flujo directo a través de la aplicación. Un usuario real puede realizar varias iteraciones de un proceso antes de cerrar sesión. El tiempo de espera entre clics (tiempo de respuesta) varía de persona a persona, y algunos usuarios acceden a la aplicación mediante una conexión rápida, mientras que otros no. Por lo tanto, para comprender mejor la experiencia de un usuario final, debemos optimizar nuestros scripts para que se comporten de forma muy similar a como lo harían los usuarios reales.
Esa es la consideración más importante al realizar “Test de rendimientoSin embargo, un script de usuario virtual implica más que eso. ¿Cómo se medirá el tiempo que tarda un usuario virtual mientras se prueba el sistema bajo carga (SUL)? ¿Cómo se sabrá si el usuario virtual superó o falló en un punto determinado, y si falló un proceso de backend o se agotaron los recursos del servidor?
Necesitamos mejorar nuestro guion para que nos ayude a responder todas las preguntas anteriores.
Nota de marca: VuGen se comercializó como HP, luego como Micro Focus, y ahora forma parte de OpenText Ingeniería de Desempeño ProfesionalLas funciones y configuraciones que se muestran a continuación no han sufrido cambios.
Uso de transacciones
Las transacciones miden el tiempo de respuesta del servidor ante cualquier operación. En pocas palabras, una "transacción" mide el tiempo que tarda el sistema en procesar una solicitud específica. Puede ser algo tan simple como hacer clic en un botón o una llamada AJAX que se activa cuando un cuadro de texto pierde el foco.
Aplicar transacciones es muy sencillo. Basta con escribir una línea de código antes de realizar la solicitud y cerrar la transacción cuando esta finalice. LoadRunner solo requiere una cadena de texto como nombre de la transacción.
Para abrir una transacción, use esta línea de código:
lr_start_transaction(“Transaction Name”);
Para cerrar la transacción, use esta línea de código:
lr_end_transaction(“Transaction Name”, <status>);
El le dice a LoadRunner si esta transacción en particular fue exitosa o no. Los posibles parámetros podrían ser:
- LR_AUTO
- LR_PASS
- LR_FAIL
Ejemplo:
lr_end_transaction(“My_Login”, LR_AUTO); lr_end_transaction(“001_Opening_Dashboard Name”, LR_PASS); lr_end_transaction(“Business_Workflow_Transaction Name”, LR_FAIL);
Code Nota: Los fragmentos se reproducen tal cual se publicaron, incluyendo las comillas tipográficas. Un script VuGen original requiere comillas dobles ASCII rectas, así que vuélvalos a escribir si copia este código.
Puntos a tener en cuenta:
- No olvide que está trabajando con "C" y que es un lenguaje que distingue entre mayúsculas y minúsculas.
- El carácter de punto (.) no está permitido en el nombre de una transacción, aunque sí se pueden usar espacios y guiones bajos.
- Si has ramificado bien tu código y añadido puntos de control para verificar la respuesta del servidor, puedes usar un manejo de errores personalizado como LR_PASS o LR_FAIL. De lo contrario, puedes usar LR_AUTO y LoadRunner gestionará automáticamente los errores del servidor (HTTP 500, 400, etc.).
- Al aplicar transacciones, asegúrese de que no haya ninguna cláusula de período de espera intercalada, de lo contrario, su transacción siempre incluirá ese período.
- Dado que LoadRunner requiere una cadena constante como nombre de la transacción, un problema común al aplicar transacciones es la discrepancia entre las cadenas. Si se introduce un nombre diferente al abrir y cerrar una transacción, se producirán al menos dos errores. La transacción que se abrió nunca se cerró, por lo que LoadRunner genera un error; y la transacción que se intenta cerrar nunca se abrió, lo que genera un segundo error.
- Ambos errores aparecen en el registro de reproducción, por lo que, siempre que se informe de alguno de ellos, compruebe primero el nombre de la transacción en los extractos de apertura y cierre.
- Dado que LoadRunner se encarga automáticamente de la sincronización de las solicitudes y respuestas, no tendrá que preocuparse por la respuesta al aplicar las transacciones.
Puntos de encuentro, comentarios y funciones del script
Tres pequeñas mejoras hacen que un script se comporte y se lea como código de producción: los puntos de encuentro, los comentarios y el explorador de funciones integrado en VuGen.
Puntos de encuentro
Un punto de encuentro es una instrucción que le indica a LoadRunner que introduzca la concurrencia. Se insertan puntos de encuentro en los scripts de VUser para simular una carga de usuario elevada en el servidor.
Los puntos de encuentro indican a un usuario virtual que espere durante la ejecución hasta que varios usuarios virtuales lleguen a un punto determinado para que puedan realizar una tarea simultáneamente. Por ejemplo, para simular la carga máxima en un servidor bancario, se puede insertar un punto de encuentro que indique a 100 usuarios virtuales que depositen efectivo al mismo tiempo.
Si los puntos de encuentro no están configurados correctamente, los usuarios virtuales accederán a diferentes partes de la aplicación, incluso para el mismo script. Esto se debe a que cada usuario virtual tiene un tiempo de respuesta distinto, por lo que algunos usuarios se retrasan.
Sintaxis:
lr_rendezvous(“Logical Name”);
Nota de corrección: La página publicada lo deletrea así lr_rendesvousEl nombre correcto de la función es lr_rendezvous; el formulario mal escrito no compilará.
Mejores Prácticas:
- Anteponga un punto de encuentro con “rdv_” para mejorar la legibilidad del código; p.ej. “rdv_Iniciar sesión”
- Elimine cualquier instrucción de tiempo de reflexión inmediatamente adyacente.
- Aplique los puntos de encuentro en la vista de guion, después de grabar.
La vista de script que se muestra a continuación muestra una instrucción de encuentro insertada en una acción grabada:
Comentarios
Añade comentarios para describir una actividad, un fragmento de código o una línea de código. Los comentarios facilitan la comprensión del código para cualquier persona que lo consulte en el futuro. Proporcionan información sobre una operación específica y delimitan dos secciones para mayor claridad.
Puedes agregar comentarios
- Mientras graba (usando la herramienta)
- Después de grabar (escribir directamente en código)
Mejores prácticas: marque cualquier comentario en la parte superior de cada archivo de script.
Insertar funciones a través del menú
Si bien puedes escribir directamente líneas de código sencillas, es posible que necesites una pista para recordar una función. También puedes usar la Caja de herramientas de pasos (conocida como Insertar función antes de la versión 12) para buscar e insertar cualquier función directamente en tu script.
Puedes encontrar la Caja de herramientas de pasos en Ver → Caja de herramientas de pasos, como se muestra a continuación.
Esto abrirá una ventana lateral. Mira la captura de pantalla:
¿Qué es la parametrización?
En VuGen, un parámetro es un contenedor que almacena un valor registrado que se reemplaza para distintos usuarios.
Durante la ejecución del script (en VuGen o el Control), un valor de una fuente externa (como un archivo .txt, XML o una base de datos) sustituye el valor anterior del parámetro.
La parametrización es útil para enviar valores dinámicos (o únicos) al servidor. Por ejemplo, un proceso empresarial puede requerir 10 iteraciones, seleccionando un nombre de usuario único en cada una.
También ayuda a simular el comportamiento en situaciones reales frente al sistema en cuestión. Vea los ejemplos a continuación.
Ejemplos de problemas:
- Un proceso de negocio solo funciona con la fecha actual, que proviene del servidor, por lo que no se puede pasar como una solicitud codificada.
- En ocasiones, la aplicación cliente envía un identificador único al servidor (por ejemplo, session_id) para que el proceso continúe, incluso para un solo usuario. En estos casos, la parametrización resulta útil.
- A menudo, la aplicación cliente mantiene una caché de los datos que se envían y reciben del servidor. Como resultado, el servidor no recibe información sobre el comportamiento real del usuario (donde el servidor ejecuta un algoritmo diferente según los criterios de búsqueda). El script VUser se ejecutará correctamente, pero las estadísticas de rendimiento obtenidas no serán significativas. El uso de datos diferentes mediante la parametrización ayuda a emular la actividad del servidor, como los procedimientos almacenados, y a poner a prueba el sistema.
- Una fecha codificada directamente en el VUser durante la grabación puede dejar de ser válida una vez transcurrida dicha fecha. Parametrizar la fecha permite que la ejecución del VUser se complete correctamente, reemplazando la fecha codificada. Estos campos o solicitudes son idóneos para la parametrización.
Para crearlo, haga clic con el botón derecho en el valor registrado en la vista Script y seleccione Reemplazar con un parámetro. A continuación, VuGen le preguntará qué tipo proporciona el valor:
| Tipo de parámetro | Valora lo que suministra |
|---|---|
| Archivo | Valores leídos de una columna en un archivo .dat. |
| Tabla | Un bloque de filas y columnas a la vez. |
| Fecha / Hora | Fecha y hora actuales en el formato elegido. |
| Número aleatorio | Un número de un rango que usted haya establecido. |
| Número único | Un número distinto por usuario virtual, a partir de un valor inicial y un tamaño de bloque. |
| Número de iteración | El número de iteraciones actual. |
| ID de usuario virtual | El identificador asignado en la reproducción. |
| Grupo / Carga Generator Nombre | El grupo de usuarios virtuales o la máquina generadora. |
| XML | Un fragmento de un conjunto de datos XML. |
| Función definida por el usuario | Un valor devuelto por una función de tu propia biblioteca. |
Otras dos opciones determinan cómo se consumen los datos a lo largo de las iteraciones:
| Opción | CHOICES | Lo que controla |
|---|---|---|
| Seleccione la siguiente fila. | Secuencial, aleatorio, único | ¿Qué fila lee a continuación un usuario virtual? |
| Actualizar valor en | Cada iteración, cada ocurrencia, una vez | Cuando se actualiza el valor. |
El siguiente ejemplo muestra la parametrización aplicada a un script grabado:
Haga clic en aquí si el vídeo no es accesible.
Configuración de tiempo de ejecución y su impacto en la simulación de usuarios virtuales.
La configuración de ejecución es tan importante como el script de VuGen. Con distintas configuraciones, se pueden obtener diseños de prueba completamente diferentes, por lo que la inconsistencia en la configuración de ejecución suele ser la causa de resultados no repetibles. Analicemos cada atributo individualmente.
Ejecutar lógica
Run Logic define la cantidad de veces que se ejecutarán todas las acciones, excepto vuser_init y vuser_end.
Esto probablemente aclara por qué LoadRunner sugiere mantenerping todo el código de inicio de sesión dentro de vuser_init y la parte de cierre de sesión en vuser_end, ambos exclusivamente.
Si ha creado varias acciones, por ejemplo, Iniciar sesión, Abrir pantalla, Calcular alquiler, Enviar fondos, Consultar saldo y Cerrar sesión, entonces el siguiente escenario tendrá lugar para cada usuario virtual:
Todos los usuarios virtuales iniciarán sesión, ejecutarán Abrir pantalla, Calcular alquiler, Enviar fondos y Consultar saldo, luego nuevamente Abrir pantalla, Calcular alquiler y así sucesivamente, repitiendo el proceso 10 veces, seguido del cierre de sesión (una vez).
Esta es una configuración potente que permite que el script se comporte de forma más similar a un usuario real. Recuerda que un usuario real no inicia ni cierra sesión cada vez; normalmente repite los mismos pasos.
¿Cuántas veces haces clic en "bandeja de entrada" cuando revisas tu correo electrónico antes de cerrar sesión?
El ritmo del texto
Esto es importante. La mayoría de la gente no entiende la diferencia entre ritmo y tiempo de reflexión. La única diferencia es que el ritmo se refiere al intervalo entre iteraciones, mientras que el tiempo de reflexión es el intervalo entre dos pasos cualesquiera.
La configuración recomendada depende del diseño de la prueba. Sin embargo, si desea aplicar una carga intensa, considere seleccionar "Tan pronto como finalice la iteración anterior", como se muestra a continuación.
Log
Un registro, como se entiende generalmente, es un registro de todos los eventos que ocurren mientras se ejecuta LoadRunner. Puede habilitar el registro para saber qué sucede entre su aplicación y su servidor.
LoadRunner ofrece un potente mecanismo de registro, robusto y escalable por sí mismo. Permite mantener un registro estándar, un registro extendido detallado y configurable, o desactivar el registro por completo.
Un registro estándar es informativo y fácil de entender. Contiene la cantidad justa de información que generalmente necesitará para solucionar problemas con sus scripts de usuario virtual.
En el caso del registro extendido, toda la información de registro estándar se presenta como un subconjunto. Además, se puede habilitar la sustitución de parámetros. Esto indica al componente LoadRunner que incluya información completa sobre todos los parámetros (de la parametrización), incluyendo tanto las solicitudes como los datos de respuesta.
Si incluyes los datos devueltos por el servidor, el archivo de registro aumentará considerablemente. Incluirá todo el código HTML, etiquetas, recursos e información que no sean recursos. Esta opción solo es recomendable si necesitas realizar una resolución de problemas compleja. Generalmente, esto genera un archivo de registro muy grande y difícil de comprender.
Como ya habrás adivinado, si optas por “Avanzado” TracTu archivo de registro será enorme. Debes probarlo. Notarás que el tiempo que tarda VuGen también aumenta significativamente, aunque esto no afecta al tiempo de respuesta de la transacción que informa VuGen. Esta es información muy avanzada y solo es útil si comprendes la aplicación en cuestión, la comunicación cliente-servidor entre tu aplicación y el hardware, y los detalles del protocolo. Por lo general, leer y solucionar problemas con esta información requiere un gran esfuerzo.
Consejos:
- Independientemente del tiempo que tarde VuGen en procesar la información con el registro habilitado, esto no afecta al tiempo de respuesta de la transacción; la sobrecarga del registro se excluye del tiempo medido.
- Desactive el registro si no es necesario.
- Desactive el registro cuando haya terminado con sus scripts. Incluir scripts con el registro activado hará que el controlador se ejecute más lento y muestre mensajes molestos.
- Deshabilitar el registro aumentará el número máximo de usuarios que puede simular desde LoadRunner.
- Considere la posibilidad de utilizar la opción "Enviar mensajes solo cuando se produzca un error": esto silencia los mensajes informativos innecesarios y solo informa sobre los mensajes relacionados con errores.
Piensa en los tiempos
Think Time es simplemente el retraso entre dos pasos.
El tiempo de espera ayuda a replicar el comportamiento del usuario, ya que ningún usuario real puede usar una aplicación como una máquina. VuGen genera el tiempo de espera automáticamente. Aun así, usted tiene el control total para eliminar, multiplicar o variar la duración del tiempo de espera.
Para entenderlo mejor: un usuario puede abrir una pantalla (una respuesta seguida de una solicitud) y luego escribir un nombre de usuario y una contraseña antes de presionar Enter. La siguiente interacción entre la aplicación y el servidor ocurre cuando el usuario hace clic en "Iniciar sesión". El tiempo que el usuario tarda en escribir el nombre de usuario y la contraseña se denomina Tiempo de espera en LoadRunner.
Si busca simular una carga agresiva en la aplicación, considere desactivar completamente el tiempo de reflexión.
Sin embargo, para simular un comportamiento de la vida real, puede seleccionar "Usar tiempo de pensamiento aleatorio" y establecer los porcentajes según lo desee.
Considera usar la opción Limitar tiempo de pensamiento para establecer un límite razonable. Por lo general, 30 segundos son suficientes.
Simulación de velocidad
La simulación de velocidad simplemente se refiere a la capacidad de ancho de banda de cada máquina cliente.
Dado que estamos simulando miles de usuarios virtuales a través de LoadRunner, es sorprendente lo sencillo que LoadRunner ha hecho la simulación del ancho de banda y la velocidad de la red.
Si tus clientes acceden a tu aplicación a más de 128 Kbps, puedes controlarlo desde aquí. Podrás simular el comportamiento real, lo que te ayudará a obtener estadísticas de rendimiento precisas.
La mejor recomendación es configurar el uso del ancho de banda máximo. Esto permite ignorar los cuellos de botella de rendimiento relacionados con la red y centrarse primero en los posibles problemas de la aplicación. Siempre se puede ejecutar la prueba varias veces para observar el comportamiento en diferentes circunstancias.
Emulación de navegador
La experiencia del usuario no depende del navegador que utilice, por lo que este aspecto queda fuera del alcance de las métricas de rendimiento. Sin embargo, puede elegir qué navegador desea emular, como se muestra en el panel inferior.
¿En qué momento exacto importa realmente qué navegador seleccione en esta configuración?
Utilizará esta configuración si su aplicación en cuestión es una aplicación web que devuelve respuestas diferentes para distintos navegadores. Por ejemplo, puede ver imágenes y contenido diferentes para Internet Explorer y Firefox.
Otra configuración importante es la de Simular caché del navegador. Si desea medir el tiempo de respuesta con la caché activada, marque esta casilla. Si busca la peor situación posible, obviamente no es necesario tenerla en cuenta.
La opción "Descargar recursos que no sean HTML" permitirá a LoadRunner descargar archivos CSS, JS y otros contenidos multimedia. Esta opción debe permanecer marcada. Sin embargo, si desea excluirla del diseño de su prueba de rendimiento, puede desmarcarla.
apoderado
Lo mejor es eliminar el proxy por completo de su Entorno de prueba — Un proxy en la ruta hace que los resultados de la prueba no sean fiables. Sin embargo, puede que te encuentres con situaciones en las que sea inevitable. En tales casos, LoadRunner ofrece opciones de configuración de proxy.
Deberías estar trabajando con la configuración "Sin proxy". Puedes obtenerla desde tu navegador predeterminado. Sin embargo, no olvides comprobar qué navegador está configurado como predeterminado y cuál es la configuración de proxy para ese navegador.
Si utiliza un proxy y este requiere autenticación (o un script), puede hacer clic en el botón Autenticar, que abrirá una nueva ventana. Consulte la captura de pantalla a continuación.
Utilice esta pantalla para introducir un nombre de usuario y una contraseña y autenticarse en el servidor proxy. Haga clic en Aceptar para cerrar la pantalla.
¡Enhorabuena! Ya has terminado de configurar tu script de VuGen. No olvides configurarlo también para todos tus scripts de VUser.
A continuación viene multidominio, ejecutando el escenario en el Controly la lectura de los resultados en Análisis de LoadRunner. Consulte las Arquitectura de LoadRunner y Prueba de carga guías.











