Tutorial de prueba de servicios web: ¿Cómo realizar la prueba? Aprende con el ejemplo
¿Qué es el servicio web?
Los servicios web son el mecanismo o medio de comunicación a través del cual dos aplicaciones/máquinas intercambiarán datos independientemente de su arquitectura subyacente y la tecnología.
¿Qué son las pruebas de servicios web?
Pruebas 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 disponible como Postman.
¿Por qué se necesita el servicio web?
En general, las aplicaciones de software se desarrollan para ser consumidas por seres humanos, donde una persona envía una solicitud a un servicio de software que a su vez devuelve una respuesta en formato legible para humanos.
En la era moderna de la tecnología, si desea crear una aplicación de software, no necesita hacerlo todo desde cero. Hay muchos servicios listos para usar disponibles que puede conectar a su aplicación y comenzar a brindar esos servicios en su aplicación.
Por ejemplo, si desea mostrar información del pronóstico del tiempo, no necesita recopilar, procesar y representar los datos en su aplicación. Puede comprar los servicios de 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 servicio web
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Da valor a las acciones de una empresa.
Encontremos el precio de las acciones de Google (Símbolo: GOOG)
El XML de respuesta proporciona el precio de las acciones.
Este servicio web puede ser llamado por una aplicación de software utilizando 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.
- SOAP (Protocolo simple de acceso a objetos)
- 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 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 utiliza el protocolo de transporte http simple, los firewalls no bloquean sus mensajes.
REST
REST significa REpresentational State Transfer; es una arquitectura que generalmente se ejecuta sobre 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 (Simple Object Access Protocol) y en lugar de usar XML para las solicitudes, REST usa URL simples en algunos casos. A diferencia de SOAP, las aplicaciones RESTFUL usan encabezados HTTP integrados 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 a través de PUBLICAR or variables.
Rest API admite formatos XML y JSON para pruebas de API de servicios web. Generalmente se prefiere para Móvil y aplicaciones web, ya que hace que la aplicación funcione más rápido y sin problemas
WSDL
WSDL (servicios web 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 debemos proporcionar y cuál será el formato de la respuesta que generará para cada tipo de servicio.
¿Cómo probar un Servicio Web?
Para probar el servicio web, puede
- Probar manualmente
- Crea tu propio código de automatización
- Utilice una herramienta de automatización lista para usar como SoapUI.
Las pruebas de automatización de servicios web implican los siguientes pasos:
- Comprender el archivo WSDL
- Determinar las operaciones que proporciona un servicio web en particular
- Determinar el formato de solicitud XML que debemos enviar.
- Determinar el formato XML de respuesta
- 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án los tipos de conversión actuales entre las monedas de los diferentes países. Este servicio lo podemos utilizar en nuestras aplicaciones para convertir los valores de una moneda a otra moneda.
Ahora veamos los pasos anteriores.
Paso 1 a 4: Comprender WSDL y determinar operaciones y formatos XML
Moneda Convertor El archivo WSDL se puede ver @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
) que dará la información sobre la moneda Convertor métodos de servicio web 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 uno de los populares herramienta API lo 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 que pueda analizar y validar la respuesta XML con el resultado esperado. En este tutorial de prueba de servicios web, probaremos el servicio web.
- Usando Java
- Usando Jabón UI
PARTE 1) Pruebas de servicios web utilizando la API Apache Axis2 (Java).
Generalmente el servicio web toma la solicitud y envía la respuesta en formato XML.
El proyecto API Apache Axis2 es un Java API de implementación, 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 Java programa que utiliza la API para crear el servicio web. Axis2 generará el WSDL desde Java Programa que será utilizado para comunicar los servicios que ofrece el servicio web. Podemos usar el mismo Axis2 para generar el Java clase (stub) del archivo WSDL que podemos usar como programa cliente para generar la solicitud de servicio web, enviar la solicitud al punto final del servicio y procesar la respuesta.
- Básicamente crearemos un sencillo. Java programa en el que crearemos una instancia de la clase stub.
- Usando el stub invocaremos el método de solicitud pasando toda la información requerida.
- El programa Stub convertirá esa solicitud al formato de solicitud XML y le enviará el punto final del servicio que leerá la solicitud, la procesará y enviará la respuesta en formato XML.
- La respuesta XML se convertirá en Java clase por stub y regresa 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 & Establecer la variable de entorno 'AXIS2_HOME'
Paso b) Cree una carpeta para guardar todos los artefactos generados.
Ej: 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 ejecute correctamente, verá la carpeta con los archivos necesarios.
Paso e) En el siguiente paso de este tutorial de prueba de servicios web, tenemos que crear el programa cliente, a través del cual enviaremos la solicitud real utilizando los stubs generados. Abra Eclipse y cree el nuevo Java proyecto y seleccione la carpeta que hemos creado arriba.
Paso f) Agregue todos los archivos jar relacionados con axis2 a la ruta de compilación del proyecto, que estará en la carpeta lib de la carpeta del software axis2.
(por ejemplo: C:\Axis\axis2-1.6.2\lib)
Paso g) Crear un nuevo Java clase (por ejemplo: Client.Java) y crear una instancia del objeto stub. Usando el objeto stub podemos llamar a todos los métodos admitidos del servicio web en particular.
Client.Java Program package 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; public class Client { public static void main(Java.lang.String args[]) { try { //Create the stub object by passing the service end point url CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx"); //ConversionRate is the class which we have to use mention the from and to currency //ConversionRate object will be the parameter for the conversionRate operation ConversionRate conversionRate = new ConversionRate(); conversionRate.setFromCurrency(Currency.USD); conversionRate.setToCurrency(Currency.INR); //Create the ConversionRateResponse object, which is going to be used to catch the response //call the conversionRate service using the stub object ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate); //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult()); } catch (Exception e) { e.printStackTrace(); } } }
PARTE 2) Cómo realizar pruebas utilizando el servicio web SoapUI
En Jabón UI
- Vaya a Archivo > Nuevo proyecto Soap
- Ingrese el nombre del proyecto y la ubicación del URI de WSDL
- haga clic en Aceptar
- Expande la primera solicitud y haz doble clic en "Request1". Se mostrará la solicitud SOAP en formato XML.
- Ingrese la moneda de origen y la moneda de destino
- Haga clic en el botón enviar
- La respuesta XML se mostrará en el panel lateral derecho.
Como puede concluir, el uso de herramientas de prueba de servicios web como SoapUI acelera 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 puedes
- Crea tu propio código. Por ejemplo, utilice 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 prueba 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 Frecuentes
Más información sobre Pruebas de API web
Este tutorial de prueba de servicios web es posible gracias a las contribuciones del Sr. Narender Reddy Nukala.