IMacros. Automatizando tareas y pruebas en entornos Web. 2


Recientemente me he tenido que enfrentar a un nuevo reto. En este caso era realizar unas pruebas masivas de una aplicación web para verificar que no aparecían comportamientos anómalos después de un cambio en la configuración del sistema. Rebuscando un poquillo siempre se encuenta algo que nos hace un avío, en este caso nos salió al paso IMacros.

¿Que es IMacros?
Dicho mal y pronto graba lo que hacemos con una página web y después es capaz de reproducirlo. Por el camino es capaz de generar estadísticas, capturar todo o parte del contenido de la página, se puede configurar para que varíe los datos de entrada e incluso de pueden crear scripts para que haga otro montón de cosas. En otras palabras es una extensión del navegador web que permite grabar, reproducir y almacenar las interacciones con la Web.

Aviso navegantes:

  • Depende del navegador. Yo sólo lo he usado en Windows, pero indican que es multiplataforma.
  • Estamos hablando de un SW comercial con una versión freeware potente y recortadita en las funcionalidades mas interesantes.

¿Para que sirve?.
Pues para un millón de cosas. En concreto yo lo estoy usando para:

  • Que se ejecuten de forma automática operaciones repetitivas sobre una web. Por ejemplo verificar el estado en el que está o realizar las operaciones comunes de una introducción de datos o a un grupo de pruebas de un aplicativo.
  • Pruebas de SW. Para verificar que un determinado aplicativo funciona bien después de realizar cambios … o sólo por tener un banco de pruebas para verificar el comportamiento del sistema.
  • Realizar una navegación automática y comprobar determinados elementos.
  • Obtener información del rendimiento de una aplicación Web.

Instalar Imacros
Dependiendo para que navegador lo queramos instalar se tratará como un plugin (firefox) o como un programa (IE). Así lo primero Descargar el SW de la página de IOPUS y seguir el método de instalación determinado dependiendo del navegador y SO.

Una vez instalado cuando abras el navegador encontraras un icono en la barra de herramientas que te dará acceso a la funcionalidad. Una vez activado lo que sucede es que a la izquierda del navegador se abre una ventana (tipo el historial) que permite grabar, reproducir y gestionar las macros.

Toda la información de Imacros residirá en el disco duro en Mis DocumentosImacros. (para Windows) Aquí podrás encontrar los ficheros de log, las macros y los resultados de medir los tiempos de carga de las páginas.

Dinámica de trabajo.

  • Pensar que queremos hacer.
  • Grabar una macro.
  • Modificar la macro a nuestro antojo/necesidad.
  • Ejecutar la macro.
  • Interpretar los resultados.

Grabando una macro

Para grabar una macro basta situarse sobre la página en la que queremos iniciar la grabación y pulsar en la ventana de Imacros que grabe. A partir de ahí ir realizando las acciones que queramos reproducir que se irán almacenando en la macro. Hasta el momento a mi me ha sido capaz de capturar prácticamente cualquier interacción con el navegador, salvo cuando se abre una ventana adicional que no es un popup, tipo un selector de los certificados digitales que tienes instado en el navegador.

A medida que se graban la macros se tiene opción desde la ventana de imacros de realizar capturas de la pantalla actual. Aquí he visto algo curioso ya que IE y Firefox no permiten los mismos tipos de capturas, Así IE permite desde las utilidades de Imacros capturar partes de la pantalla y los textos que hay en ella y Firefox realizar capturas de las pantallas completas. Después si eres lo suficientemente hábil también se pueden modificar las macros a mano para realizar estas capturas y mucho mas.

Reproduciendo una Macro
Reproducir una macro es tan sencillo como darle a play desde la ventana de ejecutar. Permitirá ejecutarla una vez o múltiples veces indicando el número de iteraciones que se desean. Se contempla también la posibilidad de poder lanzar las ejecuciones desde la línea de comando, y minimizada pero hasta donde he visto está opción está disponible sólo para las versiones de pago.

En cuanto ejecutemos una macro veremos cosas extrañas, por lo menos a mi me pasa, y muy probablemente necesitemos modificar la macro. Ya sea porque aparecen pantallas que solicitan la interacción del usuario, cosa nada deseable en una ejecución múltiple, o queremos recopilar estadísticas y generar informes, …

