martes, 22 de enero de 2013

Pruebas de carga CITRIX con Loadrunner (2ª Parte)

Tras este “corto” periodo de silencio vamos a continuar con los consejos de grabación sobre CITRIX con LoadRunner.
En el anterior artículo nos quedamos en los consejos previos a la grabación incluyendo los métodos de conexión a la granja CITRIX, durante este segundo post nos centraremos en la grabación propiamente dicha.

5.- Grabando...

El cuadro de control del proceso de grabación será el siguiente:



Paramos la grabación, finaliza la ejecución y genera el script.
Pausamos la grabación, no se graban los eventos hasta que volvamos a pulsar el botón de grabación.
Aquí estableceremos en la parte que nos encontramos (vuser_init, Action, vuser_fin)
Start Transaction (Comienzo de una transacción)
End Transaction (Fin de la transacción)
Sincronizar por bitmap (imágenes).
Sincronizar por texto.



Una vez comencemos la grabación debemos tener presente que LoadRunner solo grabará las pulsaciones de teclado y de ratón, excepto si tenemos instalado el agente CITRIX como comentábamos en el anterior artículo. Al tratarse de aplicaciones que tienden a evolucionar estéticamente o, dicho de forma más clara, en las que suele variar la disposición de los componentes (cuadros de texto, desplegables, botones, etc.), es necesario que el script sea capaz de amoldarse a estos cambios sin que tengamos que modificarlo. Para ello recomendamos seguir estos consejos en la medida de lo posible:



  • Siempre que sea posible es recomendable evitar el uso del ratón y navegar por la aplicación mediante atajos de teclado. Es decir, si para pulsar un botón “Ok”, por ejemplo, se puede hacer mediante una combinación tipo ALT+O, es preferible la combinación de teclas que la pulsación del ratón sobre el botón. El motivo es que, en caso de que se añadan nuevos componentes o que “simplemente” una versión nueva de la aplicación modifique la posición del botón, nuestro “click” de ratón grabado fallará irremediablemente al pulsar en un lugar no deseado. Por esto mismo también es preferible movernos entre los diferentes campos mediante la tecla de tabulación.


  • En el caso de que el uso del ratón sea indispensable, como por ejemplo en alguna barra de desplazamiento, nunca debemos utilizar el arrastre, es decir, dejar pulsado un botón y mover el ratón, o el “doble click”. Aunque LoadRunner sí tiene instrucciones que contemplan estos eventos (ctrx_mouse_click_down, ctrx_mouse_click_up y ctrx_mouse_double_click), su funcionamiento es muy inestable. En su lugar, para arrastrar, es preferible realizar los “clicks” necesarios sobre la barra hasta que estemos situados en la posición deseada; y, para realizar un “doble click”, hacer un “click simple” y una pulsación de la tecla “ENTER”.


  • Es obligatorio para el correcto funcionamiento del script que se realice una sincronización después de cada acción, de tal forma que tengamos la seguridad de que ha ocurrido el evento asociado a esta acción. Por ejemplo, si pulsamos en un desplegable deberíamos grabar un sincronismo por bitmap sobre la lista que se despliega.

  • A la hora de generar los sincronismos por bitmap, seleccionad siempre un área pequeña que haya cambiado desde la pulsación del ratón o la entrada por teclado. Por ejemplo, si la ejecución debe esperar a que un cuadro de texto esté vacío, podemos seleccionar una pequeña parte del mismo: 







  • Siempre que se realice una introducción por teclado, ya sea un texto, un espacio, un tabulador o un ENTER, es muy recomendable colocar un think_time de unos dos segundos para que la conexión CITRIX se estabilice. De no ser así puede que no se haya terminado de introducir el texto cuando ya se esté ejecutando la siguiente instrucción.



  • Para que nuestros scripts sean reutilizables en mayor medida, es recomendable dividirlo en el mayor número de acciones posible. De esta forma tendremos una serie de módulos que nos evitarán tener que grabar el ciclo entero en caso de algún cambio. En la siguiente imagen de ejemplo la reutilización del Action "MenuPrincipal" nos permite posicionar la ejecución en un punto inicial tras cada paso por las opciones del mismo: 




  • Desde la opción "Run Logic" en "Run-time Settings" del VUGen podemos dirigir el flujo de ejecución a través de cada uno de los módulos Action. De esta forma podemos controlar los posibles errores mediante sentencias if evitando así que se ejecuten partes del código no controladas. Si en vez de dividir el código en acciones, lo dividiesemos en transacciones, el control y mantenimiento del mismo resultará mucho más complejo.

En la próxima entrega explicaremos la parte más importante del proceso de preparación de unas pruebas CITRIX, la sincronización.

No hay comentarios:

Publicar un comentario