Cómo hacer pruebas de API externa (blackbox)

14

Suponga que está utilizando API de un proveedor, ¿cómo asegurarse de que su API funciona como se esperaba?

Mi principal preocupación es que a veces el proveedor presiona los cambios en su código y rompe la API, queremos tener algún tipo de software automático para probarlos continuamente. ¿Cómo lidiar con esto?

    
pregunta user34401 21.12.2012 - 09:28

4 respuestas

10

Respuesta corta: necesita un conjunto de pruebas para una API de un proveedor externo, por lo que tendrá que desarrollar una.

No esperes que nadie más lo haga por ti, y no esperes una "bala mágica" para generar automáticamente las pruebas correctas.

Algunas cosas que podrías probar además:

  • pregunte al proveedor si proporciona una lista de "cambios de última hora" para cada nueva versión
  • pregúnteles cómo se preocupan por la compatibilidad de API / infórmeles que esta es una característica importante para usted
  • compruebe si la API proporciona enlaces de prueba específicos, salida de registro o algo similar para las partes que tampoco podrían probarse fácilmente
  • envuelva las llamadas importantes a la API con su propio código de registro, escriba la entrada y la salida relacionada de la API en un archivo de registro, esto facilitará la depuración de las cosas si ocurre algo inesperado
  • agregue aserciones a las llamadas de la API para verificar las condiciones previas y posteriores, por lo que si un nuevo lanzamiento de la API muestra un comportamiento inesperado dentro de su aplicación, se le informa con anticipación mediante un mensaje de error

Si estas cosas funcionan o no, depende de quién es su proveedor y qué tipo de API tiene en mente. Una API que produce una salida inspeccionable como archivos es mucho más fácil de probar que una API que controla algún dispositivo físico en el que tiene que observar el comportamiento de la cosa para decidir si la llamada a la API fue exitosa o no.

    
respondido por el Doc Brown 21.12.2012 - 09:39
0

Basado en las frases del póster, es más que solo una prueba, OMI. Después de escribir su prueba de unidad para la API y asegurarse de que todo funciona como se espera, debe monitorear las API de terceros para detectar los problemas antes de que lo hagan los usuarios. Ese es el verdadero riesgo con las API de terceros: no es su código y no tiene control sobre la cantidad de pruebas que se realizaron en la API o cuándo / si cambia.

(Descargo de responsabilidad: nombres de productos utilizados aquí) Si usa soapUI para escribir sus pruebas de API, esas pruebas pueden reutilizarse en AlertSite como un monitor operativo para asegurarse de que la API siga funcionando como se esperaba. Si falla la prueba, puedes recibir una alerta antes de que tus usuarios te llamen y se quejan de que tu aplicación no funciona.

    
respondido por el Lorinda Brandon 21.12.2012 - 16:03
0

Implemente pruebas de aprendizaje para su área de interés (características que planea usar). Las pruebas de aprendizaje son pruebas de integración escritas por el desarrollador contra el contrato público de la API. Las pruebas no deben escribirse con los detalles de la implementación interna, incluso si el código fuente de la API está disponible. Este tipo de pruebas de aprendizaje tiene dos propósitos:

  1. Mejora dramáticamente tu comprensión de la API de terceros.
  2. Las pruebas ayudan a verificar si la nueva versión reclamada es realmente compatible con versiones anteriores o no.
respondido por el Anand Patel 08.01.2013 - 17:47
0

Hay 2 enfoques para este problema ...

su aplicación está activa en producción con tráfico de usuarios reales:

si tienes una aplicación en producción que tiene tráfico en vivo y depende de una API externa, no tienes más remedio que monitorear de cerca y tener buenos umbrales para saber lo más rápido posible cuando la API externa realice cambios sin notificar.

siempre debes tener en cuenta que:

  • el cambio de API con el tiempo
  • el proveedor de API puede tener errores
  • los kits de prueba de los proveedores de API pueden tener errores o no cubrir por completo toda la funcionalidad de la API de producción

su aplicación es una instalación y tiene una versión / versión planificada:

en este caso, tiene un período de gracia para fallar ... el usuario en vivo no se verá afectado inmediatamente por los cambios de ruptura de la API externa.

en mi opinión, esta es una tarea más fácil. escriba una prueba (prueba completa de extremo a extremo) que realice transacciones reales / http / solicitudes a su aplicación que invoque la API externa y verifique que no haya fallas. no hay kits de prueba, no se burla de una transacción real.

después de que se realice esta tarea, puede elegir ejecutar esto cada 24 horas, 1 minuto, etc. ...

buenas prácticas:

  • automatizar todo
  • tenga una persona con la que pueda comunicarse rápidamente con el proveedor de la API externa
  • no confíe ciegamente en que el proveedor pruebe todo
  • falla rápido: si tu servicio depende en gran medida de la API externa, no dejes que tu servicio se cuelgue. falla rápido y devuelve los mensajes de error apropiados

tools:

respondido por el Nimrod007 11.09.2015 - 12:33

Lea otras preguntas en las etiquetas