- Lista de tutoriales sobre pruebas de API
- Visión general de los tutoriales de esta serie de pruebas de API
- Tutorial de pruebas de API
- Introducción de las pruebas de API en su organización
- Conclusión
Este Tutorial en Profundidad de Pruebas API Explica Todo Sobre Pruebas API, Servicios Web y Como Introducir Pruebas API En Su Organización:
Obtenga una visión profunda del API Testing junto con el concepto de shift-left testing y servicios web desde este tutorial introductorio.
Conceptos como Web API, cómo funciona la API (con ejemplos reales) y en qué se diferencia de los Servicios Web están bien explicados con ejemplos en este tutorial.
Lista de tutoriales sobre pruebas de API
Tutorial nº 1: Tutorial de pruebas de API: Guía completa para principiantes
Tutorial nº 2: Tutorial de Servicios Web: componentes, arquitectura, tipos y ejemplos
Tutorial nº 3: Top 35 ASP.Net y Web API Preguntas de la entrevista con respuestas
Tutorial nº 4: Tutorial de POSTMAN: Pruebas de API con POSTMAN
Tutorial nº 5: Pruebas de servicios web con el cliente HTTP Apache
Visión general de los tutoriales de esta serie de pruebas de API
Tutorial | Lo que aprenderá |
---|---|
Tutorial_#1: | Tutorial de pruebas de API: guía completa para principiantes Este tutorial de Pruebas de API en Profundidad le explicará todo acerca de Pruebas de API, y Servicios Web en detalle y también le educará en como Introducir Pruebas de API en su organización. |
Tutorial_#2: | Tutorial de Servicios Web: componentes, arquitectura, tipos y ejemplos Este tutorial de Servicios Web explica la Arquitectura, Tipos & Componentes de Servicios Web junto con Terminologías Importantes y las Diferencias entre SOAP vs REST. |
Tutorial_#3: | Top 35 ASP.Net y Web API Preguntas de la entrevista con respuestas Usted puede explorar la lista de los más populares con frecuencia ASP.Net y Web API Preguntas de la entrevista con respuestas & ejemplos para principiantes y profesionales con experiencia en este tutorial. |
Tutorial_#4: | Tutorial de POSTMAN: Pruebas de API con POSTMAN Este tutorial paso a paso explicará las Pruebas de API usando POSTMAN junto con los Conceptos Básicos de POSTMAN, sus Componentes y Ejemplos de Solicitud y Respuesta en términos simples para su fácil comprensión. |
Tutorial_#5: | Pruebas de servicios web con el cliente HTTP Apache Este tutorial de la API trata sobre cómo realizar varias operaciones CRUD en servicios web y probar servicios web utilizando el cliente HTTP de Apache. |
Tutorial de pruebas de API
Esta sección le ayudará a obtener una comprensión básica de los Servicios Web y Web API, que, a su vez, será útil en la comprensión de los conceptos principales en los próximos tutoriales en esta serie de Pruebas de API.
API (Interfaz de Programación de Aplicaciones) es un conjunto de todos los procedimientos y funciones que nos permiten crear una aplicación accediendo a los datos o características del sistema operativo o plataformas. Las pruebas de dichos procedimientos se conocen como Pruebas API.
Prueba de desplazamiento a la izquierda
Uno de los tipos importantes de pruebas que se pide hoy en día en las Entrevistas de Pruebas de API es la Prueba de Desplazamiento a la Izquierda. Este tipo de prueba se practica en casi todos los proyectos que siguen una Metodología Ágil.
Antes de que se introdujera el Shift Left Testing, las pruebas de software sólo se realizaban una vez finalizada la codificación y entregado el código a los probadores. Esta práctica provocaba prisas de última hora para cumplir los plazos y también obstaculizaba en gran medida la calidad del producto.
Aparte de eso, los esfuerzos realizados (cuando se notificaban defectos en la última fase antes de la producción) eran enormes, ya que los desarrolladores tenían que volver a pasar tanto por la fase de diseño como por la de codificación.
Ciclo de vida del desarrollo de software (SDLC) Antes del cambio a la izquierda Pruebas
El flujo tradicional del SDLC era: Requisitos -> Diseño -> Codificación -> Pruebas.
Desventajas de las pruebas tradicionales
- Las pruebas están en el extremo derecho. Se incurre en muchos costes cuando se identifica un fallo en el último minuto.
- El tiempo que se tarda en resolver el fallo y volver a probarlo antes de pasarlo a producción es enorme.
De ahí surgió la idea de desplazar la fase de prueba hacia la izquierda, lo que dio lugar al Testing por Desplazamiento a la Izquierda.
Lectura recomendada => Pruebas a la izquierda: un mantra secreto para el éxito del software
Fases de las pruebas de desplazamiento a la izquierda
Las pruebas de desplazamiento a la izquierda permitieron pasar con éxito de la detección de defectos a la prevención de defectos y ayudaron a que el software fallara con rapidez y solucionara todos los fallos lo antes posible.
API web
En términos generales, una API Web puede definirse como algo que toma la solicitud de un sistema cliente a un servidor web y devuelve la respuesta de un servidor web a una máquina cliente.
¿Cómo funciona una API?
Pongamos por caso la reserva de un vuelo en www.makemytrip.com, un servicio de viajes en línea que reúne información de varias aerolíneas. Al reservar un vuelo, se introducen datos como la fecha de ida y vuelta, la clase, etc., y se hace clic en Buscar.
En este caso, la aplicación interactúa con las API de varias aerolíneas y, de este modo, da acceso a los datos de éstas.
Otro ejemplo es www.trivago.com, que compara y enumera el precio, la disponibilidad, etc. de diferentes hoteles de una ciudad concreta. Este sitio web se comunica con las API de múltiples hoteles para acceder a la base de datos y enumera los precios y la disponibilidad desde su sitio web.
Así, una API web puede definirse como "una interfaz que facilita la comunicación entre una máquina cliente y el servidor web".
Servicios web
Los Servicios Web son (al igual que la API Web) los servicios que sirven de una máquina a otra. Pero la mayor diferencia que surge entre la API y los Servicios Web es que los Servicios Web utilizan una red.
Se puede afirmar que todos los servicios web son API web, pero no todas las API web son servicios web (como se explica en la última parte del artículo). Por lo tanto, los servicios web son un subconjunto de las API web. Consulte el diagrama siguiente para obtener más información sobre las API web y los servicios web.
API web frente a servicios web
Servicios web frente a API web
Tanto las API web como los servicios web se utilizan para facilitar la comunicación entre el cliente y el servidor. La principal diferencia radica únicamente en la forma en que se comunican.
Cada uno de ellos requiere un cuerpo de petición aceptable en un lenguaje específico, sus diferencias a la hora de proporcionar una conexión segura, su velocidad de comunicación con el servidor y de respuesta al cliente, etc.
A continuación se enumeran las diferencias entre Web Services y Web API para su referencia.
Servicio web
- Los servicios web suelen utilizar XML (Extensible Markup Language), lo que significa que son más seguros.
- Los Servicios Web son más seguros, ya que tanto los Servicios Web como las API proporcionan SSL (Secure Socket Layer) durante la transmisión de datos, pero también proporcionan WSS (Web Services Security).
- Web Service es un subconjunto de Web API. Por ejemplo, Los Servicios Web se basan únicamente en tres estilos de uso, a saber SOAP, REST y XML-RPC.
- Los servicios web siempre necesitan una red para funcionar.
- Los servicios web admiten "un código para distintas aplicaciones", lo que significa que se escribe un código más genérico para distintas aplicaciones.
API web
- Una API Web utiliza generalmente JSON (JavaScript Object Notation), lo que significa que la API Web es más rápida.
- La API web es más rápida, ya que JSON es ligero, a diferencia de XML.
- Las API web son el superconjunto de los servicios web. Por ejemplo, Los tres estilos de Servicios Web están presentes en la API Web también, pero aparte de eso, utiliza otros estilos como JSON - RPC.
- Web API no requiere necesariamente una red para funcionar.
- La API web puede o no ser compatible con la interoperabilidad en función de la naturaleza del sistema o la aplicación.
Introducción de las pruebas de API en su organización
En nuestro día a día, todos estamos tan acostumbrados a interactuar con las Apps con APIs y sin embargo ni siquiera pensamos en los procesos back-end que dirigen la funcionalidad subyacente.
Por ejemplo, Supongamos que estás navegando por los productos de Amazon.com y ves un producto u oferta que te gusta mucho y quieres compartirlo con tu red de Facebook.
En el momento en que haces clic en el icono de Facebook de la sección de compartir de la página e introduces las credenciales de tu cuenta de Facebook para compartir, estás interactuando con una API que conecta a la perfección el sitio web de Amazon con Facebook.
Pruebas de API
Antes de hablar más sobre las pruebas de API, vamos a discutir las razones por las que las aplicaciones basadas en API han ganado popularidad en los últimos tiempos.
Hay varias razones por las que las organizaciones se están pasando a los productos y aplicaciones basados en API, y algunas de ellas se enumeran a continuación para su referencia.
#1) Las aplicaciones basadas en API son más escalables que las aplicaciones/software tradicionales. El ritmo de desarrollo del código es más rápido y la misma API puede dar servicio a más solicitudes sin necesidad de grandes cambios de código o infraestructura.
#2) Los equipos de desarrollo no necesitan empezar a codificar desde cero cada vez que empiezan a trabajar en el desarrollo de una función o aplicación. Las API suelen reutilizar funciones, bibliotecas, procedimientos almacenados, etc. ya existentes y repetibles, por lo que este proceso puede hacerlos más productivos en general.
Por ejemplo, Si usted es un desarrollador trabajando en un sitio web de comercio electrónico y desea añadir Amazon como un procesador de pagos - entonces usted no tiene que escribir el código desde cero.
Todo lo que tiene que hacer es configurar la integración entre su sitio web y la API de Amazon mediante claves de integración y llamar a la API de Amazon para procesar los pagos durante el proceso de pago.
#3) Las API facilitan la integración con otros sistemas, tanto de las aplicaciones autónomas compatibles como de los productos de software basados en API.
Por ejemplo Supongamos que desea realizar un envío de Toronto a Nueva York. Conéctese a Internet, navegue hasta un conocido sitio web de transporte o logística e introduzca la información necesaria.
Después de proporcionar la información obligatoria, al hacer clic en el botón Obtener tarifas, en el back-end, este sitio web de logística puede estar conectándose con varias API y aplicaciones de transportistas y proveedores de servicios para obtener las tarifas dinámicas para la combinación de ubicaciones de origen a destino.
Gama completa de pruebas API
Las pruebas de las API no se limitan a enviar una solicitud a la API y analizar únicamente la respuesta para comprobar si es correcta. Es necesario comprobar el rendimiento de las API bajo distintas cargas para detectar vulnerabilidades.
Discutámoslo en detalle.
(i) Pruebas funcionales
Las pruebas funcionales pueden ser una tarea difícil debido a la falta de una interfaz gráfica de usuario.
Vamos a ver cómo el enfoque de pruebas funcionales para las API es diferente de la aplicación basada en GUI y también vamos a discutir algunos ejemplos en torno a ella.
a) La diferencia más obvia es que no hay interfaz gráfica de usuario con la que interactuar. A los evaluadores que suelen realizar pruebas funcionales basadas en interfaz gráfica de usuario les resulta un poco más difícil la transición a las pruebas de aplicaciones sin interfaz gráfica de usuario en comparación con alguien que ya está familiarizado con ella.
Inicialmente, incluso antes de empezar a probar la API, tendrá que probar y verificar el propio proceso de autenticación. El método de autenticación variará de una API a otra e implicará algún tipo de clave o token para la autenticación.
Si no puede conectarse a la API correctamente, no podrá continuar con las pruebas. Este proceso puede considerarse comparable a la autenticación de usuarios en las aplicaciones estándar, en las que se necesitan credenciales válidas para iniciar sesión y utilizar la aplicación.
b) Probar las validaciones de campo o la validación de los datos de entrada es muy importante durante las pruebas de las API. Si se dispusiera de una interfaz real basada en formularios (GUI), las validaciones de campo podrían implementarse en el front-end o en el back-end, garantizando así que un usuario no pueda introducir valores de campo no válidos.
Por ejemplo, Si una aplicación necesita que el formato de fecha sea DD/MM/AAAA, podemos aplicar esta validación en el formulario de recogida de información para asegurarnos de que la aplicación está recibiendo y procesando una fecha válida.
Tenemos que asegurarnos de que la API está bien escrita y es capaz de aplicar todas estas validaciones, distinguir entre datos válidos e inválidos y devolver el código de estado y el mensaje de error de validación al usuario final a través de una respuesta.
c) Comprobar que las respuestas de la API son válidas y no válidas es crucial. Si se recibe un código de estado 200 (es decir, todo correcto) como respuesta de la API de prueba, pero el texto de la respuesta indica que se ha producido un error, se trata de un defecto.
Además, si el propio mensaje de error es incorrecto, puede resultar muy engañoso para el cliente final que intenta integrarse con esta API.
En la captura de pantalla siguiente, el usuario ha introducido un peso no válido, que supera los 2267 Kgs aceptables. La API responde con el código de estado de error y el mensaje de error. Sin embargo, el mensaje de error menciona incorrectamente las unidades de peso como lbs en lugar de KG. Se trata de un defecto que puede confundir al cliente final.
(ii) Pruebas de carga y rendimiento
Las API están pensadas para ser escalables por diseño.
Esto, a su vez, hace que las pruebas de carga y rendimiento sean esenciales, especialmente si se espera que el sistema que se está diseñando atienda miles de solicitudes por minuto u hora, dependiendo de los requisitos. Realizar pruebas de carga y rendimiento de forma rutinaria en la API puede ayudar a evaluar el rendimiento, las cargas máximas y el punto de ruptura.
Estos datos son útiles a la hora de planificar la ampliación de una aplicación. Disponer de esta información ayudará a respaldar las decisiones y la planificación, especialmente si la organización tiene previsto añadir más clientes, lo que supondría un aumento de las solicitudes entrantes.
Cómo introducir las pruebas de API en su organización
El proceso de introducción de las pruebas de API en cualquier organización es similar al proceso utilizado para implantar o desplegar cualquier otra herramienta y marco de pruebas.
En el siguiente cuadro se resumen las principales etapas junto con el resultado previsto de cada una de ellas.
Fase | Paso | Resultados esperados |
---|---|---|
Selección de herramientas | Recopilación de requisitos e identificación de limitaciones | Comprender los requisitos para buscar en el mercado una herramienta de prueba de API adecuada. Por ejemplo ¿Qué tipo de API se está probando: SOAP o REST? ¿Tenemos que contratar a un evaluador para esta función o formar a un evaluador existente? Qué tipo de pruebas se realizarán: funcionales, de rendimiento, etc. ¿Cuál es el presupuesto de ejecución? |
Evaluar las herramientas disponibles | Compara las herramientas disponibles y preselecciona una o dos que cumplan mejor los requisitos. | |
Prueba de concepto | Realice un subconjunto de pruebas con la herramienta preseleccionada. Presentar las conclusiones a las partes interesadas. Finalizar la herramienta que se aplicará. | |
Aplicación | Para empezar | Dependiendo de la herramienta que elija, tendrá que instalarla en un PC, una máquina virtual o un servidor. Si la herramienta elegida es de suscripción, cree las cuentas de equipo necesarias. Formar al equipo si es necesario. |
En marcha | Crear pruebas Ejecutar pruebas Informar de defectos |
Desafíos comunes y formas de mitigarlos
Analicemos algunos de los retos habituales a los que se enfrentan los equipos de control de calidad al intentar implantar un marco de pruebas de API en una organización.
#nº 1) Elegir la herramienta adecuada
Seleccionar la herramienta correcta para el trabajo es el reto más común. Hay varias herramientas de prueba API disponibles en el mercado.
Puede parecer muy atractivo utilizar la herramienta más moderna y cara del mercado, pero si no da los resultados deseados, no sirve de nada.
Por lo tanto, elija siempre la herramienta que cumpla los requisitos "imprescindibles" en función de sus necesidades organizativas.
He aquí un ejemplo de matriz de evaluación de las herramientas API disponibles
Herramienta | Precios | Notas |
---|---|---|
Interfaz de usuario de jabón | Versión gratuita disponible para SoapUI Open Source (Pruebas funcionales) | * REST, SOAP y otros protocolos populares de API e IoT. * Incluido en la versión gratuita Pruebas ad hoc SOAP y REST Afirmación de mensaje Arrastrar y soltar Creación de pruebas Registros de pruebas Configuración de prueba Prueba a partir de grabaciones Unidad de Información. * La lista completa de características puede consultarse en su sitio web. |
Cartero | Aplicación Postman gratuita | * Más utilizado para REST. * Las características pueden consultarse en su sitio web. |
Parasoft | Es una herramienta de pago, requiere la compra de una licencia y luego requiere la instalación antes de que la herramienta se puede utilizar. | * Pruebas integrales de API: pruebas funcionales, de carga, de seguridad, gestión de datos de prueba. |
vREST | En función del número de usuarios | * Pruebas automatizadas de API REST. * Graba y reproduce. * Elimina la dependencia de frontend y backend utilizando APIs simuladas. * Potente validación de respuestas. * Funciona para aplicaciones de prueba desplegadas en localhost/intranet/internet. * Integración de JIRA, Integración de Jenkins Importaciones de Swagger, Postman. |
HttpMaster | Edición exprés: descarga gratuita Versión profesional: en función del número de usuarios | * Ayuda en las pruebas del sitio web y de la API. * Otras características incluyen la posibilidad de definir parámetros globales, proporciona al usuario la posibilidad de crear comprobaciones para la validación de respuestas de datos utilizando el amplio conjunto de tipos de validación que soporta. |
Runscope | Según el número de usuarios y los tipos de planes | * Para supervisar y probar las API. * Puede utilizarse para la validación de datos con el fin de garantizar que se devuelven los datos correctos. * Contiene una función de seguimiento y notificación en caso de fallo de la transacción de la API (si su aplicación requiere validación de pagos, esta herramienta puede ser una buena elección). |
LoadFocus | Según el número de usuarios y los tipos de planes | * Puede utilizarse para pruebas de carga de API - permite ejecutar unas pocas pruebas para averiguar el número de usuarios que puede soportar una API. * Fácil de usar: permite ejecutar pruebas en el navegador. |
PingAPI | Gratis para 1 proyecto (1.000 solicitudes) | * Beneficioso para las pruebas y la supervisión automatizadas de API. |
#nº 2) Ausencia de especificaciones de las pruebas
Como probadores, necesitamos conocer los resultados esperados para probar eficazmente una aplicación, lo que a menudo supone un reto, ya que para conocer los resultados esperados necesitamos tener unos requisitos claros y precisos, lo que no es el caso.
Por ejemplo Tenga en cuenta los requisitos que se indican a continuación:
"La aplicación sólo debe aceptar una fecha de envío válida y todos los requisitos no válidos deben ser rechazados"
A estos requisitos les faltan detalles clave y son muy ambiguos: ¿cómo definimos una fecha válida? ¿Qué pasa con el formato? ¿Devolvemos algún mensaje de rechazo al usuario final, etc.?
Ejemplo de requisitos claros:
1) La aplicación sólo debe aceptar una fecha de envío válida.
La fecha de envío se considera válida si
- No en el pasado
- Mayor o igual que la fecha de hoy
- Formato aceptable: DD/MM/AAAA
2)
Código de estado de la respuesta = 200
Mensaje: OK
3) La fecha de envío que no cumpla los criterios anteriores debe considerarse no válida. Si un cliente envía una fecha de envío no válida, debe responder con el(los) siguiente(s) mensaje(s) de error:
3.1
Respuesta Código de estado NO 200
Error: La fecha de envío proporcionada no es válida; por favor, asegúrese de que la fecha está en formato DD/MM/AAAA
3.2
Respuesta Código de estado NO 200
Error: La fecha de envío proporcionada ya ha pasado
#3) Curva de aprendizaje
Como ya se ha mencionado, el enfoque de las pruebas de API es diferente al de las pruebas de aplicaciones basadas en GUI.
Si contrata especialistas internos o consultores para las pruebas de API, la curva de aprendizaje del enfoque de prueba de API o de la herramienta de prueba de API puede ser mínima. Cualquier curva de aprendizaje, en este caso, estaría asociada a la adquisición de conocimientos sobre el producto o la aplicación.
Si se asigna a un miembro del equipo el aprendizaje de las pruebas de API, dependiendo de la herramienta elegida, la curva de aprendizaje puede ser de media a alta, junto con el cambio del enfoque de las pruebas. La curva de aprendizaje para el producto o la aplicación en sí puede ser de baja a media, dependiendo de si este probador ha probado esa aplicación antes o no.
#4) Conjunto de competencias existentes
Esto enlaza directamente con el punto anterior sobre la curva de aprendizaje.
Si un evaluador pasa de realizar pruebas basadas en GUI, tendrá que cambiar el enfoque de las pruebas y aprender la nueva herramienta o marco de trabajo según sea necesario. Por ejemplo Si la API acepta las peticiones en formato JSON, entonces el probador tendría que aprender qué es JSON, para empezar a crear las pruebas.
Estudio de caso
Tarea
Con el fin de ampliar una aplicación existente, una empresa quería ofrecer un producto en API, así como una aplicación GUI estándar. Se pidió al equipo de QA que proporcionara un Plan de Cobertura de Pruebas para asegurarse de que están preparados para acomodar las pruebas de API más allá de las pruebas regulares basadas en GUI.
Desafíos
- Ninguno de los otros productos de software tenía una arquitectura basada en API, por lo que para realizar pruebas en torno a esta tarea, el equipo tuvo que establecer el proceso de pruebas de API desde cero. Esto significa que había que evaluar, preseleccionar y finalizar las herramientas, y formar al equipo para las pruebas.
- No había presupuesto adicional asignado para adquirir e implantar la herramienta, lo que significa que el equipo tuvo que elegir una herramienta de pruebas de API gratuita o de código abierto y hubo que formar a alguien del equipo existente para que se encargara de esta tarea.
- No había requisitos para los campos de la API ni para la validación de datos. Los requisitos eran "debe funcionar igual que la aplicación GUI correspondiente".
El enfoque seguido por el equipo para mitigar los riesgos y superar los retos
- El equipo de control de calidad trabajó con el equipo del proyecto para identificar los siguientes requisitos:
- Tipo de API (REST/SOAP ): REST
- Pruebas necesarias (funcionales, de carga, de seguridad): Sólo pruebas funcionales
- Pruebas automatizadas necesarias (Sí/No): Opcional por ahora
- Informes de las pruebas (Sí/No): Requerido
- El equipo de control de calidad evaluó las herramientas de comprobación de API disponibles en función de los requisitos imprescindibles y eligió Postman API Tool por ser gratuita y fácil de usar, lo que minimizaba la curva de aprendizaje, ofrecía la posibilidad de automatizar las pruebas e incluía buenos informes.
- El mismo probador que probó la aplicación recibió formación para utilizar Postman para crear las pruebas iniciales, eliminando así cualquier laguna de conocimientos sobre el producto.
- Para hacer frente a la falta de requisitos, el equipo del proyecto elaboró la documentación de campo de alto nivel utilizando Swagger, lo que, sin embargo, dejó algunas lagunas en cuanto a los formatos de datos aceptables, lo que se trató con el equipo del proyecto y se acordaron y documentaron los formatos esperados.
Conclusión
Las aplicaciones basadas en API han ganado popularidad en los últimos tiempos. Estas aplicaciones son más escalables en comparación con las aplicaciones/software tradicionales y permiten una integración más sencilla con otras API o aplicaciones.
Este tutorial de Pruebas API explica todo acerca de Pruebas API, Pruebas Shift Left, Servicios Web, y Web API en detalle. También exploramos las diferencias entre Servicios Web vs Web API con ejemplos.
En la segunda parte del tutorial, discutimos el espectro completo de Pruebas de API, cómo introducir Pruebas de API en su organización y algunos desafíos comunes en este proceso junto con soluciones para ellos.
¡¡¡Echa un vistazo a nuestro próximo tutorial para saber más acerca de los Servicios Web junto con ejemplos!!!
SIGUIENTE Tutorial