Realice pruebas sobre la página IBM Rational Insight Hourglass con IBM Rational Performance Tester

La página® Hourglass® en IBM Rational Insight es una página Web compleja y dinámica. Cuando IBM® Rational® Performance Tester ejecuta pruebas sobre Rational Insight, la página Hourglass puede causar problemas. Este artículo explica las mejores prácticas para manejar la página Hourglass al realizar pruebas de rendimiento de Rational Insight.

Zhi Cheng Liu, Staff Software Engineer, IBM

Author photoEl Dr. Zhi Cheng Liu trabaja en el Laboratorio de Desarrollo IBM Rational System Verification Test en China. Participó en la comprobación de sistemas de varios de los productos más importantes de IBM Rational y tiene gran experiencia en la automatización de pruebas de rendimiento y confiabilidad.



Peng Peng Wang, : Software engineer, Software Test Specialist: Test Automation, IBM  

Author photoPeng Peng Wang, Performance Engineer, se dedica a la prueba de rendimiento y confiabilidad de Rational Insight. Tiene experiencia en Rational Insight y Rational Performance Tester y en la determinación de problemas de rendimiento de ajustes de configuración.



19-01-2010

Rational Insight es una solución de informe empresarial construida en el servidor IBM® Cognos® Business Intelligence (BI). Cuando Rational Performance Tester simula actividad de usuarios y genera carga contra el servidor de informes Rational Insight, la página Hourglass, que indica la actividad del servidor, podría causar problemas por las siguientes razones:

  • En Rational Performance Tester, el mecanismo de grabación y reproducción que genera carga contra el servidor y los scripts de grabación simple poseen un control de bucles que resulta insuficiente para manejar la página Hourglass.
  • El comportamiento del servidor de informes Rational Insight difiere dependiendo de la carga de trabajo del servidor, por lo cual Rational Performance Tester requiere de scripts especiales para manejar la página Hourglass.
  • En Rational Performance Tester, el mecanismo de puntos de verificación (VPs) de contenidos que realiza la verificación estadística de contenidos de respuesta no puede verificar el contenido dinámico de la página Hourglass.

Para manejar la página Hourglass y procesar su contenido dinámico durante la prueba de rendimiento de Rational Insight, use los scripts y el código personalizado que se proporcionan en este artículo.

La página Hourglass en Rational Insight

El servidor de informes Rational Insight es una típica aplicación B/S de tres niveles que permite a los usuarios generar informes a través de un navegador Web.

Cuando el servidor envía una nueva solicitud de un usuario para ejecutar un informe, se devuelve una página Hourglass (Figura 1). Al grabar con Rational Performance Tester, suele haber un sólo usuario activo en el sistema, es decir que el servidor Rational Insight no está ocupado y, por consiguiente, la página Hourglass no se grabará. Sin embargo, al reproducir el script de Rational Performance Tester para simular usuarios múltiples, se genera una importante carga de trabajo para el servidor Rational Insight, el cual podría responder a una solicitud de usuario con una página Hourglass. Esta actividad provoca una falla del script de Rational Performance Tester porque no existe suficiente código para manejar estas condiciones.

Figura 1. Página de progreso de Hourglass
Página de progreso de Hourglass

Cuando el servidor Rational Insight se encuentra ocupado, existen dos solicitudes que pueden generar una página Hourglass. La primera es la solicitud de la página Prompt (Aviso); cuando el estado de esta solicitud es Complete (finalizado), la página Hourglass estará en estado Prompting. La segunda es la solicitud de la página Report Generation (Generación de informes); cuando el estado de esta solicitud es Complete, la página Hourglass estará en estado Complete (Figura 2).

Figura 2. Transferencia de estados en las páginas Prompt y Report Generation
Transferencia de estados en las páginas Prompt y Report Generation

Vista ampliada de la Figura 2.


Maneje la página Hourglass con scripts de Rational Performance Tester y código personalizado

Para lograr que el script maneje todas las condiciones en las que podría visualizarse la página Hourglass, puede usar el estado Returned (Devuelto) del servidor Rational Insight para controlar los bucles de scripts de Rational Performance Tester (Figura 3), sin importar cuántos bucles itere la página Hourglass.

Figura 3. Manejo del flujo de control de la página Hourglass
Manejo del flujo de control de la página Hourglass

