martes, 14 de octubre de 2008

WS-I Testing Tools V1.1

Ya en posts anteriores he hecho referencia a la organización WS-I y sus herramientas de verificación de interoperabilidad http://www.ws-i.org/. En resumen, tenemos que los autores del WS-I Basic Profile querían proporcionar una manera sencilla de asegurar la compatibilidad con esta especificación. Así es como crearon un conjunto de herramientas para que los desarrolladores puedan verificar que los artefactos generados fueran conformes al Basic Profile.

Este conjunto de herramientas está conformado por:
- Monitor: intercepta mensajes hacia y desde un servicio Web
- Analizer: inspecciona varios artefactos de servicios Web (incluyendo los mensajes interceptados por la herramienta Monitor)

Es importante mencionar que existen implementaciónes en Java y C# y, como parte de nuestra exposición, nos gustaría mostrar la forma de incorporar y utilizar estas herramientas en nuestros proyectos.

Por ejemplo, a continuación se muestran los pasos para la utilización de la implementación C#.

En primer lugar, descargaremos las herramientas "Interoperability Testing Tools V1.1" de la página del WS-I. En la carpeta "common/profiles" se encuentran los archivos correspondientes para cada perfil. Nosotros vamos a usar el fichero "BasicProfileTestAssertions.xml" para comprobar que cumplimos con el perfil básico.

En la carpeta "cs/bin", editamos el archivo "monitorConfig.xml" para configurar la herramienta de monitorización:
- Con la etiqueta indicamos el puerto en el que la herramienta escuchará las peticiones al servicio web que vamos a comprobar.
- Con la etiqueta indicamos el host y puerto real del servicio web.

Los demás valores podemos dejarlos tal y como vienen por defecto. De esa forma, la herramienta reenviará todos los mensajes recibidos en el puerto indicado en listenPort al host y puerto indicados en schemeAndHostPort y guardará todos estos mensajes en un fichero "tracelog.xml" que usaremos más adelante.

Una vez completada la configuración, ejecutamos la herramienta "monitor.exe" para comenzar a monitorizar.

A continuación tenemos que crear un archivo WSDL modificado para que la URL donde el cliente vaya a buscar el servicio Web se encuentre en el host y puerto donde tenemos escuchando a la herramienta "monitor.exe" en lugar del host y puerto real, por lo demás, el archivo WSDL es igual. La herramienta "monitor.exe" se encargará de redireccionar las peticiónes que reciba al host real que hemos indicado antes en el archivo de configuración y de paso monitorizará todos los mensajes intercambiados en el proceso, que quedarán almacenados en el archivo "tracelog.xml".

Después de alguna llamada al servicio Web que pase a través del monitor ya tendremos unos cuantos mensajes en el archivo de logging, así que podemos cerrar la herramienta de monitorización.

A continuación editamos el archivo"analizerConfig.xml" para configurar la herramienta de análisis:
- Con la etiqueta indicamos el nombre del puerto del servicio Web.
- Con la etiqueta indicamos la dirección del archivo WSDL.

Si dejamos los demás valores tal y como vienen por defecto, la herramienta utilizará los mensajes almacenados en el archivo "tracelog.xml" y el archivo "BasicProfileTestAssertions.xml" para hacer las pruebas.

Finalmente ejecutamos la herramienta "Analyzer.exe" para conseguir el archivo "report.xml" que contiene los resultados de los tests.

Saludos,

Eduardo

No hay comentarios: