API de couverture du code ATF
L’API de couverture du code ATF fournit des points de terminaison pour calculer la couverture du code à partir des exécutions d’Framework de tests automatisés (ATF). La couverture peut être récupérée par numéros de ligne filtrés, pour des ID de script spécifiques ou pour tous les scripts couverts par un ensemble de suite/exécutions de tests.
La couverture du code ATF est un outil qui vous permet de déterminer quel pourcentage de code dans une demande de déploiement est couvert par les suites de tests ATF.
Par défaut, si les suites de tests ATF couvrent moins de 70 % du code d’une demande de déploiement, ReleaseOps fait passer la demande de déploiement à l’état Rapprochement et une tâche d’échec de test est automatiquement créée. Vous pouvez ajuster le seuil de couverture du code ATF dans le playbook d’évaluation des demandes de déploiement. Pour plus d'informations, consultez Set Automated Test Framework (ATF) code coverage.
Pour plus d’informations sur ATF et l’analyseur de performances, consultezTesting and debugging applications
Couverture du code ATF : POST /now/atf/code_coverage/all
Agrège la couverture de tous les scripts couverts par les exécutions ATF fournies. Prend en charge la combinaison d’exécutions de suites de tests et d’exécutions de tests individuelles.
Format d'URL
URL avec version : /api/now/v1/atf/code_coverage/all
URL par défaut : /api/now/atf/code_coverage/all
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Par exemple, v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison autre que la plus récente. Type de données : chaîne |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| test_suite_result_ids | Requis sauf si des test_result_ids sont fournies. Liste des sys_ids de résultats de la suite de tests.Tableau : Résultats de la suite de tests [sys_atf_test_suite_result] Type de données : tableau de chaînes |
| test_result_ids | Requis sauf si test_suite_result_ids sont fournies. Liste des sys_ids de résultats de test à inclure (peuvent être combinés avec des suites). Tableau : Résultats des tests [sys_atf_test_result] Type de données : tableau de chaînes |
| Détaillé | Marqueur qui indique le niveau de détail à fournir dans la réponse pour chaque script de test personnalisé. Valeurs valides :
Valeur par défaut : false Type de données : booléennes |
| sys_scopes | Filtrez les résultats sur les périmètres de l’application spécifiés (par exemple, ["x_my_app », « global"]). Plusieurs champs d’application utilisent la logique OU, de sorte que tout champ d’application correspondant est inclus. Aucun filtrage n’a lieu si un tableau vide ou NULL est fourni.Type de données : tableau de chaînes |
En-têtes
Les en-têtes de demande et de réponse suivants s’appliquent uniquement à cette action HTTP 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.
| 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 |
| En-tête | Description |
|---|---|
| Néant |
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.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été traitée avec succès. |
| 400 | Demande incorrecte. Un type de demande incorrecte ou mal formé a été détecté. |
| 500 | Erreur interne du serveur. Une erreur inattendue s’est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l’erreur. |
Paramètres de corps de réponse (JSON)
| Nom | Description |
|---|---|
| Lien | Lien vers l’enregistrement de la demande. Type de données : chaîne |
| détails.<scriptId> | Répertorie le pourcentage de couverture d’agrégation ATF de chaque script de test personnalisé par sys_id de script. Type de données : nombre |
| api_request_sys_id | L’sys_id de la demande. Table : Demandes API de couverture du code ATF [sys_atf_code_coverage_request] Type de données : chaîne |
| résultat | Message de réussite ou d’erreur. Formats de réponse d’erreur :
Erreurs possibles :
Type de données : chaîne |
| total | Pourcentage global de couverture du code reflétant la couverture combinée du code ATF des scripts répertoriés dans la details propriété. La valeur est égale à zéro si aucun script personnalisé n’est associé aux tests fournis ou si aucun pourcentage de couverture du code n’a été fourni. Valeurs possibles : 0-100 Type de données : nombre |
| truncation_message | Si les données de demande ont été tronquées pendant la persistance, fournit des détails sur les scripts qui ont tronqué les informations. Exemple de message :
Type de données : chaîne |
| was_truncated | Marqueur indiquant si les données de la demande ont été tronquées pendant la persistance. Pour réduire la troncation, vous pouvez modifier le nombre de caractères pris en charge par défaut. Par exemple, Valeurs valides :
Type de données : booléennes Nombre de caractères par défaut : 4000 |
Demande cURL
L’exemple suivant montre comment récupérer toute la couverture de code pour une suite de résultats de tests et un résultat de test sélectionnés.
curl "https://instance.service-now.com/api/now/atf/code_coverage/all" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"test_suite_result_ids\": [\"5f81c7c4ff943210b88affffffffffc5\"],
\"test_result_ids\": [\"bb8daec1ff103210b88affffffffff1c\"],
\"verbose\": true,
\"sys_scopes\": [\"x_my_app\", \"global\"]
}" \
--user 'username':'password'
Sortie :
{
"result": "success",
"total": 73,
"details": {
"sys_script_include_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6": 85,
"sys_script_include_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7": 92,
"sys_ui_script_c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8": 45,
"sys_script_d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9": 68,
"sys_script_include_e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0": 100
},
"api_request_sys_id": "f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1",
"link": "https://instance.service-now.com/sys_atf_code_coverage_request.do?sys_id=f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1"
}
Couverture du code ATF : POST /now/atf/code_coverage/by_script_id
Calcule la couverture pour des enregistrements de script spécifiques.
Pour calculer la couverture du code pour tous les scripts couverts par les exécutions ATF spécifiées, utilisez le point de terminaison /now/atf/code_coverage/all.
Format d'URL
URL versionnée : /api/now/v1/atf/code_coverage/by_script_id
URL par défaut : /api/now/atf/code_coverage/by_script_id
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Par exemple, v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison autre que la plus récente. Type de données : chaîne |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| test_suite_result_ids | Requis sauf si des test_result_ids sont fournies. Liste des sys_ids de résultats de la suite de tests.Tableau : Résultats de la suite de tests [sys_atf_test_suite_result] Type de données : tableau de chaînes |
| test_result_ids | Requis sauf si test_suite_result_ids sont fournies. Liste des sys_ids de résultats de test à inclure (peuvent être combinés avec des suites). Tableau : Résultats des tests [sys_atf_test_result] Type de données : tableau de chaînes |
| script_array | Requis. Un ou plusieurs sys_ids de script valides à évaluer pour la couverture du code. Doit contenir au moins un identificateur de script valide (non vide). Les entrées nulles, vides ou contenant uniquement des espaces blancs sont filtrées. Table : Traçage des métadonnées [sys_traced_metadata] Type de données : tableau |
| Détaillé | Marqueur qui indique le niveau de détail à fournir dans la réponse pour chaque script de test personnalisé. Valeurs valides :
Valeur par défaut : false Type de données : booléennes |
| sys_scopes | Filtrez les résultats sur les périmètres de l’application spécifiés (par exemple, ["x_my_app », « global"]). Plusieurs champs d’application utilisent la logique OU, de sorte que tout champ d’application correspondant est inclus. Aucun filtrage n’a lieu si un tableau vide ou NULL est fourni.Type de données : tableau de chaînes |
En-têtes
Les en-têtes de demande et de réponse suivants s’appliquent uniquement à cette action HTTP 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.
| 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 |
| En-tête | Description |
|---|---|
| Néant |
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.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été traitée avec succès. |
| 400 | Demande incorrecte. Un type de demande incorrecte ou mal formé a été détecté. |
| 500 | Erreur interne du serveur. Une erreur inattendue s’est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l’erreur. |
Paramètres de corps de réponse (JSON)
| Nom | Description |
|---|---|
| Lien | Lien vers l’enregistrement de la demande. Type de données : chaîne |
| détails.<scriptId> | Répertorie le pourcentage de couverture d’agrégation ATF de chaque script de test personnalisé par sys_id de script. Type de données : nombre |
| api_request_sys_id | L’sys_id de la demande. Table : Demandes API de couverture du code ATF [sys_atf_code_coverage_request] Type de données : chaîne |
| résultat | Message de réussite ou d’erreur. Formats de réponse d’erreur :
Erreurs possibles :
Type de données : chaîne |
| total | Pourcentage global de couverture du code reflétant la couverture combinée du code ATF des scripts répertoriés dans la details propriété. La valeur est égale à zéro si aucun script personnalisé n’est associé aux tests fournis ou si aucun pourcentage de couverture du code n’a été fourni. Valeurs possibles : 0-100 Type de données : nombre |
| truncation_message | Si les données de demande ont été tronquées pendant la persistance, fournit des détails sur les scripts qui ont tronqué les informations. Exemple de message :
Type de données : chaîne |
| was_truncated | Marqueur indiquant si les données de la demande ont été tronquées pendant la persistance. Pour réduire la troncation, vous pouvez modifier le nombre de caractères pris en charge par défaut. Par exemple, Valeurs valides :
Type de données : booléennes Nombre de caractères par défaut : 4000 |
Information supplémentaire
Les charges utiles de demande volumineuse peuvent être tronquées lorsqu’elles sont conservées si les données de demande dépassent les limites de champ de la base de données.
- test_suite_results tableau JSON des ID de résultats de la suite de tests.
- test_results tableau JSON des ID de résultats des tests.
- metadata_info : objet JSON contenant des lignes filtrées ou un tableau de scripts.
Si la was_truncated propriété est vraie, les détails sont fournis dans la truncation_message propriété du corps de la réponse. De plus, le système consigne le message suivant :
Champ <table_name>.<field_name> tronqué de <original_length> à <truncated_length> caractères (max : <max_field_length>). Envisagez d’augmenter la longueur des colonnes pour éviter la perte de données"
- Si glide.db.truncate_utf8 est vrai, l’information est tronquée aux limites UTF-8 octets. Ce paramètre est plus sûr pour les caractères multioctets.
- Si glide.db.truncate_utf8 la valeur est faux (par défaut), les informations sont tronquées aux limites des caractères. La limite par défaut est de 4 000 caractères.
Demande cURL
L’exemple suivant montre comment récupérer la couverture du code pour une suite de résultats de tests sélectionnée filtrée par un script de test spécifique. Lorsque verbose est faux ou omis, l’objet details est vide. Seul le pourcentage global total est renvoyé.
curl "https://instance.service-now.com/api/now/atf/code_coverage/by_script_id" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"test_suite_result_ids\": [\"5f81c7c4ff943210b88affffffffffc5\"],
\"script_array\": [
\"sys_script_include_db95cb370a0a0b2b00244880b5cacda7\",
\"sys_script_include_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6\"
]
}" \
--user 'username':'password'
Sortie :
{
"result": "success",
"total": 78,
"details": {},
"api_request_sys_id": "a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2",
"link": "https://instance.service-now.com/sys_atf_code_coverage_request.do?sys_id=a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2"
}
Couverture du code ATF : POST /now/atf/code_coverage/by_line_number
Calcule la couverture du code à l’aide d’un ensemble de numéros de ligne filtrés par enregistrement de métadonnées.
Format d'URL
URL avec version : /api/now/v1/atf/code_coverage/by_line_number
URL par défaut : /api/now/atf/code_coverage/by_line_number
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| api_version | Facultatif. Version du point de terminaison auquel accéder. Par exemple, v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison autre que la plus récente. Type de données : chaîne |
| Nom | Description |
|---|---|
| Néant |
| Nom | Description |
|---|---|
| test_suite_result_ids | Requis sauf si des test_result_ids sont fournies. Liste des sys_ids de résultats de la suite de tests.Tableau : Résultats de la suite de tests [sys_atf_test_suite_result] Type de données : tableau de chaînes |
| test_result_ids | Requis sauf si test_suite_result_ids sont fournies. Liste des sys_ids de résultats de test à inclure (peuvent être combinés avec des suites). Tableau : Résultats des tests [sys_atf_test_result] Type de données : tableau de chaînes |
| filtered_lines | Requis. Carte des sys_ids de métadonnées et des lignes de code correspondantes à désigner pour la couverture du code (par exemple, { « <metadata_sys_id> » : { « script » : [...] } }).Type de données : objet |
| filtered_lines.<sys_id> | Obligatoire, ne doit pas être vide. Un ou plusieurs sys_ids de script à évaluer pour la couverture du code. Doit contenir au moins un identificateur de script valide (non vide). Les entrées nulles, vides ou contenant uniquement des espaces blancs sont filtrées. Table : Traçage des métadonnées [sys_traced_metadata] Type de données : objet |
| filtered_lines.<sys_id>.script | Requis. Liste de numéros de ligne et chaînes de plages de numéros de ligne. Toutes les valeurs fournies doivent être des nombres entiers positifs supérieurs ou égaux à 1. Formats de numéro de ligne valides :
Exemple : Type de données : tableau |
| Détaillé | Marqueur qui indique le niveau de détail à fournir dans la réponse pour chaque script de test personnalisé. Valeurs valides :
Valeur par défaut : false Type de données : booléennes |
| sys_scopes | Filtrez les résultats sur les périmètres de l’application spécifiés (par exemple, ["x_my_app », « global"]). Plusieurs champs d’application utilisent la logique OU, de sorte que tout champ d’application correspondant est inclus. Aucun filtrage n’a lieu si un tableau vide ou NULL est fourni.Type de données : tableau de chaînes |
En-têtes
Les en-têtes de demande et de réponse suivants s’appliquent uniquement à cette action HTTP 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.
| 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 |
| En-tête | Description |
|---|---|
| Néant |
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.
| Code d'état | Description |
|---|---|
| 200 | Réussi. La demande a été traitée avec succès. |
| 400 | Demande incorrecte. Un type de demande incorrecte ou mal formé a été détecté. |
| 500 | Erreur interne du serveur. Une erreur inattendue s’est produite lors du traitement de la demande. La réponse contient des informations supplémentaires sur l’erreur. |
Paramètres de corps de réponse (JSON)
| Nom | Description |
|---|---|
| Lien | Lien vers l’enregistrement de la demande. Type de données : chaîne |
| détails.<scriptId> | Répertorie le pourcentage de couverture d’agrégation ATF de chaque script de test personnalisé par sys_id de script. Type de données : nombre |
| api_request_sys_id | L’sys_id de la demande. Table : Demandes API de couverture du code ATF [sys_atf_code_coverage_request] Type de données : chaîne |
| résultat | Message de réussite ou d’erreur. Formats de réponse d’erreur :
Erreurs possibles :
Type de données : chaîne |
| total | Pourcentage global de couverture du code reflétant la couverture combinée du code ATF des scripts répertoriés dans la details propriété. La valeur est égale à zéro si aucun script personnalisé n’est associé aux tests fournis ou si aucun pourcentage de couverture du code n’a été fourni. Valeurs possibles : 0-100 Type de données : nombre |
| truncation_message | Si les données de demande ont été tronquées pendant la persistance, fournit des détails sur les scripts qui ont tronqué les informations. Exemple de message :
Type de données : chaîne |
| was_truncated | Marqueur indiquant si les données de la demande ont été tronquées pendant la persistance. Pour réduire la troncation, vous pouvez modifier le nombre de caractères pris en charge par défaut. Par exemple, Valeurs valides :
Type de données : booléennes Nombre de caractères par défaut : 4000 |
Information supplémentaire
Les charges utiles de demande volumineuse peuvent être tronquées lorsqu’elles sont conservées si les données de demande dépassent les limites de champ de la base de données.
- test_suite_results tableau JSON des ID de résultats de la suite de tests.
- test_results tableau JSON des ID de résultats des tests.
- metadata_info : objet JSON contenant des lignes filtrées ou un tableau de scripts.
Si la was_truncated propriété est vraie, les détails sont fournis dans la truncation_message propriété du corps de la réponse. De plus, le système consigne le message suivant :
Champ <table_name>.<field_name> tronqué de <original_length> à <truncated_length> caractères (max : <max_field_length>). Envisagez d’augmenter la longueur des colonnes pour éviter la perte de données"
- Si glide.db.truncate_utf8 est vrai, l’information est tronquée aux limites UTF-8 octets. Ce paramètre est plus sûr pour les caractères multioctets.
- Si glide.db.truncate_utf8 la valeur est faux (par défaut), les informations sont tronquées aux limites des caractères. La limite par défaut est de 4 000 caractères.
Demande cURL
L’exemple suivant montre comment récupérer toute la couverture de code pour une suite de résultats de tests et un résultat de test sélectionnés.
curl "https://instance.service-now.com/api/now/atf/code_coverage/by_line_number" \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data "{
\"test_suite_result_ids\": [\"5f81c7c4ff943210b88affffffffffc5\"],
\"test_result_ids\": [\"bb8daec1ff103210b88affffffffff1c\"],
\"filtered_lines\": {
\"sys_script_include_db95cb370a0a0b2b00244880b5cacda7\": {
\"script\": [1, \"3-6\", 7, \"10-12\"]
}
},
\"verbose\": true,
\"sys_scopes\": [\"x_my_app\", \"global\"]
}" \
--user 'username':'password'
Sortie :
{
"result": "success",z
"total": 64,
"details": {
"sys_script_include_db95cb370a0a0b2b00244880b5cacda7": 80,
"sys_ui_script_c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8": 50
},
"api_request_sys_id": "b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3",
"link": "https://instance.service-now.com/sys_atf_code_coverage_request.do?sys_id=b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3",
"was_truncated": false
}