Tutorial de pruebas de API: ¿Qué es la automatización de pruebas de API?
¿Qué son las pruebas de API?
Prueba de API es un tipo de prueba de software que valida las interfaces de programación de aplicaciones (API). El propósito de las pruebas de API es verificar la funcionalidad, la confiabilidad, el rendimiento y la seguridad de las interfaces de programación. En las pruebas de API, en lugar de utilizar entradas y salidas de usuario estándar (teclado), se utiliza software para enviar llamadas a la API, obtener la salida y anotar la respuesta del sistema. Las pruebas de API son muy diferentes de las pruebas de GUI y no se concentran en la apariencia de una aplicación. Se concentran principalmente en la capa de lógica empresarial de la arquitectura del software.
Para el fondo, API (interfaz de programación de aplicaciones) Es una interfaz informática que permite la comunicación y el intercambio de datos entre dos sistemas de software separados. Un sistema de software que ejecuta una API incluye varias funciones/subrutinas que otro sistema de software puede realizar. API define las solicitudes que se pueden realizar, cómo realizar solicitudes, formatos de datos que se pueden utilizar, etc., entre dos sistemas de software.
Configuración del entorno de automatización de pruebas API
Automatización de API Las pruebas requieren una aplicación con la que se pueda interactuar a través de una API. Para probar una API, deberá
- Utilice la herramienta de prueba para impulsar la API
- Escribe tu propio código para probar la API
Algunos puntos a tener en cuenta
- Las pruebas de API son diferentes a otros tipos de pruebas de software, ya que la GUI no está disponible y, sin embargo, es necesario configurar un entorno inicial que invoque la API con un conjunto requerido de parámetros y luego, finalmente, examinar el resultado de la prueba.
- Por lo tanto, configurar un entorno de pruebas para pruebas de automatización de API parece un poco complejo.
- La base de datos y el servidor deben configurarse según los requisitos de la aplicación.
- Una vez finalizada la instalación, se debe llamar a la función API para verificar si esa API está funcionando.
Tipos de salida de una API
Una salida de API podría ser
- Cualquier tipo de dato
- Estado (digamos Pasar o Fallar)
- Llame a otra función API.
Veamos un ejemplo de cada uno de los tipos anteriores en este tutorial de prueba de API.
Cualquier tipo de datos
Ejemplo: Hay una función API que debe sumar dos números enteros.
Long add(int a, int b)
Los números deben proporcionarse como parámetros de entrada. El resultado debe ser una suma de dos números enteros. Este resultado debe verificarse con un resultado esperado.
Es necesario realizar llamadas como
add (1234, 5656)
Se deben manejar excepciones si el número excede el límite de enteros.
Estado (digamos Pasar o Fallar)
Considere la siguiente función API:
- Cerrar con llave()
- Desbloquear()
- Eliminar ()
Devuelven cualquier valor como Verdadero (en caso de éxito) o falso (en caso de error) como salida.
Una mas precisa Caso de prueba sería, puede llamar a las funciones en cualquiera de los scripts y luego verificar si hay cambios en la base de datos o en la GUI de la aplicación.
Llamada de otra API/Evento
En este caso, llamamos a una de las funciones API que a su vez llamará a otra función.
Por ejemplo, la primera función API se puede utilizar para eliminar un registro específico en la tabla y esta función, a su vez, llama a otra función para ACTUALIZAR la base de datos.
Casos de prueba para pruebas de API:
Los casos de prueba de pruebas API se basan en
- Valor de retorno basado en la condición de entrada: es relativamente fácil de probar, ya que la entrada se puede definir y los resultados se pueden autenticar
- No devuelve nada: Cuando no hay valor de retorno, se verificará el comportamiento de la API en el sistema.
- Activa alguna otra API/evento/interrupción: Si una salida de una API desencadena algún evento o interrupción, entonces se debe realizar un seguimiento de esos eventos y oyentes de interrupciones.
- Actualizar estructura de datos: La actualización de la estructura de datos tendrá algún resultado o efecto en el sistema, y eso debe autenticarse.
- Modificar ciertos recursos: Si la llamada API modifica algunos recursos, entonces debe validarse accediendo a los recursos respectivos.
Enfoque de prueba API
Enfoque de prueba API es una estrategia predefinida o un método que el equipo de control de calidad realizará para realizar las pruebas de API una vez que la compilación esté lista. Esta prueba no incluye el código fuente. El enfoque de prueba de API ayuda a comprender mejor las funcionalidades, las técnicas de prueba, los parámetros de entrada y la ejecución de los casos de prueba.
Los siguientes puntos ayudan al usuario a realizar un enfoque de prueba de API:
- Comprender la funcionalidad del programa API y definir claramente el alcance del programa.
- Aplicar técnicas de prueba como clases de equivalencia, análisis de valores límite y adivinación de errores y escribir casos de prueba para la API.
- Los parámetros de entrada para la API deben planificarse y definirse adecuadamente
- Ejecute los casos de prueba y compare los resultados esperados y reales.
Diferencia entre pruebas API y pruebas unitarias
Prueba unitaria | Pruebas de API |
---|---|
Los desarrolladores lo realizan | Los probadores lo realizan |
Se prueba la funcionalidad separada | Se prueba la funcionalidad de un extremo a otro |
Un desarrollador puede acceder al código fuente. | Los probadores no pueden acceder al código fuente |
Las pruebas de UI también están involucradas | Solo se prueban las funciones API |
Sólo se prueban las funcionalidades básicas. | Todos los problemas funcionales se prueban. |
Alcance limitado | Más amplio en alcance |
Normalmente se ejecuta antes del check-in. | Ejecución de prueba después de crear la compilación |
Cómo probar la API
Las pruebas de automatización de API deben cubrir al menos los siguientes métodos de prueba además del proceso SDLC habitual
- Pruebas de descubrimiento: El grupo de prueba debe ejecutar manualmente el conjunto de llamadas documentadas en la API, como verificar que un recurso específico expuesto por la API se pueda enumerar, crear y eliminar según corresponda.
- Pruebas de usabilidad: Esta prueba verifica si la API es funcional y fácil de usar. ¿Y la API también se integra bien con otra plataforma?
- Pruebas de seguridad: Esta prueba incluye qué tipo de autenticación se requiere y si los datos confidenciales están cifrados a través de HTTP o ambos.
- Pruebas automatizadas: Las pruebas de API deben culminar en la creación de un conjunto de scripts o una herramienta que pueda usarse para ejecutar la API con regularidad.
- Documentación: El equipo de prueba debe asegurarse de que la documentación sea adecuada y proporcione suficiente información para interactuar con la API. La documentación debe ser parte del entregable final.
Mejores prácticas de pruebas API:
- Los casos de prueba API deben agruparse por categoría de prueba
- Además de cada prueba, debe incluir las declaraciones de las API a las que se llama.
- La selección de parámetros debe mencionarse explícitamente en el propio caso de prueba.
- Priorice las llamadas a funciones API para que sea fácil de probar para los evaluadores
- Cada caso de prueba debe ser lo más autónomo e independiente de las dependencias posible.
- Evite el “encadenamiento de pruebas” en su desarrollo
- Se debe tener especial cuidado al manejar funciones de llamadas únicas como: Eliminar, CerrarVentana, etc.
- La secuenciación de llamadas debe realizarse y estar bien planificada.
- Para garantizar una cobertura de prueba completa, cree casos de prueba de API para todas las combinaciones de entrada posibles de la API.
Tipos de errores que detectan las pruebas de API
- No puede manejar las condiciones de error con gracia
- Banderas no utilizadas
- Funcionalidad faltante o duplicada
- Problemas de confiabilidad. Dificultad para conectarse y obtener una respuesta de API.
- Temas de seguridad
- Problemas de subprocesos múltiples
- Problemas de desempeño. El tiempo de respuesta de la API es muy alto.
- Errores inadecuados/advertencia a una persona que llama
- Manejo incorrecto de valores de argumentos válidos.
- Los datos de respuesta no están estructurados correctamente (JSON o XML)
Cómo realizar la automatización de pruebas API
1) API lista
API lista es una herramienta líder para pruebas funcionales, de seguridad y de carga de RESTful, SOAP, GraphQL y otros servicios web. En una plataforma intuitiva, obtendrá tres potentes herramientas: ReadyAPI Test, ReadyAPI Performance y ReadyAPI Virtualization. Con estas herramientas puede realizar pruebas funcionales, de seguridad y de rendimiento/carga. También puede simular API y servicios web con nuestra sólida herramienta de virtualización. Además, puede integrar fácilmente su Canalización de CI / CD durante cada construcción.
Características
- ReadyAPI se puede integrar en cualquier entorno.
- Tiene una función de afirmación inteligente que puede crear afirmaciones masivas contra cientos de puntos finales rápidamente.
- Soporte nativo para Git, Docker, Jenkins, Azure, etc.
- Admite línea de comandos para pruebas automatizadas.
- Admite la ejecución paralela de pruebas funcionales y colas de trabajos.
- Promoreutilización del código tes
- Elimina dependencias durante las pruebas y el desarrollo.
Prueba gratuita de 14 días (no se requiere tarjeta de crédito)
Los siguientes tutoriales proporcionan una guía detallada para automatizar las pruebas de API.
Además, existen otras herramientas para pruebas de API. Revisalos aquí
Desafíos de las pruebas de API
Los desafíos de las pruebas de API incluyen:
- Los principales desafíos en las pruebas de API web son Combinación de parámetros, selección de parámetros y secuenciación de llamadas
- No hay GUI disponible para probar la aplicación, lo que hace es difícil dar valores de entrada
- Validar y verificar la salida en un sistema diferente es un poco difícil para los evaluadores
- Los evaluadores deben conocer la selección y categorización de los parámetros.
- Función de manejo de excepciones necesita ser probado
- El conocimiento de codificación es necesario para los evaluadores.
Conclusión
API consta de un conjunto de clases/funciones/procedimientos que representan la capa de lógica empresarial. Si la API no se prueba correctamente, puede causar problemas no solo en la aplicación API sino también en la aplicación que realiza la llamada. Es una prueba indispensable en ingeniería de software.