La Figura 4 muestra un típico script de Rational Performance Tester. El código personalizadoGetFirstStatusdevuelve el primer estado del servidor Rational Insight. El estado devuelto se usa en una cláusula "If" (Si) para controlar el ingreso al bucle. El bucle infinito del script de Rational Performance Tester itera la página Hourglass, mientras que el código personalizadoPromptLoopControlaccede al estado de servidor y usa el estado Returned (Devuelto) para controlar la salida del bucle.

Figura 4. Scripts de Rational Performance Tester de muestra para el manejo de la página Hourglass
Scripts de Rational Performance Tester de muestra para el manejo de la página Hourglass

Debido a que la información de estado devuelta en la respuesta del servidor es un factor fundamental para controlar los bucles de scripts de Rational Performance Tester, deberá usar el código personalizado de Rational Performance Tester para extraer el estado y otra información de contexto. El Listado 1 incluye un código personalizado de muestra en el que se adopta una técnica denominada concordancia de expresiones regulares.

Listado 1. Código personalizado para extraer información de estado de la respuesta del servidor
 Matcher matcher =
                Pattern.compile(".*"status":
                "(.*)", "conversation":
                "(.*)", "tracking":
                "(.*)",
                "secondaryRequests".*"parameters":
                "(.*)"",Pattern.DOTALL).matcher(args[0]); if
                (matcher.lookingAt()) { status = matcher.group(1); }

La API de Rational Performance Tester también proporciona una función de control de bucles. En este caso, el código personalizado verifica el estado y, si éste equivale a completo, sale del bucle llamando a getLoopControl.breakLoop().

Listado 2. Código personalizado para el control de bucles
 private void
                loopControl(ITestExecutionServices tes, boolean error, String status) { String
                trans_result = error ? "abort" : "done"; IDataArea userDataArea =
                tes.findDataArea(IDataArea.VIRTUALUSER); if (status.equals("error")) {//The
                    attempted vp increased by 1 vpNumAttempt.increment(); //The failed vp
                    increased by 1 vpNumFailed.increment();
                tes.getTestLogManager().reportMessage( String.valueOf("VPFailed: " +
                vpNumFailed.value())); tes.getLoopControl().breakLoop(); } else if
                (status.equals("complete")) {//The attempted vp increased by
                    1 vpNumAttempt.increment();//The Passed vp increased by
                1 vpNumPass.increment(); tes.getLoopControl().breakLoop(); } }

Puntos de verificación de Rational Performance Tester

Para verificar el comportamiento esperado de las respuestas de páginas específicas, puede usar los puntos de verificación (VPs) de Rational Performance Tester, a saber: VPs de títulos de páginas, VPs de códigos de respuesta, VPs de tamaño de respuesta y VPs de contenidos.

VPs de títulos de páginas: verifican el título de página esperado de la solicitud primaria de una página. Si el título devuelto es inesperado, el contador de puntos de verificación fallidos aumenta en 1 unidad y esto puede indicarse en los informes de pruebas de Rational Performance Tester.

VPs de códigos de respuesta: verifican que el código de respuesta coincida con un valor esperado. Si el código de respuesta devuelto no es 200, 201, 202, 204, 206, 301, 302 o 304, el contador de puntos de verificación fallidos aumenta en 1 unidad y esto puede indicarse en los informes de pruebas de Rational Performance Tester.

VPs de tamaño de respuesta: verifican que el número de bytes devuelto en la respuesta sea el esperado. Si el conteo de bytes no coincide, el contador de puntos de verificación fallidos aumenta en 1 unidad y esto puede indicarse en los informes de pruebas de Rational Performance Tester. Puede especificar un tamaño de respuesta exacto o verificar que el conteo de bytes se encuentre dentro de un determinado rango.

VPs de contenidos: verifican que la respuesta contenga ciertas cadenas esperadas. La verificación puede fallar por dos razones: si se encuentra al menos una de las cadenas verificadas o si no se encuentra ninguna de las cadenas verificadas.

Luego de la ejecución del planificador de pruebas de Rational Performance Tester, puede ver los resultados de los VPs de elementos de páginas relacionados en Page Element Summary (Resúmen de elementos de páginas) (Figura 5). Total Page Element VPs Passed [for Run] (Total de VPs de elementos de páginas pasados [para Run]) muestra la cantidad de puntos de verificación pasados. Percent Page Element VPs Passed [para Run] (Total porcentual de VPs de elementos de páginas pasados [para Run]) muestra el porcentaje de VPs pasados. Puede usar estos indicadores para evaluar el estado del contenido de respuesta de las páginas clave. Si algunos puntos de verificación fallaron, puede buscar el mensaje de error en el registro de pruebas e individualizar la causa raíz de los errores.

Figura 5. Informe de puntos de verificación
Informe de puntos de verificación

Personalización de los puntos de verificación de la página Hourglass

Como muestra el flujo de transición de estados (Figura 2), el punto de verificación clave para la página Hourglass es el valor del estado hourglass. Si el estado hourglass es “complete”, la página Hourglass se ha ejecutado con éxito y el número de VPs pasados habrá aumentado. Si hubo algún problema en el servidor, la respuesta de la página devuelve contenidos con un mensaje de error, y el número de VPs fallidos habrá aumentado. Sin embargo, cuando el servidor está ocupado y el estado hourglass es Working (en funcionamiento) o Still Working (todavía en funcionamiento), no se medirá ningún punto de verificación.

Los cuatro tipos de puntos de verificación no verificarán el contenido de respuesta dinámico de la página Hourglass. Para verificar dicho contenido, use el código personalizado y cree puntos de verificación que filtren y analicen el estado hourglass desde el contenido dinámico.

El procesamiento típico de los puntos de verificación hourglass es el siguiente:

  • El contenido de respuesta se procesa y el valor del estado se filtra usando una expresión regular de Java™. El valor del estado será: Completed, Working, stillWorking o Error.
  • Rational Performance Tester consume los objetos del contador de puntos de verificación (vpNumPassed, vpNumFailed y vpNumAttempted) y los muestra en sus informes.
  • Los contadores de puntos de verificación aumentan de acuerdo con el valor del estado. Si el estado es igual a completed, los puntos de verificación pasados (vpNumPassed) aumentan en una unidad. Si el estado equivale a error, los puntos de verificación fallidos (vpNumFailed) aumentan en una unidad.
Listado 3. Código de muestra de puntos de verificación personalizados
String pageTitle =
                args[1].toString(); if (rootStat != null) {//Initialize and construct VP
                    objects. String[] pathPass = { "Custom", "Verification Points", "All Custom
                VPs", "Pass", pageTitle + "_VPass" }; String[] pathFail = { "Custom", "Verification
                Points", "All Custom VPs", "Fail", pageTitle + "_VPFailed" }; String[] pathAttempt =
                { "Custom", "Verification Points", "All Custom VPs", "Attempt", pageTitle +
                "_VPAttempt" }; vpNumAttempt = rootStat.getStatic(pathAttempt); vpNumPass =
                rootStat.getStatic(pathPass); vpNumFailed = rootStat.getStatic(pathFail); } Matcher
                matcher = Pattern.compile(".*"status":
                "(.*)", "conversation":
                "(.*)", "tracking":
                "(.*)",
                "secondaryRequests".*"parameters":
                "(.*)"",Pattern.DOTALL).matcher(args[0]); if
                (matcher.lookingAt()) { status = matcher.group(1); } if (status.equals("error"))
                    {//The attempted vp increased by 1 vpNumAttempt.increment();//The
                    failed vp increased by 1 vpNumFailed.increment();
                tes.getTestLogManager().reportMessage( String.valueOf("VPFailed: " +
                vpNumFailed.value())); } else if (status.equals("complete")) {//The attempted vp
                    increased by 1 vpNumAttempt.increment();//The Passed vp increased by
                1 vpNumPass.increment(); }

Este código personalizado graba los contadores de puntos de verificación personalizados cuando Rational Performance Tester ejecuta una prueba. Sin embargo, la plantilla predeterminada de Rational Performance Tester no muestra los contadores personalizados. Para ver los puntos de verificación personalizados en una tabla o un gráfico lineal de tendencias en los informes de Rational Performance Tester, arrastre los contadores a los paneles de respuesta de los informes, como muestra la Figura 6.

Figura 6. Resumen de puntos de verificación personalizados
Resumen de puntos de verificación personalizados

Resumen

Al efectuar pruebas de rendimiento del servidor de informes Rational Insight u otras soluciones basadas en Cognos o Rational Insight, puede usar las prácticas desarrolladas en este artículo para detectar problemas que podrían surgir en relación con la página Hourglass. El uso de código personalizado en Rational Performance Tester permite implementar un control de bucles complejo, ejecutar simulaciones e implementar puntos de verificación.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Rational
ArticleID=462489
ArticleTitle=Realice pruebas sobre la página IBM Rational Insight Hourglass con IBM Rational Performance Tester
publish-date=01192010