Tutorial de prueba de servicios web: ¿Cómo probar? Aprenda con el ejemplo

Tabla de contenido:

Anonim

¿Qué es WebService?

Los servicios web son el mecanismo o medio de comunicación a través del cual dos aplicaciones / máquinas intercambiarán los datos independientemente de su arquitectura subyacente y la tecnología.

¿Qué son las pruebas de servicios web?

La prueba de servicios web es un tipo de prueba de software que valida los servicios web. El propósito de las pruebas de servicios web es verificar la funcionalidad, confiabilidad, rendimiento y seguridad de una API (interfaz de programa de aplicación). Las pruebas de servicios web son similares a las pruebas unitarias en algunos casos. Puede probar un servicio web manualmente o crear su propio código de automatización o utilizar una herramienta de automatización estándar como Postman.

¿Por qué se necesita WebService?

En general, las aplicaciones de software se desarrollan para ser consumidas por los seres humanos, donde una persona envía una solicitud a un servicio de software que a su vez devuelve una respuesta en formato legible por humanos.

En la era moderna de la tecnología, si desea crear una aplicación de software, no es necesario que lo haga todo desde cero. Hay muchos servicios listos para usar que puede conectar a su aplicación y puede comenzar a proporcionar esos servicios en su aplicación.

Por ejemplo, desea mostrar información del pronóstico del tiempo que no necesita recopilar, procesar y representar los datos en su aplicación. Puede comprar los servicios a personas que ya están bien establecidas en el procesamiento y publicación de este tipo de datos.

Los servicios web nos permiten realizar este tipo de implementaciones.

Como ejemplo, considere el siguiente WebService

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Da valor a las acciones de una empresa.

Busquemos el precio de las acciones de Google (Símbolo: GOOG)

El XML de respuesta da el precio de las acciones.

Este WebService puede ser llamado por una Aplicación de Software usando el protocolo SOAP o HTTP.

Protocolos de servicios web

Los servicios web se pueden implementar de diferentes maneras, pero los dos siguientes son los enfoques de implementación más populares.

  1. SOAP (Protocolo simple de acceso a objetos)
  2. REST (arquitectura de transferencia de estado representacional)

JABÓN

SOAP es un protocolo estándar definido por el estándar W3C para enviar y recibir solicitudes y respuestas de servicios web.

SOAP utiliza el formato XML para enviar y recibir la solicitud y, por lo tanto, los datos son datos independientes de la plataforma. Los mensajes SOAP se intercambian entre las aplicaciones del proveedor y la aplicación receptora dentro de los sobres SOAP.

Como SOAP usa el protocolo de transporte http simple, los firewalls no bloquean sus mensajes.

DESCANSO

REST significa Transferencia de Estado REpresentacional; es una arquitectura que generalmente se ejecuta a través de HTTP. El estilo REST enfatiza las interacciones entre clientes y servicios, que se mejoran al tener un número limitado de operaciones. REST es una alternativa a SOAP (Protocolo simple de acceso a objetos) y en lugar de usar XML para la solicitud, REST usa una URL simple en algunos casos. A diferencia de SOAP, las aplicaciones RESTFUL utilizan encabezados integrados HTTP para transportar metainformación.

Hay varios códigos que REST usa para determinar si el usuario tiene acceso a la API o no, como el código 200 o 201 indica una interacción exitosa con el cuerpo de la respuesta, mientras que 400 indica una solicitud incorrecta o el URI de la solicitud no coincide con las API en el sistema. Todos los parámetros de solicitud de API y los parámetros de método se pueden enviar mediante variables POST o GET .

Rest API admite el formato XML y JSON para las pruebas de API de servicios web. Por lo general, se prefiere para aplicaciones móviles y web, ya que hace que la aplicación funcione más rápido y sin problemas.

WSDL

WSDL (Web Services Description Language) es un lenguaje basado en XML que se utilizará para describir los servicios ofrecidos por un servicio web.

