6.-
Sincronizando...
La sincronización es el paso indispensable para que la grabación en
CITRIX sea exitosa. Como comentábamos en el artículo anterior, este tipo de
grabaciones no va por eventos o URLs como sucede en otros protocolos más comunes, sino por coordenadas asociadas a pulsaciones de ratón y/o teclado. Por lo
tanto después de cada acción debe establecerse algo, una
sincronización, para que el usuario virtual espere a que se cargue
el evento, la ventana o los datos, antes de realizar la siguiente, de
lo contrario podrían producirse eventos inesperados. Estas
sincronizaciones deben realizarse en objetos, textos…. que no se
encuentren en el estado anterior a la acción realizado.
Se pueden
diferenciar dos tipos de sincronización dependiendo de la presencia
o ausencia del agente CITRIX de LoadRunner en el servidor CITRIX:
Grabación con agente CITRIX
El agente CITRIX
permite que el VUGen reconozca los objetos de la aplicación, es
decir, los botones, cuadros de texto y similares. Hemos de tener en
cuenta que el cliente CITRIX recibe del servidor únicamente imágenes
por lo que es necesaria alguna aplicación en el servidor que informe de
lo que está ocurriendo. Desafortunadamente sólo reconoce estos
objetos si la aplicación está programada en ciertos lenguajes como
VB, C o .NET. Por otro lado suele ser bastante difícil que se nos
permita instalar un software en cada una de las máquinas servidores
de la granja CITRIX.
Modos de sincronización:
- Sincronización por
ventana, esta se
hace de forma automática, pulsando sobre la ventana emergente (se
espera a que la ventana esté completa)
- Sincronización por
texto:
- Forma automática, pulsando sobre un texto de la ventana.
- Forma manual, pulsando sobre el botón de Sincronizar por texto y seleccionando una zona que contenga texto.Botón "Sincronizar por texto"
- Sincronización por
imagen, pulsando
sobre el botón de bitmap de la barra de grabación y seleccionando
una zona rectangular.
- Sincronización por
objeto, (combo,
check, List-box...) se realiza de forma manual haciendo clic sobre
el objeto en concreto.
Grabación sin agente CITRIX
Este es el tipo de grabación
más común, y, a su vez, más laborioso. Al no disponer de información en tiempo real sobre los objetos en la parte servidor, la única forma de
sincronizar es utilizando los bitmaps y los nombres de ventana. Es
obligatorio para el correcto funcionamiento del script que se realice
una sincronización por
bitmap después de cada pulsación de ratón, de tal forma que
tengamos la seguridad de que ha ocurrido el evento asociado a esta
pulsación. Por ejemplo, si pulsamos en un desplegable deberíamos
grabar un sincronismo por bitmap sobre la lista que se despliega.
Pulsamos sobre el desplegable
Sincronizamos sobre la zona que cambia
VUGen guarda la información
de los bitmaps como un “hash”, es decir como una cadena
hexadecimal de 32 caracteres. Esta cadena es única y con la
variación de cualquier píxel del área seleccionada el valor es
distinto. De ahí que sea muy importante que todas las grabaciones
estén configuradas igual en tamaño de ventana y profundidad de
color.
Ejemplo de hash
Estos sincronismos se pueden realizar durante la grabación, lo que es muy recomendable, o una vez concluida podemos pasar en el VUGen a modo “Tree” y pulsando botón derecho sobre la imagen asociada al paso seleccionando “insert_sync_on_bitmap”
Menú contextual modo Tree
Otra instrucción útil relacionada con el control por bitmaps es “ctrx_sync_on_bitmap_change”, que nos permite seleccionar un área de la pantalla y espera a que el contenido de la misma varíe. Esta instrucción guarda el “hash” asociado a la imagen previa al cambio y permite que la ejecución continúe cuando su valor sea distinto.
Ejemplo de Bitmap Change
Recordad que la estructura final de un script debe ser lo más parecido a:
Acción-Sincronismo-Acción-Sincronismo
Tras cada acción
debe haber siempre una sincronización.
En el próximo y definitivo artículo daremos una serie de consejos a la hora de optimizar el funcionamiento del ciclo grabado.
En el próximo y definitivo artículo daremos una serie de consejos a la hora de optimizar el funcionamiento del ciclo grabado.
No hay comentarios:
Publicar un comentario