Está en la página 1de 41

ATLAS

MANUAL DE USUARIO DEL


ARQUETIPO WEBSERVICE

Versin 1.10

rea de Aplicaciones Especiales y Arquitectura de


Software

Framework Atlas
Arquetipo WebService

Hoja de Control

Ttulo

Manual de usuario del Arquetipo WebService

Documento de Referencia

NORMATIVA ATLAS

Responsable

rea de Aplicaciones Especiales y Arquitectura de Software

Versin

1.10

Fecha Versin

30/04/2014

Registro de Cambios

Versin

Causa del Cambio

1.0

Versin inicial del documento

Responsable del Cambio


rea de Integracin y Arquitectura de
Aplicaciones

Fecha del Cambio


25/05/2010

- Nueva configuracin de Arquetipo


Web Service
1.1

- Incluida creacin previa del arquetipo


de proyecto

rea de Integracin y Arquitectura de


Aplicaciones

16/09/2010

- Nueva nomenclatura de paquetes


1.2

- Modificaciones para versin 1.1.0 de

rea de Integracin y Arquitectura de

ATLAS

Aplicaciones

16/02/2011

- Las preguntas frecuentes se


1.3

consultarn en el portal de

rea de Aplicaciones Especiales y

arquitectura.

Arquitectura de Software

05/07/2011

Se modificad el nombre del rea


- Nueva arquitectura modular de
1.4

1.5

arquetipo de servicio web

rea de Aplicaciones Especiales y


Arquitectura de Software

- Nuevo mdulo test con proyectos de

rea de Aplicaciones Especiales y

SoapUI 4.0.1

Arquitectura de Software

18/10/2011

21/11/2011

- Se aaden las clases BaseService y


BaseServiceImpl, as como los
1.6

servicios y DAOs para EstadoCivil

rea de Aplicaciones Especiales y

- Se aade a la estructura del mdulo

Arquitectura de Software

web la carpeta generador.


- Se aaden las clases de test

2 de 41

24/02/2012

Framework Atlas
Arquetipo WebService

Versin

Causa del Cambio

Responsable del Cambio

Fecha del Cambio

agrupadas por servicio


Se elimina las clases para la fachada
ya que en los servicios web no tiene
1.7

sentido. Internamente se ha modificado rea de Aplicaciones Especiales y


la versin de axis por lo tanto esta

Arquitectura de Software

29/10/2012

versin del arquetipo utilizada esta


nueva versin.
Revisin completa del documento por
1.8

nueva estructura de arquetipo en


ATLAS 1.2.3
Se actualiza el apartado 3 para quitar

1.9

referencias a la herramienta de
validacin

1.10

rea de Aplicaciones Especiales y


Arquitectura de Software

rea de Aplicaciones Especiales y


Arquitectura de Software

- Se modifica jetty por tomcat7 como

rea de Aplicaciones Especiales y

servidor de aplicaciones

Arquitectura de Software

3 de 41

27/02/2013

12/03/2014

18/07/2014

Framework Atlas
Arquetipo WebService

ndice

INTRODUCCIN ................................................................................................................................................................ 6
1.1

AUDIENCIA OBJETIVO .............................................................................................................................................. 6

1.2

CONOCIMIENTOS PREVIOS ...................................................................................................................................... 6

INFORMACIN SOBRE EL ARQUETIPO ..................................................................................................................... 8


2.1

CREACIN DE UNA APLICACIN PARTIENDO DEL ARQUETIPO .......................................................................................... 8

2.2

ESTRUCTURA DEL ARQUETIPO ....................................................................................................................................... 12

2.3

ESTRUCTURA DE DIRECTORIOS Y ARCHIVOS .................................................................................................................. 12

2.3.1

ESTRUCTURA DEL MDULO WEB ............................................................................................................................... 13

2.3.2

ESTRUCTURA DEL MDULO LIB ................................................................................................................................. 16

2.3.3

ESTRUCTURA DEL MDULO TEST .............................................................................................................................. 18

2.4

3.

CONFIGURACIN DEL DESCRIPTOR DE SERVICIOS SERVICES.XML .................................................................................. 19

1.2.1.

Configuracin bsica ............................................................................................................................................ 20

1.2.2.

Configuracin para seguridad .............................................................................................................................. 20

2.5

DESPLIEGUE Y EJECUCIN DE LA APLICACIN ............................................................................................................... 21

2.6

EJECUCION TEST ...................................................................................................................................................... 22

2.6.1

EJECUCIN DE TEST UNITARIOS ................................................................................................................................. 22

2.6.2

EJECUCIN DE LOS TESTS DE SOAPUI ........................................................................................................................ 22

PRUEBAS FUNCIONALES CON SOAPUI. ................................................................................................................... 26


3.2.

GLOSARIO DE TRMINOS. ............................................................................................................................................... 26

3.3.

PANEL DE NAVEGACIN. ............................................................................................................................................... 26

3.4.

TESTCASES. ................................................................................................................................................................... 26

3.4.1.

Acciones de los TestCases. .................................................................................................................................... 26

3.4.2.

Crear un TestCase desde una Peticin. ................................................................................................................ 27

3.4.3.

Ejecutar TestCase. ................................................................................................................................................ 30

3.5.

ASERCIONES. ................................................................................................................................................................. 30

3.5.1.

Gestin de Aserciones. .......................................................................................................................................... 31

3.5.2.

Categoras de asercin. ........................................................................................................................................ 32

3.5.3.

Aserciones comunes. ............................................................................................................................................. 34

3.5.4.

Aadir Aserciones en TestCase. ............................................................................................................................ 34

3.5.5.

Aserciones con XPath Match. ............................................................................................................................... 35

3.5.6.

Ejemplos de Aserciones XPath Match: ................................................................................................................. 35

3.6.

