Tutorial de SoapUI en español - Proyecto de ejemplo

¿Te gustaría aprender a realizar Testing funcional y automatizado de servicios web y REST? Te recomendamos el curso: WebServices/REST API Testing with SoapUI+ Real Time Projects icon


SoapUI es la herramienta de mayor difusión para probar webservices en arquitecturas orientadas a servicios (SOA) y Representational State Transfers (REST).

Aprender a usar una nueva aplicación siempre es un reto, por muy sencilla que esta sea. Es por ello que SoapUI viene con un proyecto de ejemplo (Sample Project) incluido, que puedes usar como referencia y facilitarte el aprendizaje.

El proyecto de ejemplo de SoapUI ilustra los conceptos básicos y puedes usarlo como punto de partida, probar un proyecto, correr un SoapUI Mock Service y ver los casos de prueba que incluye para que te familiarices con la interfaz de SoapUI.

Este contenido se basa en la página de Webservice Sample Project de SoapUI, e ilustra los siguientes conceptos:

  1. Web Service Mocking.
  2. Inspección de Webservices.
  3. Pruebas funcionales de Webservices.
  4. Pruebas de carga de Webservices.

Antes de comenzar con el Tutorial de SoapUI en español


Antes de comenzar a ver este tutorial asegurate de haber bajado e instalado la herramienta en el sitio oficial de Soapui.

Lee también nuestro artículo de información básica de SoapUI y sus funcionalidades:

Pruebas de Webservices con SoapUI

Abrir el proyecto de ejemplo de SoapUI


1.- Primero debes hacer click en el nodo Projects en el navegador y seleccionar Import Project.


2.- Seguidamente selecciona el archivo sample-soapui-project.xmls de la carpeta User/soapUI-Tutorials. (Debes haber seleccionado la opción de tutorial durante el proceso de instalación de SoapUI).


Se mostrará el proyecto de ejemplo en el navegador de SoapUI.


Ahora que ya tenemos el proyecto cargado, comencemos:

1) SoapUI Mock Service


Frecuentemente en los proyectos necesitamos probar funcionalidad que utilizan Webservices cuyo desarrollo no ha comenzado o no está listo para usarse aún.

El Mocking de Webservices te permite simular la funcionalidad de un Webservice en SoapUI, lo cual te permite comenzar a diseñar y desarrollar tus pruebas. De esta forma puedes aplicar metodologías de desarrollo guiado por pruebas (Test Driven Development) en las cuales primero desarrollas la prueba y luego el software.

1.- Para añadir un MockService se hace click derecho en el icono de interfaz y se selecciona Generate MockService.


2.- Se abrirá la pantalla Generate MockService.


3.- Ingresa el nombre de tu MockService y haz click en OK.


4.- Se genera el MockService.


5.- Ahora veamos cómo funciona un Webservice. El proyecto tiene incluido un Webservice Mock de ejemplo llamado SampleServiceSoapBinding. Abre el Webservice Mock haciendo doble click en él.


6.- Recorre las diferentes interfaces en el Mock Service, login, logout, search y buy, observando que se hace con distintos Requests (peticiones). Como puedes ver, los Request son atendidos usando Scripts. Esta es la forma más común de atender las peticiones, sin embargo, al comienzo del proyecto también podrías simplemente crear un conjunto de respuestas y despacharlas al azar.

7.- Haz click en Run para iniciar el Mock Service.

8.- Ahora deberías ver el Mock Service ejecutándose en el puerto 8088.


Curso de SoapUI



¿Te gustaría aprender a realizar pruebas funcionales y automatizadas de servicios web?

Inscríbete en el curso: 

WebServices/REST API Testing with SoapUI+ Real Time Projects icon


2) Inspección de Webservices


Inspección de Webservices es una forma de mirar en que consiste el Webservice y que parámetros recibe y produce como resultado.

1.- Primero dirígete al Interface Inspector, haciendo doble click en el nodo SampleServiceSoapBinding.

2.- Esta vista te presenta una forma estructurada de ver un WSDL, mucho mejor que leer el XML.

Ahora vamos a inspeccionar el Webservice, haciendo doble click en el icono de interfaz de SampleServiceSoapBinding. Primero familiarízate con el WSDL y luego ve hacia los Requests del WebService.


3.- Expande el login y haz doble click en Request1. Verás que se abre loginRequest en el escritorio de soapUI. El request utiliza el username login y el password Login123.

4.- Presiona el botón de ejecución para realizar la petición (Request).

5.- Ahora se te mostrará el panel de respuesta.


3) Pruebas funcionales de Webservices


Ahora pasamos a ver cómo funcionan las pruebas en SoapUI. El proyecto de ejemplo contiene 3 TestSuites con diferentes TestCases, a su vez, los TestCases están compuestos de pasos, a los cuales llamamos TestSteps.

La estructura de un proyecto de SoapUI es la siguiente:

  • Project
  • Interface
  • TestSuites
    • TestCases
      • TestSteps
      • LoadTests
  • MockServices

A continuación examinamos las pruebas funcionales en SoapUI.

1.- Expande el Simple TestSuite de ejemplo y haz doble click en Simple Login y Logout w. Properties Steps.



2.- Como puedes ver, el TestCase comprende 5 pasos (TestSteps).


