Está en la página 1de 15

Probar un Web service existente

Directorios y recursos de Web services que pueden utilizarse libremente y sin


subscripcin de pago, por ejemplo:

http://www.webservicex.net, servicios web listos para utilizar


http://xmethods.net, otro clsico
http://www.wsindex.org/Web_Services, servicios web y recursos relacionados

En este caso se utilizara el servicio Conversor de Divisas, cuyo endpoint es:


http://www.webservicex.net/CurrencyConvertor.asmx?WSDL, para conocer las tazas
cambiarias de las principales monedas del planeta.
Creamos un nuevo proyecto SOAP desde el men File | New SOAP Project:

Completar la siguiente informacin del proyecto:

Project Name: CurrencyConvertor


Path WSDL, direccin web o ruta de fichero donde se encuentra el descriptor del
servicio web de trabajo:
http://www.webservicex.net/CurrencyConvertor.asmx?WSDL
(Opcional) Create Request: activamos el checkbox de Create sample requests for
all operations?. soapUI crear un esqueleto de mensaje SOAP para invocar a los
mtodos del servicio web.

Si la direccin del descriptor es correcta, soapUI recuperar el WSDL del web service.
Si no hay errores sintcticos ni ciertas incoherencias semnticas, crear el proyecto con la
siguiente estructura:

Nombre del proyecto


Dos interfaces, CurrencyConvertorSoap y CurrencyConvertorSoap12. En este
caso en particular el servicio web expone dos interfaces, cada una con una versin
de SOAP distinta.
Dentro de cada interfaz, los metodos del servicio: ConversionRate
Dentro de cada mtodo, un esqueleto de mensaje SOAP, con el nombre genrico
Request 1

Haciendo soble click sobre Request 1 accedemos al mensaje de peticin SOAP, el que
enviaremos al servicio web. Sustituimos los caracteres ? por nuestros datos:

FromCurrency: USD
ToCurrency: INR

SOAP Request al mtodo GetWeather

Enviamos el mensaje al servicio pulsando en la fecha verde de la esquina


izquierda. Tras unos instantes, recibimos el mensaje de respuesta SOAP que se
mostrar a la derecha de la ventana anterior:

Caractersticas y funcionalidades de soapUI


Vista la funcionalidad bsica, que es la generacin de un proyecto para vincularnos con
un servicio web en este caso ya existente, otras caractersticas son:
Examinar detalles y validar interfaces
Se pueden ver los detalles de cada interfaz expuesta por el servicio web. Para ello, en el
ejemplo anterior, pulsamos con el botn derecho sobre uno de los dos, por ejemplo
CurrencyConvertorSoap12:

soapUI Interface viewer


Inicialmente obtenemos un resumen der servicio y operaciones:

soapUI overview

En la pestaa WSDL Content podemos ver el descriptor y navegar por su rbol de nodos:

Asimismo, en la pestaa WS-I Compliance, podemos validar si el descriptor WSDL cumple con el estndar
WS-I Basic Profile de interoperabilidad del Web Services Interoperability Organization (WS-I). Iniciamos el
anlisis pulsando en el icono de fecha verde:

El resultado emitido por el propio WS-I se muestra en la


ventana, y su informe indica que el uso de SOAP 1.2 no
es vlido conforme el Basic Profile 1.1:

Generar casos de prueba funcionales


Por qu crear casos de prueba cuando se puede probar directamente WebService?
Se puede enviar una solicitud para una sola operacin. Qu pasa con los dems?
Cuntas combinaciones de conversin de divisas que puede hacer uso de esta
operacin?
Se debera editar la solicitud de todos y cada combinacin.
Por ejemplo: Si desea convertir de CLP de USD en lugar de USD a INR... Hay que editar
de nuevo la operacin, por lo tanto se debe crear un test suite que englobe los posibles
escenarios sin necesidad de tener que editar la operacin.
SOA promueve que todo web service sea probado exhaustivamente a nivel funcional.
soapUI nos permite generar pruebas unitarias. La funcionalidad est disponible pulsando
botn derecho sobre la interfaz a probar, y escogiendo la opcin Generate TestSuite:

Pruebas unitarias con soapUI

El test suite creado es mostrado en el panel de navegacin, detallado a continuacin.

Se puede evidenciar que no hay casos de prueba creados, por ende todas las opciones
estn deshabilitadas.

Creacin de Caso de Prueba


Paso 1: En un test suite, se pueden crear mltiples test, botn derecho clic en test suite
seleccionar 'New Test Case'.

Paso 2: Especificar el nombre del caso de prueba.

