API REST de test exécutable dans le cloud

  • Rversion finale: Washingtondc
  • Mis à jour 6 févr. 2024
  • 9 minutes de lecture
  • Gère les tests à exécuter dans un exécuteur dans le cloud pour Infrastructure de tests automatisés (ATF).

    L’API de test exécutable dans le cloud nécessite le module d’extension ATF Test Generator and Cloud Runner (sn_atf_tg). Les méthodes disponibles avec cette API s’exécutent dans l’espace de noms Now et peuvent être appelées à l’aide de Nom d’API, test de régression en un clic pour ATF, dans l’explorateur d’API REST. L’utilisateur doit avoir au moins un des rôles suivants pour accéder à cette API : admin, administrateur de test ATF, concepteur de test ATF ou concepteur ATF WS.

    Vous pouvez utiliser cette API pour les tâches suivantes :
    • Démarrez un test ATF ou une suite de tests dans le navigateur de l’exécuteur dans le cloud.
    • Vérifiez la progression de la tâche de test.
    • Annulez la tâche de test.

    L’API de test exécutable dans le cloud peut être utilisée en tandem avec le API REST de génération des tests de l’exécuteur dans le cloud et API REST de l’utilisateur de test de l’exécuteur dans le cloud. Par exemple, vous pouvez générer un test (API Cloud Runner Test Generation), puis obtenir la progression du test dans la file d’attente d’orchestration du navigateur (API Cloud Runner TEST Generation) et vérifier le nombre de tests qui ont réussi ou échoué.

    Pour afficher la documentation de référence de l’API serveur de cette API, reportez-vous à TestRunnerApi de l’exécuteur dans le cloud : champ d’application, global.

    Test exécutable : GET /now/sn_atf_tg/test_runner_progress

    Fournit l’état de chaque test exécuté pour un enregistrement de file d’attente d’orchestration du navigateur (BOQ) fourni.

    Format d'URL

    URL par défaut : GET /api/now/sn_atf_tg/test_runner_progress

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d'accès
    Nom Description
    Aucun
    Tableau 2. Paramètres de requête
    Nom Description
    snboqId Requis. Le sys_id d’enregistrement BOQ de la tâche de test exécutable dont obtenir la progression. Situé dans la table BOQ [sn_atf_tg_sn_boq].

    Type de données : chaîne

    Tableau 3. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    Néant

    En-têtes

    Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.

    Tableau 4. En-têtes de demandes
    En-tête Description
    Accepter Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Tableau 5. En-têtes de réponses
    En-tête Description
    Aucun

    Codes d'état

    Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.

    Tableau 6. Codes d'état
    Code d'état Description
    200 La progression de la tâche BOQ a été récupérée avec succès.
    400 Erreur lors de l’obtention de l’état de l’enregistrement BOQ. Renvoie l’un des messages suivants :
    • Aucun ID de BOQ transmis – Aucun ID de BOQ n’a été fourni. Ajoutez l’ID de nomenclature au corps de la demande.
    • Impossible de trouver l’enregistrement BOQ – ID système non valide. Vérifiez que la sys_id de l’enregistrement de nomenclature est valide et que l’enregistrement existe.
    403 Erreur lors de l’octroi de l’accès de l’utilisateur au point de terminaison. Assurez-vous que l’utilisateur dispose du rôle administrateur.

    Paramètres de corps de réponse (JSON ou XML)

    Nom Description
    résultat Objet contenant les résultats de progression de la tâche de test exécutable ou un message expliquant pourquoi la demande a échoué.

    Type de données : objet

    "result": { 
        "progress": 100, 
        "state": "completed" 
      }

    Ou:

    {
      "result": { 
        "message": "String" 
      } 
    }
    résultat.message Message d’erreur expliquant pourquoi la progression du test exécutable ne peut pas être récupérée. Le paramètre de message n’est pas renvoyé dans une réponse réussie.

    Type de données : chaîne

    résultat.progrès Un pourcentage indiquant à quel point un test est proche de l’achèvement pendant qu’il est en cours d’exécution.

    Type de données : nombre

    état.résultat État actuel de l’enregistrement de nomenclature. Valeurs possibles :
    • En attente : l’activité de test demandée a été créée et est en attente d’exécution.
    • Traitement : l’instance recherche des enregistrements pour s’assurer que les suivis des exécutions sont marqués pour l’exécuteur dans le cloud avant que la demande ne soit envoyée à l’infrastructure dans le cloud.
    • Navigateurs demandés : une demande a été envoyée à l’infrastructure cloud pour démarrer les navigateurs pour la génération ou l’exécution de tests.
    • En cours d’exécution : les navigateurs d’infrastructure cloud recherchent et exécutent les tests en attente.
    • Terminé : la tâche de test est terminée.
    • État Échoué : la tâche de test a échoué.

    Type de données : chaîne

    Demande cURL

    La demande suivante récupère la progression de la tâche d’exécution de test de l’enregistrement BOQ.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_runner_progress?snboqId=<sys_id of SNBOQ record>" \ 
    --request GET \ 
    --header "Accept:application/json" \ 
    --user "username:password"

    La réponse indique que le test est terminé à 100 %.

    { 
      "result": { 
        "progress": 100, 
        "state": "completed" 
      } 
    }

    L’exemple suivant renvoie un message d’erreur 400 lorsqu’aucun ID de nomenclature n’est transmis.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_runner_progress" \
    --request GET \
    --header "Accept:application/json" \
    --user "username:password"

    Réponse :

    {
      "result": {
        "message": "No SNBOQ ID passed in, add snboqId to request body"
      }
    }

    L’exemple suivant renvoie un message d’erreur 400 lorsqu’un ID de nomenclature non valide est transmis.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_runner_progress?snboqId=invalid_sys_id" \
    --request GET \
    --header "Accept:application/json" \
    --user "username:password"

    Réponse :

    {
      "result": {
        "message": "Invalid SNBOQ sys_id passed in"
      }
    }

    Test exécutable : POST /now/sn_atf_tg/cancel_test_runner

    Définit la tâche d’exécution de test sur l’état terminé et annule les suivis racine de tous les tests générés en cours d’exécution.

    Format d'URL

    URL par défaut : GET /now/sn_atf_tg/cancel_test_runner

    Paramètres de demande pris en charge

    Tableau 7. Paramètres de chemin d'accès
    Nom Description
    Aucun
    Tableau 8. Paramètres de requête
    Nom Description
    Néant
    Tableau 9. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    snboqId Sys_id de l’enregistrement (BOQ) de la file d’attente (BOQ) de Browser Orchestration (sn_atf_tg_sn_boq) associé à la tâche de test exécutable à annuler. Situé dans la table BOQ [sn_atf_tg_sn_boq].

    En-têtes

    Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.

    Tableau 10. En-têtes de demandes
    En-tête Description
    Accepter Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Content-Type Format de données du corps de la demande. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Tableau 11. En-têtes de réponses
    En-tête Description
    Aucun

    Codes d'état

    Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.

    Tableau 12. Codes d'état
    Code d'état Description
    200 Réussi. La demande a été correctement traitée.
    400 Erreur lors de l’annulation de la tâche. Renvoie l’un des messages suivants :
    • Aucun ID de BOQ transmis – Aucun ID de BOQ n’a été fourni. Ajoutez l’ID de nomenclature au corps de la demande.
    • Impossible de trouver l’enregistrement BOQ – ID système non valide. Vérifiez que la sys_id de l’enregistrement de nomenclature est valide et que l’enregistrement existe.
    403 Erreur lors de l’octroi de l’accès de l’utilisateur au point de terminaison. Assurez-vous que l’utilisateur dispose du rôle administrateur.

    Paramètres de corps de réponse (JSON ou XML)

    Nom Description
    résultat Objet contenant les résultats de la demande.
    
      "result": { 
        "message": String
      }

    Type de données : objet

    résultat.message Message détaillant si l’annulation du test a réussi.

    Type de données : chaîne

    Demande cURL

    L’exemple suivant montre comment former une demande d’annulation de test exécutable en fonction du sys_id de l’enregistrement BOQ.

    curl "https://instance.service-now.com/api/now/sn_atf_tg/cancel_test_runner" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{\"snboqId\":\"<sys_id of BOQ record>\"}" \ 
    --user "username:password"

    Message de réponse indiquant que le test exécutable a été annulé avec succès.

    { 
      "result": { 
        "message": "success" 
      } 
    } 

    L’exemple suivant renvoie un message d’erreur 400 lorsqu’aucun ID de nomenclature n’est transmis.

    curl "https://instance.service-now.com/api/now/sn_atf_tg/cancel_test_runner" \
    --request POST \
    --header "Accept:application/json" \
    --user "username:password"

    Réponse :

    {
      "result": {
        "message": "No SNBOQ ID passed in, add snboqId to request body"
      }
    }

    L’exemple suivant renvoie un message d’erreur 400 lorsqu’un ID de nomenclature non valide est transmis.

    curl "https://instance.service-now.com/api/now/sn_atf_tg/cancel_test_runner" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{\"snboqId\":\"invalid_sys_id\"}" \
    --user "username:password"

    Réponse :

    {
      "result": {
        "message": "Invalid SNBOQ sys_id passed in"
      }
    }

    Test exécutable : POST /now/sn_atf_tg/test_runner

    Insère une tâche d’exécution de test dans la table BOQ [sn_atf_tg_sn_boq] pour un test ou une suite de tests donnée, qui est ensuite exécutée sur l’exécuteur dans le cloud.

    Format d'URL

    URL par défaut : POST api/now/sn_atf_tg/test_runner

    Paramètres de demande pris en charge

    Tableau 13. Paramètres de chemin d'accès
    Nom Description
    Aucun
    Tableau 14. Paramètres de requête
    Nom Description
    Néant
    Tableau 15. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    ID test Sys_id du test [sys_atf_test] ou de la suite de tests [sys_atf_test_suite] à exécuter sur l’exécuteur dans le cloud.

    En-têtes

    Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.

    Tableau 16. En-têtes de demandes
    En-tête Description
    Accepter Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Content-Type Format de données du corps de la demande. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Tableau 17. En-têtes de réponses
    En-tête Description
    Aucun

    Codes d'état

    Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.

    Tableau 18. Codes d'état
    Code d'état Description
    200 Une tâche de nomenclature de test exécutable a été insérée avec succès.
    400 Erreur lors du démarrage de la tâche de test exécutable. Renvoie l’un des messages suivants :
    • Impossible de trouver le test ou la suite de tests avec l’ID système &lt;testId> : ID de test non valide. Assurez-vous que la sys_id de l’enregistrement de test (sys_atf_test) ou de suite de tests (sys_atf_test_suite) est valide et que l’enregistrement existe.
    • Aucun ID de test transmis : aucun ID de test n’a été réussi. Ajoutez l’ID de test au corps de la demande.
    403 Erreur lors de l’octroi de l’accès de l’utilisateur au point de terminaison. Assurez-vous que l’utilisateur dispose du rôle administrateur.

    Paramètres de corps de réponse (JSON ou XML)

    Nom Description
    résultat Objet contenant les résultats de la demande.
    { 
      "result": { 
        "snboqId": "String" 
      } 
    }

    Ou:

    
      "result": { 
        "message": "String"
      }

    Type de données : objet

    result.snboqId Sys_id de l’enregistrement BOQ qui est inséré au démarrage du test exécutable. Situé dans la table BOQ [sn_atf_tg_sn_boq].
    résultat.message Message d’erreur expliquant pourquoi le test exécutable ne peut pas être démarré.

    Demande cURL

    La requête suivante insère une tâche de test exécutable dans la table BOQ [sn_atf_tg_sn_boq].

    curl "https://instance.service-now.com/api/now/sn_atf_tg/test_runner" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{\"testId\":\"<sys_id of ATF test or test suite>\"}" \ 
    --user "username:password"

    Le corps de la réponse renvoie l’sys_id de la tâche de test exécutable qui a été insérée avec succès.

    { 
      "result": { 
        "snboqId": "<sys_id of newly inserted SNBOQ record>" 
      } 
    }

    L’exemple suivant renvoie un message d’erreur 400 lorsqu’aucune sys_id de test ou de suite de tests n’est réussie.

    curl "https://instance.service-now.com/api/now/sn_atf_tg/test_runner" \
    --request POST \
    --header "Accept:application/json" \
    --user "username:password"

    Réponse :

    {
      "result": {
        "message": "No Test ID passed in, add testId to request body"
      }
    }

    L’exemple suivant renvoie un message d’erreur 400 lorsqu’une sys_id de test ou de suite de tests non valide est réussie.

    curl "https://instance.service-now.com/api/now/sn_atf_tg/test_runner" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{\"testId\":\"invalid_test_id\"}" \
    --user "username:password"

    Réponse :

    {
      "result": {
        "message": "Unable to find test or test suite with Sys ID invalid_test_id"
      }
    }