HEADER_lecciones_de_software

Desarrolla tu prueba automatizada de servicios web SOAP en SOAPUI

por Julián David Rodriguez, el 19 de agosto de 2019

desarrolla-tu-prueba-automatizada

Antes de iniciar, debemos tener claro que SOAPUI es una herramienta que permite desarrollar pruebas automatizadas a aplicaciones con arquitectura orientada a servicios SOA. Por su lado,  SOAP (Simple Object Access Protocol) es el protocolo estándar que permite la comunicación de dos objetos intercambiando datos XML. 

El uso de SOAP se orienta a servicio web y se puede entender como una petición por parte del usuario y una respuesta por parte del servidor. Este servicio se describe mediante un WSDL.

¿Que es WSDL?

WSDL (Web Service Description Language). Es una notación XML encargada de describir servicios web. Indica al cliente cómo solicitar un servicio y enseña la interfaz proporcionada por el servidor.

¿Qué es XML?

XML (Extensible Markup Language). Sistema que permite la organización y etiquetado de documentos a lenguajes, de acuerdo a sus necesidades.

¿Qué es servicio web?

Es un sistema de software que sirve para intercambiar datos entre aplicaciones desarrolladas en distintos lenguajes de programación y ejecutadas en diferentes plataformas.

Ahora sí, iniciemos esta nueva experiencia en SOAPUI.

Para esto debemos contar con la herramienta SOAPUI. En caso de no tenerla, ingresa al link y descárgala.

experiencia_soapui_01

Después de descargada e instalada, abrimos la herramienta SOAPUI.

experiencia_soapui_02

Nos dirigimos a File (esquina izquierda superior) y seleccionamos New SOAP Project.

experiencia_soapui_03

En el siguiente recuadro anexamos el documento de descripción WSDL del web service al cual se desea realizar la prueba. 

experiencia_soapui_04

En este caso, tomaremos un web service gratuito.
Vamos a Google y digitamos “Country WSDL”. Seleccionamos la pagina que dice
Returns a list of continents by name...

experiencia_soapui_05

Nos abrirá la siguiente página.
Tomaremos el WSDL y lo pegaremos en el recuadro de solicitud de WSDL de SOAPUI anteriormente visto.
Oprimimos OK.

experiencia_soapui_06

experiencia_soapui_07

Se creará una carpeta con el siguiente nombre “CountryInfoService”, la cual contendrá una lista de servicios.

experiencia_soapui_08

Ahora generamos el TestSuite. Para esto vamos a la carpeta “CountryInfoService”, damos clic derecho a “CountryInfoServiceSoapBinding” y por ultimo oprimimos “Generate TestSuite”.

experiencia_soapui_09

Saldrá un recuadro con las distintas funciones que se puede generar en el TestSuite. En este caso, seleccionamos One TestCase for each Operation, esto quiere decir que se creará un TestCase para cada uno de los servicios. También seleccionamos Create new empty request, indica que el campo de requisito estará vacío para cada uno de los servicios. Por último, nos da las opciones de escoger los servicios a los cuales deseamos realizarle pruebas. Oprimimos OK.

experiencia_soapui_10

Indicamos el nombre que va a llevar nuestro TestSuite.

experiencia_soapui_11

Se generará la carpeta TestSuite, el cual contendrá todos los TestCase. 

experiencia_soapui_12

Trabajaremos con el TestCase del servicio CapitalCity. Así, seleccionamos CapitalCity TestCase - Test Step (1) y oprimimos CapitalCity. Posteriormente mostrará el recuadro de petición. Se puede observar el campo de petición e indica lo que el servicio solicita como petición, en este caso solicita código del país, para esto verificaremos los códigos existentes yendo al servicio ListOfCountryNamesByCode y compilamos. Tomamos uno de los códigos y lo introducimos en el campo de petición del TestStep.

experiencia_soapui_13
experiencia_soapui_14

Tomaremos el código perteneciente a Colombia - CO. 

Podemos diligenciar el campo de petición manualmente o por medio de transferencia de propiedad. En este caso lo desarrollaremos por transferencia y para este debemos crear una propiedad o variable como lo deseen llamar. Entonces damos clic derecho a TestStep(1) de CapitalCity, seleccionamos Add Step y escogemos la opción Properties. 