TEST SUITE. ................................................................................................................................................................... 37

3.6.1.

Acciones del TestSuite. .......................................................................................................................................... 37

3.6.2.

Crear TestSuite. .................................................................................................................................................... 37


4 de 41

Framework Atlas
Arquetipo WebService

3.6.3.

Ejecutar TestSuite. ................................................................................................................................................ 39

PREGUNTAS MAS FRECUENTES ................................................................................................................................ 40

ENLACES RELACIONADOS .......................................................................................................................................... 40

5 de 41

Framework Atlas
Arquetipo WebService

INTRODUCCIN

Los arquetipos son las plantillas para la generacin de los distintos proyectos dentro del Framework Atlas. Estos
arquetipos utilizan el plugin archetype de maven para generar la estructura de ficheros y directorios necesarios
para nuestro proyecto, gestionando las libreras que le indiquemos as como las dependencias. Todas las libreras
sern incluidas durante el empaquetado del proyecto, por lo que para generar y compilar un arquetipo debe estar
conectado al repositorio de artefactos de la Comunidad de Madrid (Artifactory). El framework Atlas consta de los
siguientes arquetipos:
-

Arquetipo para inicio de proyecto

Arquetipo para mdulos de tipo web

Arquetipo para mdulos de tipo jar.

Arquetipo para mdulos de tipo webservice o servicios web

Arquetipo para mdulos de tipo batch

Arquetipo para mdulos de gestin documental (documentum)

El Arquetipo WebService genera un proyecto modular con un mdulo maven de tipo war para el servicio web listo
para ser desplegado, y un mdulo de tipo jar para el cliente de dicho servicio. Est preparado para publicar un
servicio de Spring a travs de Axis2 sin generacin de cdigo intermedio. El proyecto viene preconfigurado para
acceder a base de datos a travs de Hibernate y publica como webservices una serie de servicios de ejemplo.

Se incluye un ejemplo de servicio sin seguridad, otro seguro a nivel de transporte y otro securizado con webservice
security. Para ms informacin sobre estos tipos de seguridad consultar el manual ATLAS_MUS_Servicios_Web.

1.1

AUDIENCIA OBJETIVO

Este documento est dirigido a desarrolladores de proyectos java para ICM en los que se desee crear una
aplicacin que publique un Servicio Web utilizando el framework de desarrollo Atlas.

1.2

CONOCIMIENTOS PREVIOS

Para un completo entendimiento del documento, el lector deber tener conocimientos previos sobre las siguientes
tecnologas:
-

Java

Eclipse

Maven

Spring Framework.

Axis2 y SoapUI

6 de 41

Framework Atlas
Arquetipo WebService

Adems, es necesario haber ledo y seguido los pasos del manual


ATLAS_MUS_Preparacion_Entorno_Desarrollo para tener el entorno de desarrollo preparado.

7 de 41

Framework Atlas
Arquetipo WebService

2.1

INFORMACIN SOBRE EL ARQUETIPO

Creacin de una aplicacin partiendo del arquetipo

NOTA IMPORTANTE
Antes de generar un arquetipo es IMPRESCINDIBLE haber generado un arquetipo para
albergar el proyecto (consultar ATLAS_MUS_Preparacion_Entorno_Desarrollo para ver
cmo crear un arquetipo de proyecto). Cualquier arquetipo posterior ser incluido como un
mdulo de ste.

Crear un proyecto de Servicios Web a partir de un arquetipo es similar a la creacin de un proyecto Web,
modificando el nombre del arquetipo a utilizar.

Para crear un proyecto a partir de un arquetipo maven puede consultar la gua paso a paso que se indica en el
documento ATLAS_MUS_Preparacion_Entorno_Desarrollo, segn se indica en el apartado Creacin de una
aplicacin Web desde cero, sustituyendo atlas-arquetipos-generador-web por atlas-arquetiposgenerador-servicioweb.

8 de 41

Framework Atlas
Arquetipo WebService

A continuacin se nos mostrar una pantalla para indicar cules son los parmetros con los que vamos a crear
nuestro proyecto.

9 de 41

Framework Atlas
Arquetipo WebService

ATENCION NOMENCLATURA
Es muy importante utilizar en esta
pantalla los valores que cumplan la
normativa de Atlas:
groupId:

Nombre

del

proyecto.

Normalmente es de 4 caracteres y es
un cdigo que se le da a un proyecto.
Todos los mdulos de un proyecto
tendrn

el

mismo

corresponder

con

groupId
el

se

nombre

del