3.- Seleccionando el Tab de descripción puedes ver la documentación de la prueba.

4.- Cada paso tiene 3 tipos diferentes de TestSteps, que son:

  • PropertyStep: Almacena el valor de los atributos, en este caso el Username y password requeridos para hacer el login.
  • TestRequests: La petición que se realiza al servidor. En este caso son login y logout.
  • PropertyTransfers: Este paso se usa para mover el valor de los atributos entre diferentes pasos. Por ejemplo del Property Step al Request.

5.- Haz doble click en TestStep Property Transfer: Move username and password.


6.- Se abre el editor de TestStep en el escritorio de SoapUI.

7.- Una funcionalidad importante de los SoapUI Test son las aserciones. Las aserciones se convierten en Test Requests y son para validar que la respuesta recibida es la esperada.

Abre el Test Step Test Request: Logout.

8.- Veras que tiene 4 aserciones:

  • Soap Response: Que la respuesta es una respuesta Soap.
  • Schema Compliance: Que cumple con el esquema.
  • No SOAP Fault: Que no existe un SOAP fault.
  • XPATH Match: Valida que el valor de ciertos elementos sea el esperado.


El Test Run


Ahora que hemos examinado el TestCase, vamos a ejecutarlo, para ello, presiona el botón Play. A medida que se ejecuta la prueba, la barra de progreso se va llenando de color verde.

¿Se mostró de color rojo luego de solo un paso?

No olvides iniciar el MockService.

O quizás, ¿ya habías ejecutado un TestStep?

Ve la respuesta, quizas esta sea que ya tienes una sesión abierta. Para solucionarlo, ve al MockService, detenlo y vuelvelo a iniciar otra vez. Ahora vuelve a ejecutar la prueba.

Pruebas de carga de Webservices (Load Tests)


SoapUI te permite crear fácilmente las pruebas de carga (o pruebas de Estrés), para ello, se utilizan los mismos parámetros de las pruebas funcionales, simplemente seleccionándola y presionando para generar a partir de ella la prueba de carga.

De esta forma se pueden crear rápidamente las pruebas de carga, las cuales te permiten evaluar el desempeño de la aplicación rápidamente al comienzo del proceso de desarrollo.

1.- Ve al TestSuite Sample expanded TestSuite y a los casos de prueba de Search y Buy

Puedes ver 4 tipos de pruebas de carga en ese caso de prueba, uno para acada estrategia de LoadTest. 

Por ahora, seleccionamos el LoadTest: Simple Strategy LoadTest. Este LoadTest está basado en una estrategia de carga que llamaremos Simple Strategy, la cual es una estrategia básica para un simple retraso aleatorio (random delay).



2.- Procedemos a configurar la prueba.


  • Primero se configura el limite de la estrategia de pruebas (Limit). Esto es, el número de segundos que la prueba estará en ejecución.
  • Luego se configuran el número de hilos (Threads) de la estrategia. Por ahora, se configura uno solo.
  • Tercero, se configura el retraso (Test Delay), que establece el número de milisegundos para el retraso base.
  • Cuarto, se configura una variable aleatoria (Random), que establece un intervalo de probabilidad para el retraso entre pruebas. 0,5 indica que el tiempo entre pruebas estará entre 100 y 300 milisegundos. Un random de 0 indica variación 0 entre pruebas, es decir el retraso será siempre de 200 milisegundos.

3.- Procedemos a ejecutar la prueba.

4.- Como puedes ver, los números de la prueba se actualizan constantemente. Puedes ver números para los tiempos de respuesta, aserciones, errores, porcentaje de las pruebas ejecutadas y más.


5.- Puedes presionar el botón de gráfico.


Para así visualizar el gráfico de la ejecución de la prueba:


El MockService tiene un error


El MockService en el proyecto de ejemplo tiene un error que fue colocado intencionalmente.

  • Revisa TestSuite Sample TestSuite fails if we don't get faults y TestCase TestCase: Searching después de Logging out LoadTests. Allí encontraras una prueba de carga llamada LoadTest with Multiple Tests, la cual fallará si es ejecutada.
  • Abrela y ejecutala, transcurrido un tiempo, esta prueba presentará un fallo.

¿Porque?

La prueba falla debido a que múltiples usuarios están intentando un login simultaneo con el mismo username, lo cual no es permitido por el MockService.

Más Información sobre Software Testing


Visita nuestra página de Recursos en Pruebas de Software

¿Y qué opinas tú?


En tu organización, ¿Ya comenzaron a hacer pruebas de webservices? ¿Qué herramientas utilizan? ¿Qué opinas de SoapUI? Te invitamos a dejarnos comentarios en la Web de La Oficina de Proyectos de Informática (pmoinformatica) (Si lo deseas, puedes firmar tu comentario con la dirección de tu web).

¿Buscas más información de desarrollo y pruebas de software?


¿Quieres obtener completamente gratis y directamente en tu correo electrónico plantillas, artículos y otros recursos de metodologías de desarrollo y pruebas de software?, entonces presiona "suscríbete" a continuación.

Suscríbete a la lista de correo electrónico:


Vía FeedBurner, se abrirá una nueva ventana

También puedes seguirnos vía Twitter, Facebook o Linkedin:

   


No hay comentarios :

Publicar un comentario

Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.