experiencia_soapui_15

Aparece un recuadro que nos indica el nombre que le vamos a dar al documento properties. Personalmente le daré el nombre de Propiedad CapitalCity. Se creará el documento Propiedad CapitalCity.

experiencia_soapui_16


experiencia_soapui_17


Damos clic en Propiedad CapitalCity, mostrará un recuadro en donde creamos la propiedad llamada RequestCodeOfCountry  y el valor contenido es CO. Entonces oprimimos el signo mas(+) de color verde, que se encuentra en la parte superior izquierda del recuadro Propiedad CapitalCity. Introducimos el nombre de la variable y el valor. Por último cerramos el recuadro. La variable se crea exitosamente.

experiencia_soapui_18

Ahora vamos a crear el documento Property Transfer, el cual permite transferir las propiedades creadas a los TestCase deseados. Realizamos el mismo procedimiento de crear properties: clic derecho en Propiedad CapitalCity, seleccionamos Add Step y escogemos opción Property Transfer. Introducimos el nombre del documento y damos aceptar. Saldrá el recuadro Property transfer, oprimimos el signo mas(+) de color verde que se encuentra en la esquina superior izquierda del recuadro. Introducimos el nombre de la transferencia.

experiencia_soapui_19

experiencia_soapui_20

Pasamos a indicarle a property transfer quién va a ser el remitente y quién el destinatario de las variables a enviar. En la parte de arriba del recuadro están los datos del remitente, seleccionamos en source la opción remitente, que vendría siendo Propiedad CapitalCity, ya que en ese documento se encuentra la propiedad que hemos creado. Al lado derecho de source se encuentra la opción Property, ahí seleccionamos la propiedad que deseamos enviar, en este caso RequestCodeOfCountry. En la parte de abajo del recuadro seleccionamos los datos del destinatario, en Target escogemos el documento que recibe la variable, en este caso es CapitalCity. En Property seleccionamos la función que va a cumplir la variable, en este caso Request

experiencia_soapui_21

Ahora debemos copiar la ruta del servicio, para esto nos dirigimos a Capital TestCase - Test Step - CapitalCity. En el campo de petición, en la parte superior derecha se encuentra la URL de xmlns:web =”http://www.oorsprong.org/websamples.countryinfo”, Simplemente copiamos la dirección http que se encuentra dentro de las comillas.

experiencia_soapui_22

Vamos nuevamente a Property Transfer, escribimos lo siguiente: declare namespace web = ; (Dentro de comillas simples pegamos la URL que copiamos de CapitalCity). Abajo digitamos lo siguiente //web:sCountryISOCode, esto nos indica en qué parte del campo de petición se va a ubicar la variable. Por último deshabilitamos la opción Fail transfer on error, habilitamos la opción Transfer to all y compilamos el recuadro de Property Transfer. Si después de esto, el documento Property Transfer se pone en rojo es porque se tiene algún error, sino todo está OK.

experiencia_soapui_23

Podemos ver que en el campo de petición de CapitalCity ya se encuentra el valor de la variable.

experiencia_soapui_24

Vamos ahora a crear la Assertions, es indicarle al software que bajo esa petición se espera un resultado. Entonces en el recuadro de CapitalCity en Test Step, en la parte inferior izquierda podemos observar los assertions.

experiencia_soapui_25

Damos clic, nos saldrá el recuadro de assertions. En la parte superior izquierda del recuadro de assertions, pulsamos el signo mas(+) de color verde - Recently Used - Contains - Add. Por último, en el recuadro digitamos el valor esperado, en este caso Bogota y habilitamos ignore case in comparison.

experiencia_soapui_26

Vemos que se ha creado la assertions, pero se encuentra en estado FAILED debido a que no se ha compilado la prueba para verificar si el dato de respuesta del servicio es el dato que esperamos.

experiencia_soapui_27

Por Último compilamos en el Test Step - CapitalCity y verificamos que la assertions cambie su estado a VALID.

experiencia_soapui_28

Esto ha sido todo. Así desarrollamos una prueba a un servicio web de forma básica.

Nuevo llamado a la acción

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal