¿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
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:
- Web Service Mocking.
- Inspección de Webservices.
- Pruebas funcionales de Webservices.
- Pruebas de carga de Webservices.
Antes de comenzar con el Tutorial de SoapUI en español
Lee también nuestro artículo de información básica de SoapUI y sus funcionalidades:
> Pruebas de Webservices con SoapUI
1.- Primero debes hacer click en el nodo Projects en el navegador y seleccionar Import Project.
Abrir el proyecto de ejemplo de SoapUI
Se mostrará el proyecto de ejemplo en el navegador de SoapUI.
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.
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:
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).
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).
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.
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.
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.
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.
También puedes seguirnos vía Twitter, Facebook o Linkedin:
No hay comentarios :
Publicar un comentario