web-dev-qa-db-fra.com

Comment faire des tests d'API externes (Blackbox)

Supposons que vous utilisez des API d'un fournisseur, comment vous assurer que leur API fonctionne comme prévu?

Ma principale préoccupation est parfois que le fournisseur a poussé les modifications à leur code et enfreindre l'API, nous souhaitons avoir une sorte de logiciel automatique pour les tester continuellement. Comment faire face à cela?

14
user34401

Réponse courte: Vous avez besoin d'une suite de tests pour une API de vendeur tiers - vous devrez donc le développer un.

Ne vous attendez pas à ce que quelqu'un d'autre le fasse pour vous et ne vous attendez pas à une "balle magique" pour générer automatiquement les bons tests.

Certaines choses que vous pouvez essayer en plus:

  • demandez au vendeur s'ils fournissent une liste de "modifications de rupture" pour chaque nouvelle version
  • demandez-leur comment ils se soucient de la compatibilité de l'API/les informent que c'est une fonctionnalité importante pour vous
  • vérifiez si l'API fournit des crochets de test spécifiques, une sortie de journalisation ou quelque chose du genre pour les pièces qui ne pouvaient pas être testées facilement non plus
  • enveloppez les appels d'API importants avec votre propre code de journalisation, une entrée d'écriture et une sortie associée de l'API à un fichier journal, cela facilitera la débogage des choses si quelque chose d'inattendu se produit
  • ajoutez des affirmations aux appels API pour vérifier les pré-postes et les postconditions. Si une nouvelle version de l'API apparaît dans votre application dans votre demande, vous vous informez tôt par un message d'erreur.

Si ces choses fonctionnent ou ne dépendent pas de savoir qui est votre fournisseur et quel type d'API vous avez à l'esprit. Une API qui produit une sortie inspectable comme des fichiers est beaucoup plus facile à tester qu'une API qui contrôle certains périphériques physiques où vous devez observer le comportement de la chose à décider si l'appel de l'API a été réussi ou non.

10
Doc Brown

Basé sur le phrasé de l'affiche, il s'agit plus que de tester, imo. Une fois que vous avez écrit votre test de l'unité pour l'API et assurez-vous que tout fonctionne comme prévu, vous devez surveiller les API tiers afin que vous preniez des problèmes avant que les utilisateurs ne le font. C'est le risque réel avec les API tiers - ce n'est pas votre code et vous n'avez aucun contrôle sur la quantité de test effectuée sur l'API ou lorsque/si elle change.

(Disclaimer: Noms de produit utilisés ici) Si vous utilisez SOAPUI pour écrire vos tests d'API, ces tests peuvent être réutilisés dans ALGERSITE comme moniteur opérationnel pour vous assurer que l'API continue de fonctionner comme prévu. S'il échoue au test, vous pouvez vous faire alerter avant que vos utilisateurs vous appellent et vous plainent que votre application ne fonctionne pas.

0
Lorinda Brandon

Mettre en œuvre des tests d'apprentissage pour votre domaine d'intérêt (fonctionnalités que vous envisagez d'utiliser). Les tests d'apprentissage sont des tests d'intégration rédigés par le développeur contre le contrat public de l'API. Les tests ne doivent pas être écrits contre les détails de la mise en œuvre internes, même si le code source de l'API est disponible. Ce type de test d'apprentissage sert deux objectifs -

  1. Il améliore considérablement votre compréhension de l'API tiers.
  2. Les tests aident à vérifier si la nouvelle version revendiquée est en réalité compatible ou non.
0
Anand Patel