WSDL describe todas las operaciones que ofrece el servicio web en particular en formato XML. También define cómo se pueden llamar los servicios, es decir, qué valor de entrada tenemos que proporcionar y cuál será el formato de la respuesta que va a generar para cada tipo de servicio.

¿Cómo probar un servicio web?

Para probar el servicio web, puede

  1. Probar manualmente
  2. Cree su propio código de automatización
  3. Utilice una herramienta de automatización estándar como SoapUI.

Las pruebas de automatización de servicios web implican los siguientes pasos:

  1. Comprender el archivo WSDL
  2. Determinar las operaciones que proporciona un servicio web en particular.
  3. Determinar el formato de solicitud XML que debemos enviar.
  4. Determinar el formato XML de respuesta
  5. Usar una herramienta o escribir código para enviar una solicitud y validar la respuesta

Supongamos que queremos probar el servicio web que proporciona la función de conversión de moneda. Será la tasa de conversión actual entre la moneda de los diferentes países. Este servicio lo podemos utilizar en nuestras aplicaciones para convertir los valores de una moneda a otra.

Ahora veamos los pasos anteriores

Paso 1 a 4: comprensión de WSDL y determinación de operaciones y formatos XML

El archivo WSDL del convertidor de moneda se puede ver en @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) que proporcionará la información sobre los métodos del servicio web del convertidor de moneda que admitirá, el parámetro que necesitamos pasar y el tipo de parámetros

… Etc

Paso 5: usar una herramienta o escribir código para enviar la solicitud y validar la respuesta

Hay muchas herramientas de prueba de servicios web disponibles para probar el servicio web SOAP. SoapUI es una de las herramientas API más populares que nos ayudará a probar los servicios web SOAP. De hecho, puede utilizar cualquier lenguaje de programación que sea capaz de enviar la solicitud XML a la aplicación del proveedor de servicios web a través de http y pueda analizar y validar el XML de respuesta con el resultado esperado. En este tutorial de prueba de servicios web, probaremos el servicio web

  1. Usando Java
  2. Usando SoapUI

PARTE 1) Pruebas de servicios web utilizando Apache Axis2 API (Java).

Generalmente, el servicio web toma la solicitud y envía la respuesta en formato XML.

El proyecto de API Apache Axis2 es una API de implementación de Java, que se utilizará para crear los servicios web tanto para el lado del servidor (proveedor de servicios) como para el lado del cliente (consumidor de servicios).

Axis2 es capaz de enviar mensajes SOAP y recibe y procesa los mensajes SOAP. Podemos escribir un pequeño programa Java usando la API para crear el servicio web. Axis2 generará el WSDL desde el programa Java que se utilizará para comunicar los servicios ofrecidos por el servicio web. Podemos usar el mismo Axis2 para generar la clase Java (stub) a partir del archivo WSDL que podemos usar como programa cliente para generar la solicitud del servicio web, enviar la solicitud al punto final del servicio y procesar la respuesta.

  1. Básicamente crearemos un programa Java simple en el que crearemos una instancia de la clase stub.
  2. Usando el stub invocaremos el método de solicitud pasando toda la información requerida.
  3. El programa Stub convertirá esa solicitud en formato de solicitud XML y le enviará el punto final del servicio que leerá la solicitud y procesará la solicitud y enviará la respuesta en formato XML.
  4. La respuesta XML se convertirá en una clase Java mediante un código auxiliar y se devolverá al programa real.

Veamos los pasos anteriores en detalle

Paso a) Descargue la API de axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi y configure la variable de entorno 'AXIS2_HOME'

Paso b) Crea una carpeta para mantener todos los artefactos generados

Ejemplo: C: \ Axis \ Projects \ CurrencyConverter

Paso c) Abra el símbolo del sistema y navegue hasta la estructura de carpetas donde desea generar los artefactos y ejecute el siguiente comando que generará los stubs

% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s

Paso d) Una vez que el comando se haya ejecutado correctamente, verá la carpeta con los archivos necesarios.