Paso 3: El caso de prueba creado tiene cero (0) pasos detalle a continuacin:

Se pueden insertar una variedad de pasos mediante la realizacin de un clic derecho sobre las
distintas opciones, como se muestra a continuacin.

Test Step
Ahora se aade un test step para validad el SOAP request importado.
Paso 1: Seleccionar add Step 'SOAP Test Request'.

Paso 2: Escribir el nombre del paso, luego aceptar.

Paso 3: Al hacer clic en "Aceptar, aparece un dilogo para seleccionar la operacin a


invocar. Todas las operaciones se enumeran, y el usuario puede seleccionar la operacin
que les gustara invocar.
Hay dos operaciones que se enumeran. Tanto las operaciones son las mismas, excepto la
versin de SOAP utilizada.
CurrencyConvertorSoap - utiliza SOAP versin 1.1
CurrencyConvertorSoap12 - utiliza SOAP versin 1.2

Paso 4: Podemos aadir siguientes checkpoints mientras que la creacin de casos de


prueba. Vamos a crear un caso de prueba con la opcin por defecto.

Verifica si el response es SOAP, al momento de ejecutar el test.


Verifica si el response esquema es valido.
Verifica si el SOAP respone contiene no es un SOAP Fault.

Paso 5: Al crear el caso de prueba , la solicitud XML se muestra a continuacin . La


estructura del XML

Paso 6: El test step count est ahora incrementado a uno.

Enviar Manualmente el Request y Recibiendo el Response.


Paso 1: Convertiremos de USD a INR.

FromCurrency USD
ToCurrency INR

Siguiente,
1. Se colocaran los siguientes inputs en el lugar de los signos de interrogacin los cuales
sern enviados como un request XML.
2. Despus de introducir los valores en las correspondientes etiquetas XML, presionar el
botn (submit request) para chequear la respuesta.

Tras procesar el request la solicitud de servicio web es procesada por el servidor web y
devuelve una respuesta como se muestra a continuacin.
Al leer la respuesta, podemos concluir que 1 unidad de USD = 63.525 unidades de INR.

Soap Response y Log Panel


Los mensajes SOAP son transportados va HTTP. Seleccionar la pestaa RAW, donde se
mostrara como el SOAP request y response fueron transportados por HTTP.
1.
2.

El Request es publicado en el servidor web, se utiliza el mtodo POST de HTTP.


El SOAP Request es transportado en el body del Http message.

Paso 2: Despus de procesar el request, el Http response code (200) es mostrado, especificando
significa que fue exitosa la operacin. El webserver ha procesado exitosamente.

Leyenda de cdigos de respuesta del Servidor Web

Http Code
1xx:

Description
Informational - Esto significa que el request fue recibido y continua el proceso.

2xx:
3xx:

Success - La accin se ha recibido correctamente, entendida y aceptado.


Redirection - Esto significa que ms hay que tomar medidas con el fin de completar la
solicitud.
Client Error - Esto significa que la solicitud contiene sintaxis incorrecta o no se puede
cumplir.
Server Error - El servidor no pudo cumplir con una solicitud aparentemente vlida.

4xx:
5xx:
Log Panel

Tiene la informacin completa acerca de la transaccin entre el cliente y el servidor . Los usuarios
podrn ver las pestaas del panel de registro como se muestra a continuacin.

SoapUI Log : Muestra el response del webserver. La misma informacin es almacenada en el


archivo soapui.log de la carpeta de SOAP-UI en el directorio bin.

Http Log : Muestra la transferencia de paquetes, toda la informacin en RAW es mostrada en el


HTTP log.

Error Log : Muestra todos los errores encontrados durante toda la sesin de proyecto. La misma
informacin est disponible en la actualidad ' soapUI - errors.log ' en el directorio ' bin' de la
ubicacin de instalacin de SOAP UI

Cabe sealar que tales entornos deben instalarse por separado y configurar soapUI para
integrarse con ellos y acceder a sus comandos de generacin.

Generar documentacin del servicio


La documentacin de un servicio, adems de la incluida en el WSDL, es una labor
promovida por el rea de Gobierno SOA. Asimismo, para los desarrolladores puede ser
de gran utilidad. La generacin automtica de documentacin en HTML es una opcin
disponible pulsando con el botn derecho sobre una interfaz del servicio y seleccionando
Generate Documentation:

Generar documentacin con soapUI


El documento se generar en la carpeta seleccionada y se mostrar a continuacin en un
navegador:

Documentacin HTML de un servicio a partir de su contrato