Tutorial de prueba de servicios web con ejemplo

โšก Resumen inteligente

Las pruebas de servicios web validan la funcionalidad, confiabilidad, rendimiento y seguridad de una API que permite a las aplicaciones intercambiar datos, utilizando protocolos SOAP o REST, una descripciรณn WSDL y herramientas como SoapUI o personalizado Java cรณdigo.

  • ๐ŸŒ Servicio web: Un servicio web permite que dos aplicaciones intercambien datos a travรฉs de una red.
  • ๐Ÿงช Quรฉ comprueba: Las pruebas verifican la funcionalidad, la fiabilidad, el rendimiento y la seguridad.
  • ๐Ÿ“จ Jabรณn y descanso: SOAP utiliza sobres XML; REST utiliza HTTP simple y URLs.
  • ๐Ÿ“„ WSDL: Un WSDL es un archivo XML que describe las operaciones que ofrece un servicio SOAP.
  • ๐Ÿ› ๏ธ Herramientas y Code: Las pruebas utilizan herramientas como SoapUI o personalizado Java con Apache Axis2.
  • ๐Ÿค– Asistencia de IA: La IA genera casos de prueba de API y valida las respuestas automรกticamente.

Tutorial de pruebas de servicios web

ยฟ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.

Vamos a encontrar el precio de las acciones de Google (Sรญmbolo: GOOG)

Pruebas de servicios web

El XML de respuesta proporciona el precio de las acciones.

Pruebas de servicios web

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.

  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 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 Transferencia de Estado Representacional; 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 (Protocolo Simple de Acceso a Objetos) y, en lugar de usar XML para las solicitudes, REST utiliza un protocolo simple. URL En algunos casos. A diferencia de SOAP, las aplicaciones RESTful utilizan 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

  1. Probar manualmente
  2. Crea tu propia automatizaciรณn Code
  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รก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.

WSDL y determinaciรณn de operaciones y formatos XML

WSDL y determinaciรณn de operaciones y formatos XML

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

Existen numerosas herramientas de prueba de servicios web disponibles para probar servicios 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.

  1. El uso de Java
  2. El uso de SoapUI

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.

  1. Bรกsicamente crearemos un sencillo. Java programa 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 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.
  4. 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'

Pruebas de servicios web utilizando la API Apache Axis2 (Java)

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

Pruebas de servicios web utilizando la API Apache Axis2 (Java)

Paso d) Una vez que el comando se ejecute correctamente, verรก la carpeta con los archivos necesarios.

Pruebas de servicios web utilizando la API Apache Axis2 (Java)

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.

Pruebas de servicios web utilizando la API Apache Axis2 (Java)

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)

Pruebas de servicios web utilizando la API Apache Axis2 (Java)

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.

Pruebas de servicios web utilizando la API Apache Axis2 (Java)

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 SoapUI Servicio web

In SoapUI

  1. Vaya a Archivo > Nuevo proyecto Soap
  2. Ingrese el nombre del proyecto y la ubicaciรณn del URI de WSDL
  3. haga clic en Aceptar

Prueba usando SoapUI Servicio web

  1. Expande la primera solicitud y haz doble clic en "Request1". Se mostrarรก la solicitud SOAP en formato XML.
  2. Ingrese la moneda de origen y la moneda de destino
  3. Haga clic en el botรณn enviar
  4. La respuesta XML se mostrarรก en el panel lateral derecho.

Prueba usando SoapUI Servicio web

Como puede concluir, el uso de herramientas de prueba de servicios web como SoapUI acelera el proceso de automatizaciรณn de pruebas de servicios web. Por lo tanto, SoapUI serรก el tema central de nuestro aprendizaje en los siguientes tutoriales.

Preguntas Frecuentes

Un servicio web estรก definido por el W3C e intercambia datos mediante XML con un estรกndar WSDL, por ejemplo SOAP. Una API web es mรกs amplia: puede intercambiar XML, JSON o datos sin formato sin un estรกndar fijo, por ejemplo REST, y puede comprimir datos.

Las herramientas comunes para probar servicios web y API incluyen: SoapUI y ReadyAPI para SOAP y REST, Postman para REST, Apache JMeter para pruebas de carga y REST Assured para pruebas basadas en cรณdigo. Java pruebas. SoapUI Se utiliza ampliamente para servicios SOAP.

Las pruebas unitarias comprueban una รบnica funciรณn de forma aislada, normalmente por el desarrollador. Las pruebas de API comprueban el comportamiento de un servicio a travรฉs de su interfaz, incluyendo la solicitud, la respuesta, los cรณdigos de estado y los datos, en todos los componentes y, a menudo, sin el cรณdigo fuente.

La IA lee una especificaciรณn WSDL u OpenAPI para generar solicitudes y aserciones, crea datos de prueba realistas e identifica respuestas anรณmalas. La autorreparaciรณn mediante aprendizaje automรกtico garantiza que las pruebas se ejecuten correctamente incluso cuando cambian las cargas รบtiles, lo que reduce el mantenimiento manual de las pruebas de servicios web.

Sรญ. La IA puede analizar la definiciรณn de un servicio, generar cargas รบtiles de solicitud vรกlidas e invรกlidas, predecir condiciones lรญmite y proponer aserciones. Esta generaciรณn automatizada mejora la cobertura y reduce el esfuerzo manual de escribir casos de prueba SOAP o REST.

Resumir este post con: