Appel API dans un test web

Envoyer une requête HTTP au milieu d'un test web, et poser des conditions sur la réponse.

Un test qui ne fait que piloter un navigateur ne voit pas ce qui se passe en dessous. L'étape Appel API envoie une requête HTTP depuis la même exécution : préparer une donnée avant que l'UI ne passe dessus, relire ce qu'un formulaire vient d'écrire, ou vérifier l'API dont dépend une page avant d'accuser la page. Elle se place dans le scénario comme n'importe quelle autre étape, et tous ses champs acceptent les variables.

L'éditeur de test avec une étape Appel API sélectionnée : la ligne de l'étape porte la méthode et l'URL, et le panneau de droite affiche les onglets General, Variables, Checks et Advanced settings avec l'emplacement de la réponse

L'étape exige un robot à jour. Sur un robot plus ancien, elle échoue. Vérifiez les versions de vos robots depuis la page Agents et mettez-les à jour avant d'ajouter des étapes Appel API. L'étape est disponible dans les tests Web (Nouvelle expérience), les tests smartphone suivront.

Requête

Ajoutez l'étape depuis Ajouter une étape..., puis choisissez la méthode et saisissez l'URL directement sur la ligne de l'étape.

ParamètreObligatoireDescription
MethodOuiGET, POST, PUT, PATCH, DELETE, HEAD ou OPTIONS.
URLOuiLe endpoint à appeler, par ex. https://api.example.com/orders. Accepte les variables : un token ou un ID issu d'une étape précédente s'y insère directement.
Query ParametersNonDes lignes clé / valeur, les deux acceptant des variables. Elles constituent la query string de l'URL : modifier l'un des deux côtés garde l'autre à jour.
HeadersNonDes lignes clé / valeur, les deux acceptant des variables. Ajouter un header ajoute une ligne.
BodyNonDisponible sur POST, PUT, PATCH et DELETE. Choisissez JSON, XML, HTML ou Text pour la coloration syntaxique ; le corps est envoyé tel que vous l'avez saisi.

Passer à une méthode qui ne porte pas de corps vide le corps au lieu de l'envoyer : un GET avec un payload est refusé par le client HTTP.

Réglages

Paramètres de l'appel API, dans le panneau de l'étape :

  • Surcharger le DNS : résoudre le host via vos propres serveurs DNS. Ajoutez-en autant que nécessaire (8.8.8.8 et compagnie), et chaque entrée accepte les variables, donc un résolveur par environnement peut venir d'une variable configurée.
  • Accepter les certificats non sécurisés : continuer malgré un certificat auto-signé ou expiré. Même option et même libellé que dans les étapes navigateur.
  • Conserver les cookies : conserver les cookies de l'exécution pour cette requête.
  • Redirection : Suivre automatiquement les redirections, activé ou non.

Poser des conditions sur la réponse

L'onglet Vérifications de l'étape sépare les conditions en deux :

  • Conditions de succès, qui se lisent "Réussit si" : l'étape passe quand elles sont toutes remplies.
  • Avertissements, qui se lisent "Avertit si" : l'étape passe quand même, mais l'exécution est signalée en warning.

Une condition se déplace d'un groupe à l'autre : transformer un warning en échec franc tient en un clic.

Ce sur quoi vous pouvez porter une condition :

ChampUsage typique
Code de statutis exactly 201
Texte de statutis exactly Created
En-tête de réponseNommez le header, puis testez sa valeur
Corps de réponseLe corps brut, ou un Chemin JSON / Chemin XML comme data.id
Temps de réponseLa requête entière sous un seuil
Temps de résolution DNS, Temps de connexion TCP/TLS, Temps jusqu'au premier octet, Temps de transfertIdentifier quelle phase est lente, pas seulement qu'elle l'est

Les opérateurs dépendent du champ :

  • Texte (texte de statut, la valeur d'un header, le corps) : est exactement, contient, commence par, finit par.
  • Le corps ajoute correspond au JSON, correspond à la regex, est un JSON valide et est un XML valide.
  • Un header ajoute est présent et est absent, pour tester la présence du header plutôt que sa valeur.
  • Les nombres (code de statut et tous les temps) se comparent avec =, <, ≤, > et ≥. Les durées sont accompagnées d'un sélecteur ms, secondes ou minutes.

Dans le groupe Avertissements, une condition se lit comme le déclencheur et non comme l'attendu : « Avertit si > 10s » est la même condition qu'une condition de succès écrite ≤ 10s.

Exécutez le test une fois avant d'écrire vos conditions. Choisir un champ… liste alors les attributs de la dernière réponse, et Ouvrir en grand ouvre une liste avec recherche où vous pouvez cocher plusieurs attributs et les ajouter tous en une fois.

Voir ce qui est revenu

Dans le builder, le panneau de l'étape conserve un bloc Réponse rempli avec les données de la dernière exécution réussie, en trois onglets : Corps (Pretty ou Raw, avec Copier), En-têtes avec leur nombre, et Performance.

Dans les résultats d'exécution, une étape Appel API s'ouvre sur quatre onglets :

  • Réponse : le corps, les headers et le détail des temps, Résolution DNS, Connexion TCP, Envoi de la requête, Génération du contenu et Transfert du contenu.
  • Requête : ce qui a réellement été envoyé, headers compris.
  • Réglages : surcharge du DNS, certificats, cookies et redirections tels qu'ils ont tourné.
  • Variables : les variables utilisées par cette étape.

Et ensuite ?

Scénarios API

La vue d'ensemble du test d'API, y compris dans les tests mobiles

Variables dans les tests

Alimenter une requête en tokens, IDs et données générées

Extraire une valeur

Lire une valeur dans la page plutôt que dans une API

Actions web

Toutes les étapes disponibles dans un test web

Last updated on