proyecto.
artifactId: Nombre del mdulo. (En el
caso de servicios web el nombre del
mdulo

ser:

xxxx_ws_yyyy

donde

xxxx se corresponde con el groupId


indicado y yyyy el texto que identifique
a este modulo y lo diferencie de otros:
Ejemplo: ejpl_ws_acceso.
El carcter de separacin a utilizar
debe ser el guin bajo.
Version: La primera versin ser 1.0.0
package: El nombre del paquete java
ser el groupId, seguido de un punto y
el nombre del bloque funcional dentro
de la aplicacin (para aplicaciones
grandes se crearn varios bloques
funcionales).
Todos

los

minsculas.

Al pulsar Finish se crea el nuevo proyecto.

10 de 41

nombres

deben

ir

en

Framework Atlas
Arquetipo WebService

ATENCION
Las clases que se incluyen de ejemplo son simplemente eso y deben ser
eliminadas del proyecto cuando no se necesiten.

Antes de comenzar a visualizar la estructura del nuevo proyecto generado, debemos realizar un ajuste en el fichero
pom.xml del nuevo proyecto creado. Para ello, debemos abrir el fichero web\pom.xml, lib\pom.xml y
test\pom.xml, eliminar la seccin <parent> existente y descomentar la seccin <parent> que aparece
comentada.
Antes de eliminar:

Despus de eliminar:

11 de 41

Framework Atlas
Arquetipo WebService

Una vez configurado el proyecto general y el subproyecto (mdulo de tipo aplicacin servicioweb), ya podemos
seguir viendo la estructura del subproyecto para la aplicacin que acabamos de generar.

2.2

Estructura del arquetipo

Este arquetipo genera un proyecto maven multimodular con un proyecto padre cuyo pom llevar la configuracin
general del resto de subproyectos. El proyecto consta de tres mdulos:
Lib: Mdulo de tipo jar donde se implementa el cliente del servicio web. Aqu se crearn las
interfaces de servicio y los objetos de datos de intercambio. Es adems, una dependencia del
proyecto Web ya que el webservice implementado tendr necesariamente que hacer uso de los
objetos definidos en este mdulo.
Web: Mdulo de tipo war, configurado para utilizar Spring, Hibernate, Axis2 y seguridad, y
preparado para desplegar el servicio web en un servidor de aplicaciones. Aqu se crear la
implementacin del servicio web.
Test: Mdulo con proyectos de SoapUI preparados para realizar pruebas de llamada sobre el
servicio web. Contiene un proyecto SoapUI para cada uno de los ejemplos de servicio incluidos.
Este mdulo no generar ningn producto empaquetado como los otros dos mdulos (paquete war
el mdulo web y paquete jar el mdulo lib).

2.3

Estructura de directorios y archivos

12 de 41

Framework Atlas
Arquetipo WebService

Una vez generado el proyecto se generan una serie de directorios a estilo maven, donde ubicaremos los fuentes y
recursos de las partes de java, test y aplicacin.
A continuacin se describe la estructura de cada uno de los dos mdulos del proyecto.

2.3.1

Estructura del Mdulo web

El mdulo web tiene la siguiente estructura de directorios y ficheros:

Fichero de configuracin de Maven del proyecto


De esta ruta cuelga la estructura de paquetes con el cdigo fuente del
proyecto. El paquete raz va a llamarse igual que el nombre del mdulo que
se est desarrollando.

Inicialmente el paquete raz se llamar con el cdigo de proyecto


(equivalente al groupId).
Adicionalmente, en el subpaquete services residirn las implementaciones
de los servicios web a publicar.
En los ejemplos inferiores se ha tomado como paquete raz ejpl.

Implementacin del servicio web.


Las interfaces del servicio web
deben crearse en el mdulo lib.
Ruta donde se generarn los recursos del proyecto, normalmente son
ficheros de configuracin y ficheros de propiedades. En nuestro caso
contiene los siguientes ficheros:
Fichero de propiedades que contiene
todas las variables de configuracin
cuyo valor puede ser diferente en
distintos entornos de ejecucin
(local, desarrollo, produccin, etc.).
Antes de desplegar un proyecto en los
entornos de ICM, este fichero ser
sustituido

por

su

homlogo

correspondiente al entorno en el que

13 de 41

Framework Atlas
Arquetipo WebService

se vaya a desplegar.
Fichero de configuracin de log4j;
lleva adems configuracin de los
mdulos de trazas y monitorizacin.
Fichero de propiedades que contiene
mediante clave y valor todos los
valores particulares de la aplicacin
que no son susceptibles de ser
modificados

configurados

entre

diferentes entornos de ejecucin.


Fichero de configuracin de Spring
para la carga en el contexto de Spring
de todos los DAOs (clases de acceso
a datos).
Fichero de configuracin de Spring
que

lleva

dataSource,

la

configuracin
sessionManager

transactionManager

que

del
y

integra

Hibernate con Spring. Inicialmente el


datasource

ser

configurado

mediante las propiedades ubicadas en


el fichero conf/jdbc.properties (se
generan de forma automtica con
maven) aunque para

el paso a

integracin

configurarse

deben

localizando por jndi al datasource del


servidor de aplicaciones.
Fichero de configuracin de Spring
para la carga de las propiedades
ubicadas en application.properties y
resto de archivos de propiedades
necesarios.
Fichero de configuracin de Spring
para la carga de todas las clases de

14 de 41

Framework Atlas
Arquetipo WebService

Servicios.
Ruta donde se generarn el cdigo fuente para los test de nuestro proyecto.
Este cdigo nunca deber estar incluido en el jar final.

Paquete

para

los

tests

unitarios. En el mdulo web no


hay tests implementados por
defecto.
Ruta donde se generarn los recursos para realizar las pruebas de test,
normalmente son ficheros de configuracin y ficheros de propiedades. En
nuestro caso contiene los siguientes ficheros:
Ficheros de configuracin por si
se desea acceder a la aplicacin
por ssl
Lleva

la

configuracin

del

dataSource, sessionManager y
transactionManager que integra
Hibernate

con

Spring.

Este

fichero es un espejo del fichero


conf/applicationContextdatabase.xml excepto que en
ningn caso debe localizar el
datasource por JNDI del servidor
de aplicaciones, puesto que en
la fase de test no tenemos
acceso a dicho servidor.
Ruta donde se generarn los recursos necesarios para la parte web de la
aplicacin.
Fichero de acceso principal que redirige al
listado de servicios del web service.
Pgina de entrada que muestra un listado
de

servicios

documentos WSDL.

15 de 41

un

enlace

sus

Framework Atlas
Arquetipo WebService

Descriptor de despliegue
de servicios de Axis2.
Descriptor

web

de

la

aplicacin
Descriptor adicional para
el servidor de aplicaciones Weblogic.

Descriptores
adicionales

para

el

servidor

de

aplicaciones Jetty.
OBSOLETO: A partir de Atlas 1.2.7 se
ejecuta tomcat7 en local
Ficheros de configuracin de tomcat7
para su ejecucin en local y en los
tomcats de ICM
Directorio para herramienta de generacin
automtica de cdigo.

2.3.2

Estructura del Mdulo lib

El mdulo lib tiene la siguiente estructura de directorios y ficheros:


Fichero de configuracin de maven
del mdulo lib. Normalmente las
dependencias no se incluyen en este
fichero, sino en el fichero pom.xml
del proyecto padre.
De esta ruta cuelga la estructura de paquetes con el cdigo fuente del proyecto
cliente. El paquete raz va a llamarse igual que el nombre del mdulo que se est
desarrollando.

Inicialmente el paquete raz se llamar con el cdigo de proyecto (equivalente al


groupId).

16 de 41

Framework Atlas
Arquetipo WebService

Adicionalmente, para cada bloque funcional de nuestra aplicacin debe crearse


un subpaquete.

Entidades de entrada/salida del API


del webservice

Interfaces de los servicios web que


sern publicados.
Implementaciones de cliente de las
interfaces de los servicios web.

Ruta donde se generarn los recursos del proyecto, normalmente son ficheros de
configuracin y ficheros de propiedades. En nuestro caso contiene los siguientes
ficheros:
Fichero de configuracin de los
servicios de cliente publicados.
Ficheros de poltica de seguridad
a aplicar si el servicio web es
seguro
Ruta donde se generarn el cdigo fuente para los test de nuestro proyecto. Este
cdigo nunca deber estar incluido en el jar final.

Tests unitarios para comprobar la


correcta implementacin de los
clientes del servicio web.

Ruta donde se generarn los recursos para realizar las pruebas de test,
normalmente son ficheros de configuracin y ficheros de propiedades. En nuestro
caso contiene los siguientes ficheros:
Fichero

de

propiedades

que

contiene mediante clave y valor

17 de 41

Framework Atlas
Arquetipo WebService

todos los valores susceptibles de


ser

modificados

entre

diferentes

configurados
entornos

de

ejecucin. Este fichero solamente


es para la ejecucin de los test.
Fichero de configuracin de log4j;
lleva adems configuracin de los
mdulos de trazas y monitorizacin.
Contiene la configuracin bsica de
un bean de Spring de ejemplo para
ejecutar el test de JUnit que viene
preconfigurado.

Fichero

de

propiedades

que

contiene mediante clave y valor


todos los valores particulares de la
aplicacin que no son susceptibles
de ser modificados o configurados
entre

diferentes

entornos

de

ejecucin.
Directorios de uso interno de ICM
para

la

configuracin

de

la

aplicacin en los distintos entornos.


Los ficheros environment.properties
de estos directorios solamente se
utilizan para la ejecucin de los test
(la librera es independiente del
entorno).
Si se incluye una nueva variable en
src/main/resources/environment.pro
perties se ha de incluir tambin en
todos estos.

2.3.3

Estructura del Mdulo test

18 de 41

Framework Atlas
Arquetipo WebService

El mdulo test tiene la siguiente estructura de directorios y ficheros:

Fichero de configuracin de maven


del mdulo test. Normalmente las
dependencias no se incluyen en este
fichero, sino en el fichero pom.xml
del proyecto padre.
De esta ruta cuelga la estructura de paquetes con el cdigo fuente. En este
mdulo no se incluye cdigo fuente.
.

Ruta donde se generarn los recursos del proyecto. En nuestro caso contiene los
siguientes ficheros:
Proyectos

SoapUI

para

los

servicios de ejemplo.

Almacenes de certificados para


las pruebas con SoapUI.
Descriptores del ejemplo de
servicio web.

Ruta donde se generarn el cdigo fuente para los test de nuestro proyecto. Este
mdulo no tiene cdigo java de tests unitarios.

Ruta donde se generarn los recursos para realizar las pruebas de test,
normalmente son ficheros de configuracin y ficheros de propiedades. Este
mdulo no tiene recursos para los tests java:

2.4

Configuracin del descriptor de servicios services.xml

Toda la configuracin que se muestra a continuacin se realiza segn marca la documentacin de Axis2, por lo que
para cualquier consulta adicional puede consultarlo en la web
http://axis.apache.org/axis2/java/core/docs/axis2config.html.

19 de 41

Framework Atlas
Arquetipo WebService

1.2.1.

Configuracin bsica

El arquetipo genera el fichero services.xml en el mdulo web con una configuracin vlida que despliega un bean
del contexto de Spring como WebService. Si necesitamos editar dicho fichero lo podremos hacer de la siguiente
manera:
service: etiqueta que especifica un servicio, podemos publicar tantos servicios como deseemos siempre
que tengan un nombre diferente (parmetro name). Inicialmente se pone como nombre de servicio el
nombre de la aplicacin.
ServiceObjectSupplier: especifica que clase nos proporciona los objetos que vamos a publicar, en
nuestro caso Spring. Este parmetro no se debe modificar.
SpringBeanName: Nombre del bean que vamos a publicar ubicado en el contexto de Spring
(applicationContext-services.xml).
ServiceClass: Interfaz de la clase que se va a publicar. Se debe especificar la interfaz del servicio que
queremos publicar para que Axis2 sepa como generar el WSDL correspondiente, de lo contrario podemos
tener problemas por que las clases estn interceptadas por Spring-AOP y esto falsee su interfaz en
ejecucin. Esta clase debe crearse en el mdulo cliente lib aunque se referencie en este mdulo.

A continuacin se muestra un ejemplo de configuracin del fichero services.xml del mdulo web que publica un
servicio.
Services.xml
<?xml version="1.0" encoding="UTF-8"?>
<serviceGroup>
<service name="EjemploService">
<parameter name="ServiceObjectSupplier">
org.apache.axis2.[...].SpringServletContextObjectSupplier</parameter>
<parameter name="SpringBeanName">EjemploService</parameter>
<parameter name="ServiceClass">ejpl.webservice.services.EjemploService</parameter>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</messageReceivers>
</service>
<!-- aadir aqu mas servicios si se desea <service name="nuevoServicio"> ... </service> -->
</serviceGroup>

1.2.2.

Configuracin para seguridad

20 de 41

Framework Atlas
Arquetipo WebService

Para obtener informacin ms detallada de la aplicacin de seguridad en el servicio web, as como del contenido y
operativa de los mdulos, debe consultarse el documento ATLAS_MUS_Servicios_Web.doc.

2.5

Despliegue y Ejecucin de la aplicacin

El arquetipo WebService es una aplicacin web preparada para la publicacin de alguno de sus servicios
mapeados en Spring como servicio web Axis2.

Para construir el proyecto debe ejecutarse el siguiente comando desde el POM padre del proyecto generado:

mvn clean install


Por defecto, al ejecutar Maven con los parmetros clean install se genera el paquete jar correspondiente al
cliente del servicio web y el war correspondiente a la aplicacin web que contiene este. Para desplegar el war en
nuestro servidor de aplicaciones podemos coger el fichero de la carpeta en la que se ha generado
(web/target/nombreFichero.war), o podemos utilizar un servidor Tomcat7 local que viene preconfigurado en el
arquetipo. Para ejecutar directamente un servidor tomcat7 con nuestro proyecto desplegado, debemos ejecutar la
siguiente lnea de comandos desde el directorio web de nuestro proyecto la siguiente lnea de comandos:

mvn tomcat7:run

Esto arranca un servidor tomcat7 en el puerto 9080 de nuestra mquina, en el que se encuentra desplegado el war
de nuestra aplicacin. Introduciendo la siguiente URL en un navegador se podr ver un listado de los servicios
desplegados. Esta URL solo es vlida para el servidor Tomcat7 local.

http://localhost:9080/services/listServices

En el caso de los ejemplos securidados el acceso es por


https://localhost:9443/services/listServices

Para la ejecucin de los tests JMeter, desde el mdulo test:


mvn clean install Pjmeter

Para la generacin y despliegue de los artefactos adicionales con los javadocs y el cdigo fuente del proyecto:
mvn clean install Dadditional_artifacts=true

21 de 41

Framework Atlas
Arquetipo WebService

Para probar la ejecucin de este arquetipo puede comprobar en la URL donde se listan los servicios desplegados y
sus documentos WSDL:

http://<host>:<puerto>/<contexto>/services/listServices

2.6

2.6.1

EJECUCION TEST

Ejecucin de test unitarios

Los test unitarios se encuentran en el mdulo lib en la carpeta src/test/java/xxxx/client. Antes de ejecutarlos es
necesario editarlos y quitar o comentar la anotacin @Ignore ya que de lo contrario no se van a ejecutar. Esta
etiqueta se ha incluido por que si se compila ejecutando los test y no est levantado el servidor de aplicaciones con
el servicio web lo test no van a funcionar.

Para comprobar la correcta implementacin de la comunicacin entre cliente y servidor, con el servidor del servicio
web arrancado, se deber ejecutar la siguiente sentencia desde el directorio lib del proyecto:

mvn test

Tambin se pueden ejecutar cada test de Junit desde el propio Eclipse como se ejecuta cualquier clase de tipo
Junit.

2.6.2

Ejecucin de los tests de SoapUI

SoapUI es una aplicacin para realizar llamadas a servicios web. Esta aplicacin es utilizada normalmente para
comprobar la correcta ejecucin de los servicios web. Los proyectos de prueba incluidos en el mdulo de test se
han generado con la versin 4.0.1 de SoapUI. Esta aplicacin puede ser descargada desde el siguiente enlace:
http://sourceforge.net/projects/soapui/files/soapui/4.0.1/

Para realizar una prueba de llamada al servicio web, primero debe levantarse el servidor tomcat7 tal y como se
especifica en el apartado anterior. A continuacin ejecutar SoapUI.

22 de 41

Framework Atlas
Arquetipo WebService

Pulsar en el segundo icono y cargar el fichero del mdulo test EjemploService-soapui-project.xml.

Una vez cargado el proyecto, desplegar el elemento EjemploServiceSoap12Binding (tambin puede probarse el
Soap11Binding) y el mtodo alterar. Hacer doble click en Request 1. Con esto tendremos desplegado un XML de
peticin al servicio web.

23 de 41

Framework Atlas
Arquetipo WebService

Para ejecutar esta peticin hay que pulsar el icono

. Con esto se enviar la peticin al servicio y se presentar

la respuesta.

24 de 41

Framework Atlas
Arquetipo WebService

Para comprobar cualquier otro mtodo de este proyecto o del proyecto de cliente seguro debe seguirse el mismo
procedimiento.

25 de 41

Framework Atlas
Arquetipo WebService

3. Pruebas Funcionales con SoapUI.

En SoapUI, las pruebas funcionales se pueden usar para validar requisitos funcionales, tanto para invocar los
Servicios Web propios (Pruebas unitarias) como para una secuencia de peticiones (pruebas de integracin),
Adems, es posible aadir lgica a las pruebas mediante scripts de Groovy, lo que permite, por ejemplo,
interactuar con una base de datos o realizar un flujo de pruebas complejo.

3.2.

Glosario de trminos.
TestCase: Caso de prueba funcional de Servicio Web.
TestSuite: Contenedor de casos de pruebas (TestCases).
TestStep: Paso que puede definirse en un caso de uso, pueden ser, peticiones http, peticiones Soap o
Script de groovy.
Aserciones: Condiciones que se evalan tras obtener la respuesta de un peticin.

3.3.

Panel de Navegacin.

El panel de navegacin est conformado por los siguientes componentes: (Ver imagen)

1 Panel de Navegacin

ATENCION
Antes de realizar los siguiente pasos, se debe tener previamente importado los proyectos SoapUI
que se encuentran en {proyecto}/test/src/main/java/resources/soapui/

3.4.

TestCases.

Un TestCase en SoapUI, permite realizar pruebas funcionales de Servicios Web suministrando un numero de
pasos (Prueba de Casos de Usos) que pueden ser ejecutados en secuencia.

3.4.1.

Acciones de los TestCases.

Las siguientes acciones estn Disponibles desde el men que aparece al hacer clic derecho en el nodo del
TestCase.
26 de 41

Framework Atlas
Arquetipo WebService

2 Acciones de TestCase

Show TestCase Editor: Abre el editor del TestCase.


Disable/Enable TestCase: Opcin que deshabilita/habilita el TestCase.
Options: Muestra la ventana de opciones del TestCase.
Add Step: aade un TestStep al TestCase.
New LoadTest: Opcin que abre una ventana para crear una nueva prueba de carga para el TestCase.
Clone TestCase: Opcin que permite clonar todo el TestCase, opcionalmente en otro TestSuite.
Clear: Muestra una ventana para eliminar todos los TestSteps del TestCase.
Rename: Opcin que permite renombrar el TestCase.
Remove: Opcin que permite eliminar el TestCase de su TestSuite.
Launch Runner: Opcin que abre cuadro de dilogo para el lanzador del TestCase.
Move TestCase Up: Opcin que mueve el actual TestCase hacia arriba en la lista de los TestCase.
Move TestCase Down: Opcin que mueve el actual TestCase hacia abajo en la lista de los TestCase.
Online Help: Opcin que abre la pgina de ayuda online en el navegador.

3.4.2.

Crear un TestCase desde una Peticin.

Una vez tengamos algunas peticiones configuradas, podremos realizar un Caso de Prueba que verifique su
comportamiento.
Sobre una peticin, presione el botn derecho del ratn y seleccione la opcin Add to TestCase

27 de 41

Framework Atlas
Arquetipo WebService

3 Agregar Caso de Prueba

Aparecer el listado de Casos de Pruebas previamente creados.

4 Listado de Casos de Pruebas

Seleccione el Caso de Prueba al cual desea agregar el nuevo Caso de Prueba y presione el botn
Aceptar.
Si no hay ningn Grupo de Prueba/Caso de Prueba en el proyecto, soapUI abrir una ventana para pedir
los nombres del TestSuite y TestCase.

5 Create TestSuite

6 Create TestCase

28 de 41

Framework Atlas
Arquetipo WebService

SoapUI abrir una ventana para introducir el nombre y especificar aserciones comunes en la peticin de
prueba. Las aserciones a seleccionar son las siguientes:
o

Adds Validation that response is a SOAP message. (Valida que la respuesta recibida es un
mensaje Soap)

Adds Validation that response is not a SOAP Fault. (Valida que la respuesta recibida sea un
mensaje Soap no fallido, si la prueba vlida si se produces un error, no se debe seleccionar esta
opcin).

7 Agregar TestCase

Los correspondientes TestSuite/TestCase se crearn y la peticin se aadir como TestCase, la cul es


una copia de la peticin original (de esta manera, puedes seguir utilizndolo sin modificar la peticin de
prueba)
Un editor de peticiones de prueba casi idntico al estndar se abre con el nuevo TestCase.

29 de 41

Framework Atlas
Arquetipo WebService

8 Editor de peticiones de prueba

3.4.3.

Ejecutar TestCase.

En el panel de Navegacin, haga doble clic en el caso de prueba que contiene aserciones. Seguidamente SoapUI
abrir la ventana correspondiente. Haga clic en el botn de reproduccin, el caso de prueba se ejecutara,
evaluando las aserciones contenidas en los pasos TestStep.

3.5.

Aserciones.

30 de 41

Framework Atlas
Arquetipo WebService

Las aserciones se utilizan para validar el mensaje recibido por un TestStep durante la ejecucin, por lo general
mediante la comparacin de las partes del mensaje (o todo el mensaje) a algn valor esperado. Se pueden aadir
cualquier numero de aserciones a un TestStep.
Despus de una ejecucin, todas las aserciones son aplicadas a la respuesta recibida, si alguna de esta
validaciones falla, el TestStep se marca como fallido en la vista del caso de prueba y se muestra la
correspondiente entrada en el registro de la ejecucin de pruebas.

3.5.1.

Gestin de Aserciones.

Las aserciones siempre se muestran en la pestaa inferior del TestSpet que lo contiene.

31 de 41

Framework Atlas
Arquetipo WebService

En la imagen anterior se ven tres aserciones aadidas en el mensaje Soap del TestStep. Las dos primeras fueron
OK, pero la ltima fue fallida.
La barra de herramientas

localizada en la parte superior del listado de aserciones, permite

agregar, configurar, eliminar, mover y clonar aserciones y presionando el botn derecho del ratn, aparecer un
men emergente que contiene acciones similares.
Al hacer doble clic en una asercin nos lleva a su ventana de configuracin si est disponible.

3.5.2.

Categoras de asercin.

Todas las categoras que contienen aserciones se enumeran a continuacin:


Property Content

Contains: Busca la existencia de una cadena en los valores de

(Propiedades de Contenido)

las propiedades. Soporta expresiones regulares. Es aplicable a


cualquier propiedad.
Not Constains: Busca la inexistencia de una cadena en los
valores de las propiedades. Soporta expresiones regulares. Es
aplicable a cualquier propiedad.
XPath Macht: Usos de es una expresin XPath para seleccionar
el contenido de la propiedad de destino y compara el resultado
con un valor esperado. Aplicable a cualquier propiedad que
contiene XML.
XQuery Match: Permite el uso de una expresin XQuery para
seleccionar el contenido de la propiedad de destino y compara el
resultado con un valor esperado. Aplicable a cualquier propiedad
que contiene XML.
Message Content Assertion: Permite la validacin de contenido
32 de 41

Framework Atlas
Arquetipo WebService

complejo de mensajes XML. Aplicable a cualquier propiedad que


contenga XML.
Compliance, Status and

HTTP Download all resource: Descarga todos los recursos que

Standards

se encuentran referenciados en un documento HTML (imgenes,

(Cumplimientoc, Estado y

scripts, etc) y valida que todos ellos estn disponibles. Aplicable a

Normas)

cualquier propiedad que contiene HTML.


Invalid HTTP Status Codes: Valida que el mensaje de respuesta
recibido contiene un estado de cdigo HTTP no valido en la lista
definida. (Aplicable a cualquier TestStep que reciba mensajes
HTTP).
Not SOAP Fault: Valida que el mensaje de respuesta recibido no
sea un error de Soap.
Schema Compliance: Valida que el mensaje de respuesta
recibido sea compatible con el WSDL asociado o la definicin de
esquema WADL. (Aplicable a SOAP y REST TestStep)
SOAP Fault: Valida que el mensaje de respuesta recibido sea un
error de Soap. (Aplicable solo a MockResponse y TestSteps
Soap).
SOAP Response: Valida que la respuesta recibida sea un
mensaje Soap valido. (Aplicable solo a TestRequest y TestSteps
Soap).
Valid HTTP Status Codes: Valida que el mensaje de respuesta
recibido contenga un estado de cdigo HTTP valido en la lista
definida. (Aplicable a cualquier TestStep que reciba mensajes
HTTP).
WS-Addressing Request: Valida que la solicitud recibida
contenga encabezados de WS-Addressing vlidos. (Aplicable
solo a MockResponse y TestSteps Soap).
WS-Addressing Response: Valida que la respuesta recibida
contenga encabezados de WS-Addressing vlidos. (Aplicable
solo a TestRequest y TestSteps Soap).
WS-Security Status: Valida que el mensaje recibido contenga
cabeceras WS-Security validos. (Aplicable solo a TestSteps
Soap).

Script

Script Assertion: Ejecuta un script personalizado para realizar


validaciones arbitrarias. (Aplicable solo a TestSteps)

SLA

Response SLA: Valida que la ultima respuesta recibida fue


dentro de los limites definidos. (Aplicable a Script, TestSteps y
TestSteps que envan peticiones y reciben respuesta)
33 de 41

Framework Atlas
Arquetipo WebService

JMS

JMS Status: Valida que la solicitud JMS sea ejecutada con xito.
(Aplicable a TestSteps con JMS endpoint)
JMS Timeout: Valida que la declaracin JMS no tome ms
tiempo que la duracin especificada. (Aplicable a TestSteps con
JMS endpoint)

JBDC

JDBC Status: Valida que la declaracin JDBC sea ejecutada con


xito. (Aplicable solo a JDBC TestSteps)
JDBC Timeout: Valida que la declaracin JDBC no tome ms
tiempo que la duracin especificada. (Aplicable solo a JDBC
TestSteps)

Security

Sensitive Information Exposure: Comprueba que el mensaje


recibido no expone informacin sensible sobre el sistema de
destino. (Aplicable a REST, SOAP y http TestSteps)

3.5.3.

Aserciones comunes.

Las aserciones disponibles para todos tipos de TestSteps son:


Contains - comprueba la existencia de una cadena especificada
Not Contains - comprueba la inexistencia de una cadena especificada.
Reponse SLA - comprobar el tiempo de respuesta frente a un valor especificado.
XPath Match - compara el resultado de una expresin XPath para un valor esperado.
XQuery match - compara el resultado de una expresin XQuery a un valor esperado
Script - Ejecuta una secuencia de comandos arbitraria que se puede utilizar para validar el mensaje
recibido si lo desea.

3.5.4.

Aadir Aserciones en TestCase.


Seleccionar el TestStep y presione la tecla enter, SoapUI abrir un editor de peticiones de prueba.

En la barra de herramientas ubicada en la parte superior del editor de peticiones de prueba, seleccionar el
segundo botn.

34 de 41

Framework Atlas
Arquetipo WebService

9 Botn para Agregar Asercin

SoapUI abrir la ventana de dialogo que permitir elegir el tipo de asercin.

10 Ventana para agregar Aserciones

Presione el botn Add para agregar la asercin seleccionada.

3.5.5.

Aserciones con XPath Match.

La asercin XPath Match permite la especificacin de una expresin XPath para ser evaluada en relacin a un
mensaje de respuesta recibido y comparar su resultado con un valor predefinido. Las expresiones pueden
eleccionar todo, desde valores de atributos, hacer evaluaciones booleanas o seleccionar la respuesta de todo el
cuerpo (XmlUnit se usa internamente para comparar los elementos XML, jerarquas o nodos). Internamente,
soapUI usa el motor Saxon 8.8 XPath que tiene soporte para XPath 1,0 y 2,0 XPath.
La ventana de dilogo de configuracin para la asercin XPath Match se divide en 2 zonas, la de la parte superior
que contiene la expresin XPath deseada y la de la parte inferior que contiene el resultado esperado.

3.5.6.

Ejemplos de Aserciones XPath Match:

35 de 41

Framework Atlas
Arquetipo WebService

Los siguientes ejemplos son realizados sobre el proyecto EjemploService-soapui-project.xml en el TestStep


Alterar

Valida si existe una etiqueta xml en el mensaje de respuesta:


XPath Expression:
declare namespace ax23='http://datos.ejpl_ws/xsd';
exists(//ax23:cadenaSalida)

Expected Result:
true

Valida que el valor de la etiqueta idLlamada sea numrico.


XPath Expression:
declare namespace ax23='http://datos.ejpl_ws/xsd';
matches(//ax23:idLlamada/text(),'\d')

Expected Result:
true

Valida que el valor de la etiqueta idLlamada sea mayor que 0.


XPath Expression:
declare namespace ax23='http://datos.ejpl_ws/xsd';
//ax23:idLlamada/text()>0

Expected Result:
true

Valida que el valor de la etiqueta cadenaSalida contenga el valor cadena.


XPath Expression:
declare namespace ax23='http://datos.ejpl_ws/xsd';
//ax23:cadenaSalida/contains(text(),'cadena')

36 de 41

Framework Atlas
Arquetipo WebService

Expected Result:
true

Ver el siguiente enlace http://www.w3.org/TR/xpath/#section-Expressions para ver todas todas las funciones
predefinidas con XPath.

3.6.

Test Suite.

Una TestSuite sirve como contenedor para un numero arbitrario de Casos de Pruebas (TestCases). Cuando se
ejecuta un TestSuite, los Casos de Pruebas (TestCases) incluidos se pueden ejecutar tanto en secuencia como
en paralelo.

3.6.1.

Acciones del TestSuite.

Las siguientes acciones estn disponibles desde el men que aparece al realizar clic derecho sobre el nodo del
TestSuite.

Show TestSuite Editor: Opcin que permite abrir el lanzador de TestSuite.


Disable TestSuite: Opcin que permite habilita/deshabilita el TestSuite
New TestCase: Opcin que permite crear un nuevo caso de prueba en el TestSuite
Clone TestSuite: Opcin que permite clonar una TestSuite, incluyendo todos los Casos de Pruebas
(TestCases) y TestSpteps.
Launch TestRunner: Opcin que abre un cuadro de dialogo para ejecutar el TestSuite desde lnea de
comandos.
Rename: Opcin que permite renombrar el TestSuite.
Remove: Opcin que permite eliminar el TestSuite del proyecto SoapUI.
Online Help: Abre la pagina de ayuda online en el navegador.

3.6.2.

Crear TestSuite.
Presionar botn derecho del ratn sobre la interfaz y seleccionar la opcin Generate TestSuite.

37 de 41

Framework Atlas
Arquetipo WebService

11 Generate TestSuite

SoapUI abrir un cuadro de dialogo para generar un TestSuite completo para la interfaz seleccionada.

12 Opciones de generacin del TestSuite

El cuadro de dialogo contiene las siguientes opciones:


o

TestSuite: Combobox que permite seleccionar crear una TestSuite sobre una existente o una
nuevo.

Style: Existen dos Tipos de estilos:

One TestCase for each Operation: Permite crear TestSuite con casos de pruebas para
cada operacin.

Single TestCase with one Request for each Operation: Permite crear TestSuite con casos
de pruebas nicos con una sola solicitud por cada operacin.

Request Content: Permite definir el contenido de la solicitud para los casos de prueba. Existe dos
opciones.

Use existing Request in Interface: Crea Casos de Pruebas con los mensajes de solicitud
existentes en la interfaz.
38 de 41

Framework Atlas
Arquetipo WebService

Create new empty requests: Crea Casos de Pruebas con mensajes de solicitud vacios.

Operations: Permite seleccionar las operaciones a las cuales desea generar Casos de Pruebas.

Generate LoadTest: Permite crear una prueba de carga por defecto para cada Caso de Prueba
generado.

Seleccione las opciones que usted cree oportunas para sus pruebas y por ultimo presione el botn OK.
Si en el cuadro de dialogo anterior ha seleccionado en la opcin TestSuite el valor por defecto <create>,
aparece la siguiente ventana, que permite especificar el nombre de la TestSuite:

13 Name of TestSuite

Digite en nombre de la TestSuite y presione el botn Aceptar.


Si ha seleccionado la opcin One TestCase for each Operation en el cuadro de dialogo de creacin de
TestSuite y en el caso de que una operacin tenga ms de un mensaje de solicitud, aparecer una
ventana informando que el nombre del paso debe ser nico y debe ser especificado.

14 Name of TestName

Digite en nombre de la TestStep y presione el botn Aceptar.

3.6.3.

Ejecutar TestSuite.

Haciendo doble clic sobre un TestSuite, SoapUI abre el lanzador de TestSuite que contiene la lista de los Casos de
Pruebas (TestCases). Cada Caso de Prueba tiene una barra de progreso que est determinada por la cantidad de
pasos (TestStep) y por defecto no est activa. Haga clic en el botn de reproduccin, los casos de pruebas se
ejecutaran, evaluando las aserciones contenidas en los pasos TestStep, la barra de progreso puede tomar color
rojo o verde segn el resultado de cada TestStep (Rojo si el TestStep fue fallido, verde si fue correcto) y muestra
un texto indicando del resultado final de cada prueba.

39 de 41

Framework Atlas
Arquetipo WebService

15 Lanzador de TestSuite sin Ejecutar

16 Lanzador de TestSuite Ejecutado

PREGUNTAS MAS FRECUENTES

La lista de preguntas frecuentes se encuentra en el portal de arquitectura.

ENLACES RELACIONADOS

Producto

URL

40 de 41

Framework Atlas
Arquetipo WebService

Axis2

http://ws.apache.org/axis2/

Configuracin

http://axis.apache.org/axis2/java/core/docs/axis2config.html

Services.xml
Apache Maven

http://maven.apache.org/

Log4J

http://logging.apache.org/log4j/

SoapUI

http://www.soapui.org/
http://www.soapui.org/Test-Automation/maven-2x.html
http://www.soapui.org/Functional-Testing/testcase-execution.html

XPath

http://www.w3.org/TR/xpath/#section-Expressions

41 de 41