Editando un script
Cuando realmente se confirma si estas cosas son útiles es cuando se le puede meter mano a las tripas y conseguir resultados de una forma mas o menos ágil. Esta utilidad en concreto me ha sorprendido ya que la edición y modificación de las macros es muy fácil y cómodo y a pesar de que las macros tienen una capacidad limitada se puede interactuar con ellas mediante scripts, escritos en múltiples lenguajes, lo que extiende muchísimo sus posibilidades.

Yo me he quedado en lo que es la modificación de las macros. Para hacerlo fue imprescindible echar mano a la documentación de la plataforma.

Para editar la macro escogemos el archivo iim donde se guardó y lo editamos con nuestro editor de texto favorito. Esto se puede hacer desde el mismo navegador o accediendo directamente al directorio que comentábamos antes.

Cositas que se pueden hacer:

  • Evitar que aparezcan ventanas de aviso de Imacros durante la ejecución. Incluir en la cabecera de la macro: SET !EXTRACT_TEST_POPUP NO
  • Evitar que las estadísticas de ejecución se almacenen en un fichero genérico. Incluir en la cabecera de la macro: SET !FILESTOPWATCH NO
  • Medir tiempos de carga de una página o secuencia de páginas. Incluir antes y después de la secuencia de páginas a evaluar: STOPWATCH ID=ETIQUETA
  • Almacenar datos en un fichero. Añadir en el punto deseado: SAVEAS TYPE=TIPO FOLDER=C:TEMP FILE=fichero. Dependiendo del tipo se podrán grabar múltiples datos. Así se pueden descargar imágenes de la página, el texto que contienes, la URL a la que apuntan, … . Yo me centraré en el tipo EXTRACT que es la forma que identifiqué que podía extraer información.
  • !EXTRACT. Esta variable va almacenando los textos que le enviemos y en una orden como la anterior lo que hará será grabar en el fichero todos los valores que tenga almacenados separados por comas.
  • Para almacenar en !EXTRACT la url de la página visitada insertaríamos: ADD !EXTRACT {{!URLCURRENT}} 
  • Para almecenar en !EXTRACT los tiempos que medimos con STOPWATCH ID=ETIQUETA insertaríamos: ADD !EXTRACT {{!STOPWATCHTIME}}
  • Para almacenar en !EXTRACT las capturas de texto de partes de la página visitada: TAG POS=1 TYPE=SPAN ATTR=ID:spanUsuario EXTRACT=TXT .Este comando en concreto se coloca automáticamente desde la grabación de macros en IE, supongo que algún habilidoso podrá ponerlo a mano.
  • Introducir una espera en la ejecución: WAIT SECONDS=60
  • Los comentarios en la macro se introducen con .

    Un ejemplo de esto sería:

      VERSION BUILD=7040903
      TAB T=1
      TAB CLOSEALLOTHERS
      SET !EXTRACT_TEST_POPUP NO
      SET !FILESTOPWATCH NO
      URL GOTO=https://www.sevilla.org/saetas/sevilla/es/
      STOPWATCH ID=1
      TAG POS=1 TYPE=A ATTR=TXT:CarpetaCiudadana
      STOPWATCH ID=1
      ADD !EXTRACT {{!STOPWATCHTIME}}
      ADD !EXTRACT {{!URLCURRENT}}
      TAG POS=1 TYPE=SPAN ATTR=ID:spanUsuario EXTRACT=TXT
      SAVEAS TYPE=EXTRACT FOLDER=C:TEMP FILE=saetas.txt
      WAIT SECONDS=60

    NOTA: Los elementos que aparecen precedidos de ! son las variables que define Imacros y que se usan para modificar su comportamiento, almacenar datos, …


    Lo que se queda en el tintero:

    • Capacidades de scripting.
    • Uso de variables.
    • Ejecuciones de una misma macro usando diferentes juegos de datos de entrada.
    Compartir
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  

    Dejar un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    2 ideas sobre “IMacros. Automatizando tareas y pruebas en entornos Web.