Paso e) En el siguiente paso de este tutorial de pruebas de servicios web, tenemos que crear el programa cliente, a través del cual enviaremos la solicitud real utilizando los stubs generados. Abra el eclipse y cree el nuevo proyecto Java y seleccione la carpeta que hemos creado anteriormente.

Paso f) Agregue todos los frascos relacionados con axis2 a la ruta de construcción del proyecto, que estará allí en la carpeta lib de la carpeta del software axis2

(por ejemplo: C: \ Axis \ axis2-1.6.2 \ lib)

Paso g) Cree una nueva clase Java (por ejemplo: Client.Java) y cree una instancia del objeto stub. Usando el objeto stub podemos llamar a todos los métodos admitidos del WebService en particular.

Programa Client.Javapaquete org.apache.axis2.currencyconvertor;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;Cliente de clase pública {public static void main (Java.lang.String args []) {tratar {// Crea el objeto stub pasando la URL del punto final del servicioCurrencyConvertorStub stub = new CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate es la clase que tenemos que usar para mencionar la moneda desde y hasta// El objeto ConversionRate será el parámetro para la operación conversionRateConversionRate conversionRate = new ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Crea el objeto ConversionRateResponse, que se utilizará para capturar la respuesta// llamar al servicio conversionRate usando el objeto stubConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Podemos usar el objeto conversionRateResponse para recuperar la respuesta del servicio ConversionRateSystem.out.println ("Tasa de conversión de INR a USD: + conversionRateResponse.getConversionRateResult ());} captura (Excepción e) {e.printStackTrace ();}}}

PARTE 2) Cómo probar el uso del servicio web SoapUI

En SoapUI

  1. Vaya a Archivo> Nuevo proyecto de jabón
  2. Ingrese el nombre del proyecto y la ubicación del URI WSDL
  3. Haga clic en Aceptar
  1. Expanda la primera solicitud y haga doble clic en 'Solicitud1'. Mostrará la solicitud SOAP en formato XML.
  2. Ingrese la moneda Desde y Hasta la moneda
  3. Haga clic en el botón enviar
  4. El XML de respuesta se mostrará en el panel del lado derecho.

Como puede concluir, el uso de herramientas de prueba de servicios web como SoapUI agiliza su esfuerzo de prueba de automatización de servicios web. Por lo tanto, SoapUi será el foco de nuestro aprendizaje en los siguientes tutoriales.

Resumen

  • Las aplicaciones de software se comunican e intercambian datos entre sí mediante un servicio web
  • SOAP y REST son 2 protocolos populares para crear un WebService
  • SOAP admite el intercambio de datos basado en XML
  • REST admite XML, Json o intercambio de datos en URL simple para pruebas de API de servicios web.
  • WSDL es un lenguaje basado en XML que se utilizará para describir los servicios ofrecidos por un servicio web. SOAP se define mediante WSDL.
  • Para probar WebService puede
    • Crea tu propio código. Por ejemplo, use la API Axis2 para Java
    • Utilice herramientas de automatización de pruebas de servicios web como SoapUI
  • Las herramientas de automatización como SoapUI impulsarán sus esfuerzos de pruebas de automatización de servicios web y requerirán menos esfuerzo de codificación en comparación con la creación de su propio código utilizando la API de Axis2.

Preguntas más frecuentes

¿Cuál es la diferencia entre WebService y WebAPI?

Servicio web

API web

  • Definido por W3C, toda la comunicación y el intercambio de datos se basan en XML
  • La comunicación y el intercambio de datos de la API web pueden ser XML, JSON o datos sin formato
  • Tiene estándares definidos - WSDL
  • Sin estándar definido
  • No puede comprimir los datos, pero puede comprimir la solicitud HTML
  • Puedes comprimir los datos
  • Ejemplo: SOAP
  • Ejemplo: DESCANSO

Obtenga más información sobre las pruebas de API web

Este tutorial de pruebas de servicios web es posible gracias a las contribuciones del Sr. Narender Reddy Nukala