Pruebas de API


Las pruebas de API son un tipo de prueba de software que implica probar las interfaces de programación de aplicaciones (API) directamente y como parte de las pruebas de integración para determinar si cumplen con las expectativas de funcionalidad, confiabilidad, rendimiento y seguridad. [1] Dado que las API carecen de una GUI , las pruebas de API se realizan en la capa de mensaje . [2] Las pruebas de API ahora se consideran críticas para automatizar las pruebas porque las API ahora sirven como la interfaz principal para la lógica de la aplicación y porque las pruebas de GUI son difíciles de mantener con los ciclos de lanzamiento cortos y los cambios frecuentes que se usan comúnmente conDesarrollo ágil de software y DevOps . [3] [4]

Las pruebas de API implican probar las API directamente (de forma aislada) y como parte de las transacciones de extremo a extremo ejercidas durante las pruebas de integración. [1] Más allá de las API RESTful , estas transacciones incluyen varios tipos de puntos finales, como servicios web , ESB , bases de datos , mainframes , interfaces de usuario web y ERP . Las pruebas de API se realizan en las API que produce el equipo de desarrollo, así como en las API que el equipo consume dentro de su aplicación (incluidas las API de terceros). [5]

Las pruebas de API se utilizan para determinar si las API devuelven la respuesta correcta (en el formato esperado) para una amplia gama de solicitudes factibles, reaccionan adecuadamente a casos extremos como fallas y entradas inesperadas/extremas, entregan respuestas en una cantidad de tiempo aceptable y responder de forma segura a posibles ataques de seguridad . [1] [4] La virtualización de servicios se utiliza junto con las pruebas de API para aislar los servicios que se están probando y ampliar el acceso al entorno de prueba mediante la simulación de API/servicios que no son accesibles para las pruebas. [6]

Las pruebas de API suelen incluir pruebas de API REST o servicios web SOAP con cargas útiles de mensajes JSON o XML que se envían a través de HTTP , HTTPS , JMS y MQ . [2] [7] También puede incluir formatos de mensaje como SWIFT , FIX , EDI y formatos similares de longitud fija, CSV , ISO 8583 y Protocol Buffers que se envían a través de transportes/protocolos como TCP/IP , ISO 8583 , MQTT , FIX , RMI , SMTP , TIBCO Rendezvous y FIX . [8] [9]

Se reconoce que las pruebas de API son más adecuadas para la automatización de pruebas y las pruebas continuas (especialmente la automatización utilizada con el desarrollo de software Agile y DevOps ) que las pruebas de GUI. [3] [4] Las razones citadas incluyen:

Por estas razones, se recomienda que los equipos aumenten su nivel de pruebas de API mientras disminuyen su dependencia de las pruebas de GUI. Se recomiendan las pruebas de API para la gran mayoría de los esfuerzos de automatización de pruebas y la mayor cantidad posible de pruebas de borde. Las pruebas de GUI se reservan para validar casos de uso típicos a nivel de sistema, pruebas móviles y pruebas de usabilidad. [3] [4] [10]