SoapUI. Manual de Usuario v2.1
SoapUI. Manual de Usuario v2.1
SoapUI. Manual de Usuario v2.1
Manual de usuario
Fecha: Referencia:
EJIE S.A.
Mediterrneo, 3
Tel. 945 01 73 00*
Fax. 945 01 73 01
01010 Vitoria-Gasteiz
Posta-kutxatila / Apartado: 809
01080 Vitoria-Gasteiz
www.ejie.es
Este documento es propiedad de EJIE, S.A. y su contenido es confidencial. Este documento no puede ser reproducido, en su totalidad o parcialmente, ni
mostrado a otros, ni utilizado para otros propsitos que los que han originado su entrega, sin el previo permiso escrito de EJIE, S.A.. En el caso de ser
entregado en virtud de un contrato, su utilizacin estar limitada a lo expresamente autorizado en dicho contrato. EJIE, S.A. no podr ser considerada
responsable de eventuales errores u omisiones en la edicin del documento.
Control de documentacin
Ttulo de documento: SoapUI. Manual de Usuario
Histrico de versiones
Cdigo:
Versin: 2.0
Fecha: 26/3/2010
Versin: 2.1
Fecha: 26/11/2014
Control de difusin
Firma: Fecha:
Distribucin:
Referencias de archivo
Localizacin:
1 Introduccin 5
2 Conceptos bsicos 5
3 SoapUI 5
3.1 Prerrequisitos 5
3.3 Preferencias 12
3.3.1. HTTP Settings 14
3.3.2. Proxy Settings 16
3.3.3. SSL Settings 17
3.3.4. WSDL Settings 18
3.3.5. UI Settings 20
3.3.6. Editor Settings 22
3.3.7. Integrated Tools 23
3.3.8. WSI Settings 24
3.3.9. Global Properties 25
3.3.10. Global Security Settings 26
3.3.11. WS-A Settings 26
3.3.12. Global Sensistive Information Tokens 27
3.3.13. Version Update Settings 27
4 Pruebas funcionales 27
4.1 Introduccin 27
4.2 TestSuites 32
4.3 TestCase 36
4.3.1. Test Requests 43
En este manual se describen los distintos aspectos que debe conocer el usuario sobre la herramienta
SoapUI.
2 Conceptos bsicos
SOAPUI parece que proviene de SOAP y UI. SOAP parecen ser las siglas de siglas de Simple Object
Access Protocol y UI pueden ser las siglas de User Interface.
As, podemos decir que SoapUI es una herramienta con interface de usuario que permite trabajar
con productos software que presenten como interface el protocolo SOAP.
http://www.soapui.org/
3 SoapUI
3.1 Prerrequisitos
SoapUI es una herramienta sencilla para nuevos usuarios, pero es necesario tener una serie de
conocimientos previos para poder sacarle el mximo partido a las funcionalidades de las que SoapUI provee. Es
recomendable, aunque no estrictamente necesario, que al usuario tenga conocimientos bsico de las siguientes
tecnologas:
WSDL: conceptos bsicos, tales como servicios, puertos, bindings, tipos de puerto,
relacionados con los esquemas xml.
SOAP: conceptos bsicos relacionados con WSDL (bindings, etc), los diferentes tipos de
codificacin (soap-encoded / literal) y tipos de mensaje (document / rpc).
XML: Tanto conocimientos del propio XML como de tecnologas relacionadas, tales como xpath,
XML Schema, namespaces, etc.
SoapUI es una aplicacin de escritorio tpica, que tiene una interfaz de usuario con estructura similar a la
disponible en los IDEs actuales, como pueden ser Eclipse, IDEA o NetBeans. La mayora de acciones tienen
accesos directos o tooltips.
3. Parte inferior izquierda: El panel de propiedades muestra informacin del objeto seleccionado en
el navegador.
o New SOPA Project (Nuevo proyecto SOAP): Inicia el asistente de nuevo proyecto SOAP.
o New REST Project (Nuevo proyecto REST): Inicia el asistente de nuevo proyecto REST.
o New Generic Project (Nuevo proyecto Genrico): Inicia el asistente de nuevo proyecto
Genrico.
o Import Project (Importar proyecto): Permite seleccionar el fichero de configuracin de un
proyecto de SoapUI existente. El proyecto ser aadido al workspace existente.
o Import Packed Project (Importar proyecto empaquetado): Permite seleccionar el fichero de
configuracin de un proyecto de SoapUI existente en formato zip. El proyecto ser aadido al
workspace existente. Es til si exportamos un proyecto, que lo hace en este mismo formato.
o Import Remote Project (Importar proyecto remoto): Permite indicar la URL de un proyecto
remoto. El proyecto ser aadido al workspace existente.
o Save All Projects (Guardar todos los proyectos): Guarda los cambios de todos los proyectos
abiertos en el workspace.
o Open All Closed Projects (Abrir todos los proyectos cerrados) Abre todos los proyectos
cerrados en el workspace.
o Close All Open Projects (Cerrar todos los proyectos abiertos): Cierra todos los proyectos
abiertos en el workspace. Solicita confirmacin.
o Rename Workspace (Renombrar): Renombra el workspace. El nombre se muestra en el nodo
raz del navegador.
o New Workspace (Nuevo Workspace): Permite definir un nuevo workspace.
o Switch Workspace (Cambiar workspace): Permite elegir el workspace que queremos abrir.
o Clear Workspace (Limpia workspace): Permite vaciar el workspace (no borra los proyectos).
o Preferences (Preferencias): Establece las preferencias globales de soapUI.
o Save Preferences (Guardar preferencias): Guarda la configuracin global actual.
o Import Preferences (Importar preferencias): Importa configuraciones globales desde otra
localizacin (por ejemplo una instalacin anterior de SoapUI). Despus de la bsqueda, es
necesario reiniciar SoapUI para activar todas las configuraciones.
o Recent (Reciente): contiene submens con los editores, proyectos y workspaces ms
recientemente accedidos.
o Exit (Salir): para salir del soapUI.
o Exit without saving (Salir sin guardar): para salir del SoapUI sin guardar.
o Online Help (Ayuda online): lanza la pgina oficial de documentacin en un navegador externo.
o Switch Windows (Intercambiar ventanas): abre una ventana para cambiar a otro editor abierto.
o Maximize Desktop (Maximizar escrtorio): oculta/muestra el navegador y las pestaas de log.
o Close Current (Cerrar actual): cierra el panel activo del escritorio.
o Close All (Cerrar todos): cierra todas las vistas abiertas del escritorio.
o Closes Others (Cerrar otros): cierra todas las vistas abiertas del escritorio menos la que en ese
momento se encuentre activa.
3 Men "Desktop"
Pulsando el botn derecho en el workspace del soapUI, se pueden observar un cierto nmero de
ventanas de log, cada una mostrando por pantalla la salida correspondiente.
6 Pestaa de log
Al pulsar botn derecho en una pestaa de log, se muestra un men contextual con opciones para limpiar
el log, habilitado o deshabilitarlo, copiar las lneas seleccionadas al portapapeles, etc. Tambin es posible
exportar las entradas del log a un fichero. Otra opcin es limitar el mximo nmero de lneas disponibles (por
defecto 1000), y que cuando se exceda ese limite, las lneas mas viejas sern borradas del log.
SoapUI utiliza log4j para crear los logs, es posible adaptar la configuracin de log4j, renombrando el
archivo log4j.xml, llamndolo soapui-log4j.xml y posteriormente movindolo al directorio bin de soapUI.
3.3 Preferencias
Estas son las pestaas que se muestran al seleccionar la opcin Preferences en el men de File.
Pestaa Descripcin
El punto de men File tiene una accin denominada Import preferences que permite importar las
preferencias globales desde un fichero xml.
Configuracin Descripcin
Expect-Continue
Normalize Forward
Slashes
La direccin local a utilizar cuando se envan peticiones,
puede ser sobrescrita a nivel de peticin (con la
Bind address
correspondiente propiedad) y tambin a nivel de sistema
configurando la variable soapui.bind.address
Start RestMockService
Opcin Descripcin
Configuracin Descripcin
Path al keystore con los certificados de cliente, o trusted
keyStore
de servidor para ssl en un lado.
keyStore password Password del keystore..
Configuracin Descripcin
3.3.5. UI Settings
A continuacin se describen los parmetros de configuracin relativos a la interfaz de usuario:
Configuracin Descripcin
Cierra todos los proyectos en el arranque para mejorar el
Cerrar proyectos
tiempo de arranque y minimiza el consumo de memoria.
Ordenar proyectos Ordena los proyectos en orden alfabtico en el navegador.
Directorio de backups
Configuracin Descripcin
Validar respuestas
Aqu se indican los paths a las herramientas externas que deseamos integrar en SoapUI.
Ajustes Descripcin
Verbose Establece la salida verbose de la herramienta WS-I
Se puede incluir una clave general para codificar las claves en los ficheros de configuracin, que por
defecto son legibles.
4 Pruebas funcionales
SoapUI soporta pruebas funcionales de Servicios Web suministrando un caso de prueba con un nmero
de pasos que pueden ser ejecutados en secuencia. En la actualidad, hay seis tipos de pasos que proporcionan
muchas posibilidades de prueba. Los casos de prueba estn organizados en un grupo de pruebas y en un
mismo proyecto se pueden crear varios grupos de pruebas.
Las pruebas funcionales, en soapUI, se pueden usar para una variedad de propsitos:
Unidad de prueba: valida que cada operacin del Servicio Web funciona como se indica
Pruebas de compatibilidad: valida que el resultado devuelto por el Servicio Web es compatible
con su definicin
Prueba de procesos: valida que una secuencia de invocaciones de Servicios Web ejecuta un
proceso de negocio requerido
Pruebas guiadas por datos: valida que cualquiera de los anteriores funciona como requerimiento
de datos de entrada procedentes de fuentes externas (por ejemplo, una base de datos u otro
servicio Web)
4.1 Introduccin
Una vez que tienes algunas peticiones configuradas, puedes crear un Caso de Prueba que verifique su
comportamiento:
Aadir aserciones
Las aserciones son condiciones que se evalan tras obtener la respuesta y que su cumplimiento indica
que un funcionamiento correcto:
Lanzar TestSuite
Doble click en el nodo del TestCase en el cuadro izquierdo de navegacin, que abrir el
lanzador del caso de prueba.
Lanza todas las pruebas haciendo click en la flecha verde etiquetada con "Run this TestCase",
SoapUI enviar todas las peticiones de prueba y las validar consecuentemente. El resultado se
mostrar durante la ejecucin.
Lanza tus pruebas desde la lnea de comandos usando uno de las herramientas de lnea de comando
disponibles.
Un TestSuite sirve como contenedor para un nmero arbitrario de TestCase. Cuando se ejecuta un
TestSuite, los TestCase incluidos se pueden ejecutar tanto en secuencia como en paralelo, tal y como se
describe a continuacin.
Crear TestSuites
Selecciona la opcin de "Generate TestSuite" de la interfaz del men para abrir una ventana y generar un
TestSuite completo para la interfaz seleccionada. El cuadro de dilogo contiene las siguientes opciones:
Las siguientes acciones estn disponibles desde del men que aparece al realizar clic derecho sobre el
nodo del TestSuite.
La etiqueta de detalles que est en la esquina inferior izquierda, muestra los siguientes valores cuando
el TestSuite est seleccionado en el rbol de navegacin.
29 Propiedades TestSuite
Lanzador de TestSuite
Haciendo doble click en el navegador del TestSuite, abre el lanzador de TestSuite que contiene una lista
de los TestCase y una barra de herramientas. Se muestra una barra de progreso para cada TestCase. Al hacer
doble clic en un TestCase abre su editor de TestCase. Si un TestCase est probando su carga, su barra de
progreso lo muestra y el TestCase no se lanzar durante la ejecucin del TestSuite.
Despus de la barra de progreso viene una lista de los TestCase que contiene, seguido por una serie de
inspectores para el TestCase (de izquierda a derecha):
La ventana de registro del TestSuite de abajo, muestra todos los pasos/ejecuciones resultados del ltimo
TestSuite lanzado.
4.3 TestCase
SoapUI soporta pruebas funcionales de Servicios Web suministrando un TestCase con un nmero de
pasos que pueden ser ejecutados en secuencia. Adems, un nmero arbitrario de pruebas de carga se pueden
asociarse con un TestCase para ejecutarse bajo diferentes escenarios de carga.
Cada TestCase en un TestSuite muestra un nmero de propiedades que pueden ser ledas, escritas o
Tipos de TestSteps
Las siguientes acciones estn disponibles desde el men que aparece al hacer click derecho en el nodo
del TestCase:
La pestaa de detalles que est en la esquina inferior izquierda, muestra los siguientes valores cuando
el TestCase est seleccionado en el rbol de navegacin
Clonar un TestCase
Al seleccionar Clone TestCase del men del TestCase abre el siguiente cuadro de dilogo:
Si seleccionas clonarlo a otro proyecto, soapUI abre una ventana para clonar las interfaces requeridas a
ese proyecto.
El editor de TestCase
Haciendo doble click en el nodo del TestCase del navegador o seleccionando Show TestCase Editor
de su men de opciones abre el editor de TestCase, que permite editar y ejecutar el TestCase. Si el TestCase
est haciendo una prueba de carga, el editor estar en su mayor parte deshabilitado. El editor est dividido en 4
partes (de arriba abajo):
La barra de herramientas principal contiene las siguientes acciones (de izquierda a derecha)
Lista de TestSteps
La pestaa de TestSteps contiene una lista de los TestSteps configurados actualmente para este
TestCase. Al hacer doble click en un TestStep de la lista, abre la ventana de edicin de ese elemento. Al realizar
botn derecho sobre un TestStep muestra un men emergente con las siguientes acciones:
Haciendo doble click en la entrada de un TestStep del registro, abre el visor de resultados del TestStep
seleccionado si est disponible y descrito en la pgina de documentacin de cada TestStep (por ejemplo, el
visor de resultados de la peticin).
Search Properties: cuando se buscan los valores de la propiedad sin las especificaciones del
paso, comprueba todos los pasos antes que el actual para la propiedad nombre.
Session: controla que una sesin HTTP es mantenida para todas las peticiones en el TestCase.
La eleccin de esto reutilizar cookies, autenticacin de cabeceras, etc.
Abort on error: controla si el TestCase tiene que ser cancelado cuando un TestStep falla con
un error (por ejemplo, si una peticin de un paso tiene aserciones fallidas).
Fail TestCase on Error: controla si el TestCase va a fallar, si la opcin de Fail on error no est
seleccionada y el TestCase termina con uno o ms TestSteps.
Discard OK Results: la larga ejecucin de los TestCase eventualmente consume gran cantidad
de memoria ya que los resultados de los TestSteps estn internamente cacheados para su
posterior visualizacin y presentacin. Al seleccionar esta opcin, har que soapUI slo guarde
los resultados sin xito de los TestSteps con lo que se ahorrar importantes cantidades de
memoria.
Socket timeout: el timeout (en milisegundos) que se utilizar para todas las peticiones del
TestCase.
TestCase timeout: el timeout (en milisegundos) a esperar antes cancelar o que falle la
ejecucin de un TestCase.
35 Opciones de un TestCase
Los TestRequests son una de las principales caractersticas cuando se trabaja con soapUI. Extiende
peticiones estndar con la posibilidad de aadir cualquier nmero de aserciones que se aplicarn a la respuesta
recibida por la peticin. Esto es, comprueba que la respuesta contenga lo que se espera que contenga.
Para crear un TestRequest se puede hacer de 2 maneras. Desde las peticiones estndar usando la
accin de "Add to TestCase" o a travs del men emergente del editor de TestCase con la opcin "Add Step ->
En ambos casos, se mostrar un cuadro de dilogo para aadir aserciones estndar para hacer la prueba
del servicio web ms rpida.
Los TestRequests son enviados manualmente a travs de las acciones de envo de sus editores o
cuando se ejecuta el TestCase que contiene la peticin. La respuesta de la peticin es validada contra las
aserciones de peticiones y el icono de la peticin cambia para reflejar el resultado de la validacin; verde
significa que todas las validaciones fueron bien y rojo que algunas fallaron. Un icono con el fondo gris indica que
la peticin todava no ha sido enviada para validar, un fondo blanco indica que los TestRequests carecen de
aserciones.
Las siguientes acciones estn disponibles al hacer click derecho sobre el nodo del TestRequest del
men:
Open Editor: abre el editor del TestStep asociado (si est disponible).
Disable/Enable TestStep: inhabilita o permite la ejecucin del TestStep.
Insert Step: muestra una lista de los TestStep que se pueden insertar en la posicin actual.
Rename: abre una ventana para renombrar el paso seleccionado.
Delete: abre una ventana para borrar el paso seleccionado.
Clone TestStep: muestra una ventana para clonar el paso seleccionado.
Move Step Up: mueve el paso seleccionado una posicin hacia arriba en la lista (tambin se
puede realizar con ctrl-flecha arriba).
Move Step Down: mueve el paso seleccionado una posicin hacia abajo en la lista (tambin se
puede realizar con ctrl-flecha abajo).
Change Operation: abre una ventana para modificar la operacin del TestRequest.
Select Operation: selecciona este TestRequest en el navegador.
Online Help: abre la pgina de ayuda online en el navegador.
La pestaa de detalles situada en la esquina inferior izquierda muestra las mismas propiedades que
cuando un nodo de TestRequest est seleccionado en el rbol de navegacin para una peticin estndar.
Aade dos propiedades de slo lectura:
Cambiar operacin
La lista de interfaces muestras las interfaces disponibles para el proyecto actual. La lista de operaciones
se actualiza respectivamente.
El editor de la TestRequest
Al hacer doble click en un TestRequest, tanto en el navegador como en el cuadro del editor del TestCase,
abre el editor de peticin, el cul es ms o menos una copia del editor de peticin estndar con las siguientes
excepciones:
El segundo botn de la barra de herramientas Add to TestCase ha sido reemplazado por Add
Assertion, el cul muestra una ventana para aadir una asercin al TestRequest.
La accin de clonar ahora clona el TestRequest y adjunta la peticin clonada al contenedor de
TestCase
Debajo del cuadro peticin/respuesta hay un cuadro que contiene 2 nuevas pestaas; la pestaa
Assertions (aserciones) y la pestaa Request Log (registro de peticiones).
Todas las dems funcionalidades de edicin, presentacin y validacin son las mismas que en el editor
de peticin.
La pestaa de aserciones
La pestaa de aserciones lista las aserciones que han sido configuradas para el TestRequest. Haciendo
doble click en una asercin de la lista abre el cuadro de dilogo de configuracin de aserciones (si est
disponible). Se pueden aadir tantas aserciones como sean necesarias y a veces puede ser til aadir el mismo
tipo de aserciones varias veces con diferentes configuraciones.
Un crculo pintado al lado de la asercin indica el estado de sta de acuerdo a la ltima respuesta
recibida; rojo = la asercin ha fallado junto con los mensajes de error, verde = asercin ok, gris = la asercin no
ha sido ejecutada.
Las siguientes acciones estn disponibles al hacer click con el botn derecho en el men de la lista de
aserciones:
La barra de herramientas contiene los botones de aadir, configurar y borrar una asercin.
Aserciones de respuesta
Una de las principales caractersticas de soapUI es la capacidad de crear aserciones sobre el contenido
de las respuestas SOAP. Se suministran una serie de diferentes aserciones con el fin de cubrir las necesidades
de calidad para pruebas. Actualmente las siguientes aserciones estn disponibles.
Tipo Descripcin
Simple Not
Comprueba la no existencia de un smbolo
Contains
WS-Security
Comprueba que el procesamiento de WS-Security sea correcto
Status *
Las aserciones marcadas con (*) son aserciones nicas, lo que indica que slo pueden ser aadidas
una sola vez al TestRequest.
La asercin de conformidad de esquema comprueba que la respuesta es compatible con el esquema xml
de los mensajes. Si no lo es, una lista de errores de validacin, como aquellos mostrados en la pestaa de
validacin del editor de peticin, son mostrados y la asercin falla. La lista de errores tambin se muestra en la
pestaa de asercin del editor de TestRequest; si es posible, se puede hacer doble click sobre los errores para
resaltar la lnea del error de validacin.
La asercin tiene un nico parmetro de configuracin que es mostrado cuando se crea/configura una
asercin de conformidad de esquema, la URL para la definicin WSDL que se usa para validacin. Por defecto
es la URL de la definicin que contiene la interface de operaciones del TestRequest.
La asercin de conformidad de esquema est dirigida a un perfil bsico compatible con los mensajes
WSDL y, por lo tanto, solo admite mensajes literales codificados (rpc y document). La validacin de mensajes
SOAP-encoded no se admite y se traducir en un error de validacin.
Hay que tener en cuenta el hecho que un SOAP-Fault slo ser un esquema de validacin si el elemento
de detalle contiene parte del mensaje que est definido en el correspondiente enlace y que no ser compatible
con su correspondiente esquema de comunicacin (ver, ms adelante, la asercin de SOAP-Fault en relacin
Simple Contains
SOAP Fault
La asercin SOAP Fault comprueba que la respuesta recibida es un fallo soap. Esta asercin no tiene
parmetros de configuracin.
La asercin Not SOAP Fault comprueba que la respuesta recibida no es un fallo soap. Esto tiene que
ser usado junto al conformidad de esquema ya que un SOAP fault no se valida contra ningn esquema (al
menos hay una parte del fallo definido en el WSDL y ese fallo est presente en la respuesta). Esta asercin no
tiene parmetros de configuracin.
Valida que la respuesta es un mensaje vlido de SOAP. Esta es la mnima asercin que debera ser
aadida para recoger respuestas vacas o pginas de error de HTTP. Esta asercin no tiene parmetros de
configuracin.
Response SLA
La asercin Response SLA comprueba que el tiempo de respuesta es menor que el tiempo lmite
indicado.
La asercin WS-Security Status comprueba que el mensaje de entrada tiene cabeceras vlidas de WS-
Security.
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 seleccionar 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.
El 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.
La barra de herramientas para la parte inferior contiene las siguientes acciones (de izquierda a derecha):
Select from current: evala la expresin XPath especificada contra el actual mensaje de
respuesta (si est disponible) para la peticin subyacente. El resultado se escribe en el rea de
resultados del dilogo de configuracin
Test: evala la expresin XPath especificada contra el actual mensaje de respuesta (si est
disponible) para la peticin subyacente y compara este resultado con el valor especificado en el
rea de resultados. Esta es esencialmente la misma comparacin que se realiza durante una
asercin "verdadera".
Allow Wildcard: Permite el uso del comodn '*' en atributos y elementos de valores. stos se
evitarn durante la comparacin (vase el tutorial ms adelante).
La asercin XQuery Match est configurada exactamente como la asercin XPath Math que se ha
descrito anteriormente, la nica diferencia es que la expresin se evala como una expresin XQuery 2.0.
Asercin Script
La asercin script permite validaciones arbitrarias (ver los ejemplos de abajo). Al crear o al hacer doble
click en una asercin script, un editor de script Groovy se muestra como se ve a continuacin
Una asercin script debera lanzar una excepcin con el mensaje de error para fallar la asercin. Se
puede utilizar tambin una declaracin construida en Groovy para una fcil sintaxis de la asercin, tal como se
muestra en los ejemplos de a continuacin. Si la asercin es vlida, devolver nada o un mensaje de estado que
se muestra en el registro del TestCase.
Validar la existencia de un elemento especfico utilizando GroovyUtils (aunque esto sera ms fcil con
una asercin estndar XPath- Contains):
La Property-Transferes son TestStep que transfieren propiedades entre los contenedores de propiedad
dentro del mismo alcance que la Property-Transfer del TestStep (es decir, que contenga su TestCase, su
TestSuite, el proyecto y las propiedades del destino). El paso puede contener un nmero arbitrario de
"transferencias" especificando una propiedad de origen y destino con expresiones opcionales de XPath /
XQuery.
Las Property-Transferes utilizan el mismo motor de Saxon XPath / XQuery descrito para las aserciones
XPath y XQuery.
El editor de Property-Transferes
El editor de Property-Transferes se abre haciendo doble click en un paso de una Property-Transfer del
navegador o en la lista de TestStep del editor de Testcase.
El editor contiene una lista de transferencias configuradas a la izquierda, seleccionando una transferencia
de la lista mostrar su cdigo y la expresin de destino de XPath y XQuery a la derecha.
La lista desplegable de la parte superior derecha se utiliza para especificar el origen y la propiedad a ser
transferida. Los destinos y propiedades se especifican con la lista desplegable del medio. Si las propiedades
contienen un XML seguido de una expresin XPath se pueden especificar an ms, seleccionando el valor a
transferir o mover.
El registro de transferencia de la parte inferior del editor muestra todas las transferencia realizadas por la
Property-Transfer mientras el editor est abierto, incluyendo tanto las realizadas usando los botones de la barra
Ejemplo de escenarios:
Ramificaciones que dependen de los resultados devueltos por una peticin
Reiniciar despus de un largo retraso en las pruebas de vigilancia
En varias ocasiones esperar y chequear el valor de estado antes de continuar ( por ejemplo en un
proceso por lotes )
Las condiciones usan el mismo motor que Saxon XPath descrito para las aserciones XPath. Recuerda que
una condicin debe evaluar un valor booleano para ser vlida (ver ejemplos ms abajo).
El editor del condicional Goto se abre haciendo doble click en un TestStep de un condicional Goto, tanto
en el navegador como en la lista de TestStep del editor de TestCase.
El editor contiene una lista de condiciones configuradas a la izquierda, seleccionando una condicin de la
lista mostrar, a la derecha, la expresin de esa condicin y una lista desplegable para el TestStep de destino.
El botn de prueba de la condicin evaluar la condicin con la respuesta actual y mostrar el resultado (un
mensaje de respuesta debe estar disponible para el anterior TestRequest).
Un Property-Step permite definir un nmero arbitrario de propiedades que se pueden usar desde las
Property-Transfers y desde los pasos de un script Groovy. Las propiedades, opcionalmente, pueden ser ledas
de y escritas en un fichero de propiedades bajo ejecucin, por ejemplo, si se desea especificar algunas
propiedades externas (contraseas, puntos finales, etc) o si se quiere escribir algunos resultados en un fichero
para su posterior presentacin de informes.
Editor de propiedades
El cuadro que aparece bajo la barra de herramientas muestra las propiedades definidas y sus valores, los
valores y los nombres pueden ser modificados por la edicin estndar.
La pestaa de detalle del paso de propiedad ( parte inferior izquierda ) contiene lo siguiente:
Name: el nombre del paso de propiedad.
Description: una pequea descripcin del paso de propiedad.
Create Missing on Load: crea las propiedades de los ficheros de propiedad de origen que
actualmente no estn definidos.
Save before Load: se utiliza para salvar las propiedades existentes antes de cargar otras
nuevas de los ficheros de propiedad de origen y destino.
Cuando un paso de propiedad se ejecuta durante un TestCase, se toman las siguientes acciones:
Las propiedades son ledos o escritos a partir de una fuente si se ha especificado como se
describe ms arriba (dependiendo de la opcin " Save before Load ")
Las propiedades se escriben o leen a un objetivo si se ha especificado como se describe ms
arriba (dependiendo de la opcin " Save before Load ")
Las propiedades son todas copiados a las actuales propiedades de TestRunContexts para que
estn disponibles para la Propiedad de Expansin
Los TestStep de retardo se pueden insertar en cualquier posicin en un TestCase para pausar la
ejecucin de un TestCase durante un nmero determinado de milisegundos
Para insertar un paso de retardo se utiliza la opcin del men Insert Step que se ha descrito
anteriormente. Al hacer click con el botn derecho en el paso de retardo y si se selecciona la opcin Set Delay
Time se puede ajustar el nmero de milisegundos para la pausa (por defecto es 1000ms).
El paso de ejecucin de un TestCase permite ejecutar otro TestCase dentro del actual, opcionalmente se
pueden ajustar las propiedades devueltas del TestCase destino.
Esto puede ser til para dividir Testcase complejos en partes ms pequeas o compartir algunas pruebas
funcionales entre Testcase.
Despus de seleccionar "Run TestCase cuando se crea un nuevo TestStep, se muestra el siguiente
cuadro de dilogo:
Seleccione el TestSuite y el TestCase de las listas desplegables. La lista de Return Properties contiene
las propiedades del TestCase definidas para el TestCase destino. Seleccione las propiedades cuyos valores
deben ser copiados y devueltos al paso de ejecucin del TestCase despus de ejecutarse.
Ejecucin
La versin 3.5 de SoapUI, incluye soporte a las pruebas JMS, para cubrir esta funcionalidad se apoya en
el proyecto HermesJMS.
HermesJMS es una consola extensible, que nos permite interactuar con proveedores JMS, hacienda fcil
la navegacin y la bsqueda de colas y topics. Est plenamente integrado con JNDI permitiendo administrar
objetos almacenados, crear sesiones JMS de las connection factories y usar cualquier destino definido.
Ejecucin
5 Ejemplo de uso
A continuacin se describen los pasos necesarios para la crear un nuevo proyecto de servicio web en
SoapUI.
1. Iniciar SoapUI
2. Crear un proyecto nuevo. Para ello tenemos dos opciones, click derecho sobre el nodo Projects del
navegador y en el men contextual hacer click sobre la opcin new WSDL Project o bien Men File-
>new WSDL Project
NOTA: Es posible que tanto la URL de invocacin a los mtodos del servicio web, como la URL de acceso al
WSDL requieran autenticacin por certificado. Si nos encontramos en ese caso, debemos adaptar la
configuracin SSL del SoapUI para que el asistente de nuevo proyecto termine satisfactoriamente.
3. Seguimos el asistente de creacin de nuevo proyecto proporcionando los datos que se nos indiquen.
El Project Name ponemos el nombre que queramos asignarle dentro del propio rea de
trabajo (workspace) del SoapUI.
En Initial WSDL indicamos la URL hasta el fichero descriptor del servicio web. Es posible
tanto indicar un fichero del sistema de fichero local como indicar una URL remota. Por
ejemplo: https://www.dgsfp.mineco.es/Pruebas/Upload.Asmx?wsdl
El checkbox Create Requests si se encuentra activado, le indica a SoapUI que debe
autogenerar una peticin de muestra para cada mtodo publicado por el servicio web.
El checkbox Create Project File si se encuentra activado har que se nos abra una pantalla
ms en el asistente para indicar el nombre del fichero donde guardaremos la definicin del
proyecto. Este paso puede realizarse a posteriori desde los mens del soapUI.
40 Ventana de seleccin del nombre y ubicacin del fichero de definicin del proyecto
4. Una vez creado el proyecto. Podemos explorar los diferentes mtodos que expone, as como lanzar
las peticiones de prueba, una vez completemos los parmetros del que en cada caso requiera el
servicio web.
6 Integracin de herramientas
SoapUI puede ser integrado con diversas herramientas y frameworks de servicios web, incluyendo:
2. WS-I Tools integra la validacin de servicios web contra WS-I Basic Profile.
SoapUI no lleva incluido en la instalacin las diferentes herramientas. Es necesario instalar individualmente
cada una de ellas y posteriormente indicarle a SoapUI el path a la herramienta. Los diferentes paths se
indican desde la pantalla de Preferencias->Tools. A continuacin se muestra un ejemplo de como podra
quedar dicha ventana:
Imaginemos que un servicio web devuelve un CDATA que contiene un xml que contiene un
nmero. Necesitamos extraer ese nmero para llamar a otro servicio web y hacer una prueba.
Una posibilidad es crear un paso de tipo properties que defina 2 propiedades vacas:
getNum
Imaginemos que tenemos que pasar un fichero codificado en Base64 para probar un Web Service.
El fichero lo tenemos en nuestro disco duro.
La idea es crear un paso de tipo Properties que contenga una variable que se el fichero en
Base64. Para rellenar esa variable usaremos un paso de Groovy.
Imaginemos que un servicio nos devuelve un string que contienen un fichero en base64, y queremos
guardarlo en disco.
La idea es crear un paso Groovy para extraer y decodificar el fichero, que adems, guarde en una
propiedad el fichero codificado.
En este ejemplo se extrae un parmetro que es devuelto por un Web Service y despus se define un
nuevo parmetro que usa el anterior como mscara.
Imaginemos que queremos probar si un Web Service no presenta una vulnerabilidad de seguridad.
Si atendemos a las vulnerabilidades ms conocidas, en el caso de Web Services los principales
ataques son intentados con peticiones especficas. Por ejemplo, la inyeccin SQL consiste en
modificar la peticin de manera que colemos sql en la ejecucin del Web Service.
Para ello, sobre un caso de prueba funcional creado, podemos aadir una prueba de seguridad:
pulsando el botn :
En la pestaa Advanced vemos que tratar de incluir en esos parmetros para ver si se produce
SL Injection. Para detectarlo, se crea una asercin, que en este caso, busca el token table en la
respuesta.