SoapUi

RECU-0209 (Recurso Referencia)

Descripción

SoapUI es una herramienta de gran alcance diseñada para ayudar en la prueba y el desarrollo de aplicaciones. Permite efectuar el testeo de la web, con docenas de características, incluyendo una interfaz simple, fácil e intuitiva. Permite la utilización de métodos de captura y repetición, siendo una herramienta de gran ayuda en la realización de pruebas de carga de gran alcance, informes detallados, gráficos, etc...

SoapUI trae embebido el navegador Internet Explorer de Microsoft, permitiendo la monitorización y el control de las acciones que en él se producen.

Esto permite:

  • Realizar capturas de los parámetros del cgi, las páginas y los framesets solicitados.
  • Modificar capturas y poder volverlas a ejecutar en cualquier momento sin necesidad de volver a ejecutarlas.
  • Grabar las capturas como scripts y poderlas compartir dentro del entorno de trabajo.
  • Capturar la estadística del funcionamiento mientras se ejecuta una prueba.
  • Realiar pruebas de regresión de áreas enteras de sitios web complejos en un solo clic.

Principales funcionalidades

Las principales funcionalidades que aporta la herramienta soapUI son:

  • Soporte a SOAP 1.1 y 1.2.
  • Incorpora un monitor SOAP para capturar y analizar el tráfico.
  • Inspecciona Web Services WSDL y REST (tanto WADL como WADLess) y los visualiza jerárquicamente.
  • Genera automáticamente los tests y las peticiones SOAP de las operaciones definidas en el descriptor WSDL o WADL.
  • Permite verificar la conformidad de un WSDL según los estándares WS-I*.
  • Opcionalmente, puede utilizarse el scripting de Groovy para que el comportamiento de los tests sea dinámico.
  • Soporta varios métodos de autentificación: Basic, Digest, WS-Security y NTLM Web Service.
  • Soporta diferentes tecnologías de ficheros adjuntos: MTOM, SOAP con Attachments, ficheros Inline para WSDL y MIME Attachments para REST.
  • Verificación del contenido de mensajes con Xpath y Xquery.
  • Versatilidad en la configuración del test de carga, pudiendo indicar el límite (en tiempo o peticiones), el número de threads de ataque, el método HTTP de la petición (POST, GET ...).
  • Permite exponer Web Services de simulación (o mocking) con el contenido de respuesta personalizable.

Pruebas Funcionales

SoapUI soporta pruebas funcionales de Servicios Web suministrando un caso de prueba con un número 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 están 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 propósitos:

  • Unidad de prueba: valida que cada operación del Servicio Web funciona como se indica.
  • Pruebas de compatibilidad: valida que el resultado devuelto por el Servicio Web es compatible con su definición.
  • 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)

Buenas prácticas y recomendaciones de uso

  • Es fácil y rápido crear, ejecutar y guardar los casos de prueba funcional requeridos. Se pueden adaptar y expandir en cualquier momento.
  • Es fácil hacer aserciones. También con expresiones regulares.
  • Permite usar mocks para simular el comportamiento de los WebSerivces que aún no estén construidos.
  • Es de licencia opensource y por lo tanto gratuito.
  • Puede ser integrado con herramientas de diversa utilidad.

Ejemplos

  1. Tener instalada la última versión bajada de la Web oficial de SoapUI.
  2. Crear un nuevo proyecto SoapUI para el proyecto a probar, configurando la url que contiene el WSDL del proyecto.
  3. Por cada operación del servicio a probar, crear una petición. Cada peticion requiere el ingreso de valores para los parámetros definidos. Agregar valores en el XML que nos propone el wizard de la herramienta.
  4. El proyecto se persiste en un script XML, que podemos guardar en el repositorio en el que tengamos el código fuente del proyecto. De este modo, todo el equipo podrá hacer crecer la prueba funcional automática del proyecto de un modo ágil.
  5. Con los pasos dados, logramos obtener una prueba funcional del proyecto y su documentación.
  6. Esta herramienta maneja el concepto de TestSuite, TestCase, TestStep, como lo manejan JUnit, JMeter, etc. Un TestSuite sirve para contener un número arbitrario de casos de prueba (TestCases) que pueden ejecutarse secuencialmente o en paralelo. Los TestSteps sirven para ejecutar TestCases secuencialmente. Una vez creadas las peticiones, es posible generar una TestSuite y así automatizar las pruebas funcionales, con el valor agregado de tener pruebas de regresión.
  7. Por cada TestCase es posible hacer validaciones automáticas de los resultados. Entonces, por cada petición, se verifica si la respuesta es un fallo, o no lo es, o contiene un determinado valor, o no lo contiene. Es una buena práctica, en el manejo de web services, que los errores inesperado del sistema (Runtime Exception) viajen en un tag “fault” distinto a una respuesta normal del servicio.


  8. Con las peticiones agregadas a los casos de prueba, se puede realizar una ejecución masiva utilizando la opción Launch TestRunner.

Contenidos relacionados