API REST de génération du test de l’exécuteur dans le cloud

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 10 minutes de lecture
  • Gère la génération de tâches de test à exécuter dans un exécuteur dans le cloud pour Framework de tests automatisés (ATF).

    L’API Cloud Runner Test Generation 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. Le rôle administrateur est requis pour accéder à cette API.

    Vous pouvez utiliser cette API pour les tâches suivantes :
    • Démarrez la tâche de génération des tests.
    • Vérifiez la progression de la tâche de génération des tests.
    • Annuler la tâche de génération des tests.

    L’API Cloud Runner Test Generation peut être utilisée en tandem avec les et API REST de l’utilisateur test de l’exécuteur dans le cloud.API REST de test exécutable de l’exécuteur dans le cloud Par exemple, vous pouvez appeler l’API de génération de tests pour exécuter un test, puis obtenir la progression du test dans la file d’attente d’orchestration du navigateur (API de génération de tests Cloud Runner), puis 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 à la section TestGenerationAPI de l’exécuteur cloud : champ d’application, global.

    Génération de tests de l’exécuteur dans le cloud : GET /now/sn_atf_tg/test_generation_progress

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

    Format d'URL

    URL par défaut : GET /api/now/sn_atf_tg/test_generation_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. L’enregistrement BOQ sys_id de la tâche de génération des tests dont vous souhaitez 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
    Aucun

    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 la 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 la 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 BOQ 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 BOQ 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 du corps de réponse (JSON ou XML)

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

    Type de données : objet

    "result": { 
        "testsSucceeded": Number, 
        "testsFailed": Number, 
        "testsPending": Number, 
        "testsInProgress": Number, 
        "testsSkipped": Number 
      } 
    }

    Ou:

    {
      "result": { 
        "message": "String" 
      } 
    }
    résultat.message Message d’erreur expliquant pourquoi la progression de la génération des tests 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.testsRéussi Nombre de tests générés qui ont réussi.

    Type de données : nombre

    résultat.testsÉchoué Nombre de tests générés qui ont échoué.

    Type de données : nombre

    résultat.testsEn attente Nombre de cas d’utilisation en attente de tests générés.

    Type de données : nombre

    résultat.testsencours Nombre de cas d’utilisation pour lesquels les tests sont créés.

    Type de données : nombre

    résultat.testsignorés Nombre de tests ignorés en raison de l’annulation de la tâche.

    Type de données : nombre

    Demande cURL

    L’appel GET suivant renvoie des informations de progression sur les tests générés associés à snboqId 1234.

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

    Sortie :

    { 
      "result": { 
        "testsSucceeded": 0, 
        "testsFailed": 0, 
        "testsPending": 0, 
        "testsInProgress": 0, 
        "testsSkipped": 161 
      } 
    }

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

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation_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_generation_progress?snboqId=invalid_sys_id" \
    --request GET \
    --header "Accept:application/json" \
    --user "username":"password"

    Réponse :

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

    Génération de tests de l’exécuteur dans le cloud : POST /now/sn_atf_tg/cancel_test_generation

    Définit la tâche de génération des tests et son enregistrement d’ensemble de mises à jour associé sur l’état Terminé. Annule les suivis racine de tous les tests générés en cours d’exécution. Si des tâches de test sont en cours lors de l’annulation, cette méthode définit tous les enregistrements de test en cours générés comme ignorés.

    Les tests peuvent échouer ou s’annuler automatiquement en raison de problèmes de règles métier ou de règles de contrôle d’accès (ACL). Consultez la table de test générée pour plus de détails sur les tests ayant échoué ou annulés.

    Format d'URL

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

    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
    Aucun
    Tableau 9. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    snboqId Obligatoire. sys_id de l’enregistrement de file d’attente Orchestration du navigateur (BOQ) à annuler. Situé dans la table BOQ [sn_atf_tg_sn_boq].

    Type de données : chaîne

    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 la 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 la 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 La tâche BOQ a été annulée avec succès.
    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 BOQ 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 BOQ 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 du corps de réponse (JSON ou XML)

    Nom Description
    résultat Objet contenant les résultats de la demande d’annulation.

    Type de données : objet

    "result": { 
        "message": String
    }
    résultat.message Message détaillant si l’annulation du test a réussi.

    Type de données : chaîne

    Demande cURL

    La demande suivante annule la tâche de génération de test d’un enregistrement BOQ spécifié.

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

    Le corps de la réponse renvoie un message de réussite de l’annulation.

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

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

    curl "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \
    --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 "http://instance.service-now.com/api/now/sn_atf_tg/cancel_test_generation" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{\"snboqId\":\"invalid_sys_id\"}" \
    --user "username":"password"

    Réponse :

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

    Génération de tests de l’exécuteur dans le cloud : POST /now/sn_atf_tg/test_generation

    Insère un enregistrement dans la table File d’attente Orchestration du navigateur (BOQ) [sn_atf_tg_sn_boq] pour démarrer une tâche de test.

    Format d'URL

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

    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
    Aucun
    Tableau 15. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    catalogEncodedQuery Requête codée spécifiant les éléments de catalogue sur lesquels générer des tests. Une chaîne vide est définie par défaut sur tous les éléments de catalogue. Pour plus d’informations sur la formation de requêtes codées, reportez-vous à la section Encoded query strings.

    Type de données : chaîne

    E-mail Adresse e-mail d’alerte lorsque la génération des tests est terminée.

    Type de données : chaîne

    maxTestCount (en anglais seulement) Nombre de tests globaux à générer.

    Valeurs acceptées : n’importe quel nombre compris entre 1 et 9999.

    Type de données : nombre

    Par défaut : 9999

    maxTestCountPerItem Nombre de tests à générer par élément de catalogue.

    Valeurs acceptées : n’importe quel nombre compris entre 1 et 10.

    Type de données : nombre

    Par défaut : 10

    maxTestCountPerTable Nombre de tests à générer par table.

    Valeurs acceptées : n’importe quel nombre compris entre 1 et 10.

    Type de données : nombre

    Par défaut : 10

    tableEncodedQuery Requête codée spécifiant les tables sur lesquelles générer des tests. Une chaîne vide définit par défaut toutes les tables. Pour plus d’informations sur la formation de requêtes codées, reportez-vous à la section Encoded query strings.

    Type de données : chaîne

    separateUpdateSetPerScope Marqueur indiquant s’il faut séparer les tests générés en suites, ensembles de mises à jour et champs d’application respectifs, ou placer les tests dans une suite, un ensemble de mises à jour et un champ d’application.
    Valeurs valides :
    • true : les tests sont placés dans leur suite et leur ensemble de mises à jour respectifs en fonction du champ d’application de chaque table ou élément de catalogue.
    • false : tous les tests générés sont placés dans la même suite, ensemble de mises à jour et champ d’application. Si la valeur est définie sur Faux, scopeForGeneratingTests cette option est requise dans la demande.

    Type de données : booléennes

    Valeur par défaut : true

    scopeForGeneratingTests Requis quand separateUpdateSetPerScope est défini sur faux. Sys_id du périmètre dans lequel placer tous les tests générés.

    Type de données : chaîne

    userEncodedQuery Requête codée spécifiant les utilisateurs sur lesquels générer des tests. Une entrée de chaîne vide est définie par défaut sur toutes les tables. Pour plus d’informations sur la formation de requêtes codées, reportez-vous à la section Encoded query strings.

    Type de données : chaîne

    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 la 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 la 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 BOQ de génération de test a été insérée avec succès. Toutes les erreurs sont indiquées dans les journaux d’enregistrement de nomenclature pendant le traitement. Toutes les entrées génèrent par défaut le nombre maximal de tests pour toutes les tables et tous les éléments de catalogue de services.
    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 du corps de réponse (JSON ou XML)

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

    Type de données : objet

    result.snboqId Sys_id de l’enregistrement inséré dans la table de sn_atf_tg_sn_boq au démarrage de la génération des tests.

    Type de données : chaîne

    Demande cURL

    L’exemple de demande suivant démarre une nouvelle tâche de test dans l’instance sans aucun paramètre de demande et insère la tâche dans la table BOQ.

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

    Corps de réponse :

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

    L’exemple de demande suivant démarre une nouvelle tâche de test avec un nombre de tests maximal de 2 et filtre les tests dans la table Incident, puis insère la tâche dans la table BOQ.

    curl "http://instance.service-now.com/api/now/sn_atf_tg/test_generation" \ 
    --request POST \ 
    --header "Accept:application/json" \ 
    --header "Content-Type:application/json" \ 
    --data "{\"maxTestCount\":\"2\",\"tableEncodedQuery\":\"name=incident\"}" \ 
    --user "username":"password"

    Corps de réponse :

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