domingo, 28 de julio de 2013

Un breve acercamiento a SoapUI



Una vez que se comienza a trabajar con servicios web, uno de los primeros inconvenientes con los que se topa un desarrollador viene a la hora de realizar pruebas funcionales sobre éstos servicios web (especialmente si están basados en SOAP). Al tratarse de un protocolo particular y una nomenclatura de mensajes un tanto engorrosa, el realizar programas clientes de prueba se vuelve tedioso.

Es en ese ámbito en donde encontramos al aplicativo llamado SoapUI, que básicamente nos brinda una interfaz cómoda e intuitiva para realizar pruebas funcionales de servicios web basados en SOAP sin la necesidad de escribir largas rutinas de código para el consumo del servicio web.

Es necesario recalcar que SoapUI nos sirve para realizar pruebas funcionales, no pruebas de carga, como es el caso de JMeter. La diferencia básicamente es que en JMeter se puede lanzar a ejecutar el mismo servicio web con configuraciones específicas de iteraciones y recolección de información estadística muy avanzada. Sin embargo, esto no quiere decir que SoapUI es irrelevante, sino que como veremos en entradas posteriores, ambos se pueden complementar.

Las ventajas que nos ofrece SoapUI son las siguientes:
  • Interfaz intuitiva y fácil de usar.
  • Generación automática de peticiones SOAP para cada método. (Esto es lo que nos servirá en un futuro para realizar pruebas de carga de servicios web con JMeter)
  • Es gratuito


SoapUI puede ser descargado de su sitio oficial, sin embargo aquí encontrarán el link directo para la descarga de la versión gratuita del aplicativo.

La instalación del aplicativo resulta ser muy sencilla, con opciones de selección típicas: directorios de instalación, localización de accesos directos, etc.

Una vez que está instalado, seguiremos los siguientes pasos para realizar la prueba funcional de un servicio web:

1. Crear un nuevo proyecto SoapUI
Un proyecto en SoapUI es un set de métodos que corresponden a una definición WSDL. Es decir que un proyecto de SoapUI estará atado a un WSDL específico y nos servirá para probar los métodos que se encuentren publicados en ese contrato.

Entre las principales propiedades que vamos a editar están:
  • Project Name.- Aquí ingresaremos el nombre del proyecto.
  • Initial WSDL/WADL.- Aquí ingresaremos la URL del contrato WSDL.
  • Create Requests.- Nos aseguraremos de que esta casilla esté activada. Permitirá que SoapUI genere automáticamente los mensajes SOAP necesarios para realizar las peticiones de cada método del servicio web
Para crearlo, seguiremos estos pasos:

Nuevo Proyecto SoapUI

Establecer las propiedades del Proyecto SoapUI

Proyecto SoapUI generado exitosamente

2. Abrir la solicitud de un método de servicio web
Una vez que tenemos generado el proyecto, podremos que debajo del árbol de proyectos se crea una rama con el nombre de nuestro proyecto, y dentro de ella varias ramas, una por cada método que el contrato del servicio web haya descrito.
Cada método tendrá un elemento llamado Request1, éste es básicamente el mensaje SOAP que el aplicativo generó para invocar una solicitud del respectivo método. Ahora lo único que nos resta hacer es seleccionar el método que deseamos probar, y abrir con doble clic su respectivo "Request1".

Para abrir, seguiremos estos pasos:

Seleccionar la petición generada del método deseado

3. Probar un método de servicio web
Una vez abierta la respectiva petición, podremos visualizar una ventana nueva con una división. En el lado izquierdo estará el mensaje SOAP de petición y el lado derecho en blanco. En la parte superior de esta ventana divisaremos un botón de flecha verde, el mismo que servirá para poder ejecutar la petición del método.
Ahora podremos darle clic a la flecha verde y esperar por la respectiva respuesta del método. En este ejemplo invocaremos un método que simplemente retorna la cadena de caracteres "Hello world".

Para ejecutarlo, seguiremos estos pasos:

Abrir y ejecutar la petición correspondiente

Visualizar la respuesta SOAP correspondiente

4. Probar un método de servicio web con parámetros
Si el método del servicio web requiere parámetros de entrada, podremos setear sus valores desde el lado izquierdo de la pantalla de petición SOAP. En este ejemplo invocaremos un método que recibe por parámetro un nombre como cadena de caracteres y devuelve la frase "Hola <nombre_recibido>"

Para ejecutarlo, seguiremos estos pasos:

Abrir la petición correspondiente

Editar los parámetros de la petición correpondiente y ejecutarla

Visualizar la respuesta SOAP correspondiente

Si les ha parecido interesante la entrada, tienen comentarios, u opiniones acerca de este tema o alguno relacionado, siéntanse en la libertad de comentar. La meta es aprender.