Référence de l'événement du service d'utilisation
Informations sur les propriétés de la version 2 de l'événement du service d'utilisation
Cet article contient des informations de référence sur :
- Les données d'événement qui sont envoyées au service d'utilisation (version 2 de l'objet événement,
EventV2) - Son objet
applicationPropertiescontenu - L’objet
testResults(contenu dans l’objetapplicationProperties) lorsqueAXE_INCLUDE_TEST_RESULTSest défini surtrue
Événement de version 2
L'interface TypeScript suivante définit un événement de version 2 :
interface EventV2 {
version: 'v2'
productName: string
productComponent: string
productComponentVersion: string
event: string
dateTime: Date
keycloakId?: string
distinctId: string
userId?: string
organization?: string
department?: string
application?: string
devInstance?: boolean
sessionId?: string
userStatus?: string
loggedIn?: boolean
applicationProperties?: Record<string, any>
userJobRole?: string
actor?: 'human' | 'automation'
teams?: { id: string; name: string }[]
}| Nom | Description |
|---|---|
| acteur | Qu'il s'agisse d'une personne (human) ou d'un processus automatisé (automation) qui a exécuté le test. Défini par la CLI, les API Node.js et l'API Ruby. Voir acteur. |
| application | L'application qui a créé cet événement |
| propriétésDeL'application | propriétésDeL'application défini ci-dessous |
| dateTime | Date et heure (au milliseconde) au format ISO-8601, fuseau horaire UTC |
| department | Le département de l'utilisateur au sein de l'organisation |
| devInstance | Si cette utilisation est considérée comme une instance de développeur et doit probablement être filtrée |
| distinctId | Le uuid distinct de l'utilisateur |
| event | Type d'événement sous forme de chaîne, généralement "analyze" ou "uri: analyze" |
| keycloakId | Le ID Keycloak de l'utilisateur |
| loggedIn | Si l'utilisateur est connecté |
| organization | L'organisation de l'utilisateur |
| productComponent | Défini par les API pour indiquer différentes intégrations telles que Playwright |
| productComponentVersion | Une chaîne indiquant la version du composant produit |
| productName | Défini par les API pour indiquer l'intégration que vous utilisez |
| sessionId | Un uuid identifiant la session (pour permettre de regrouper les événements) |
| équipes | Les équipes exécutant le test, sous la forme d'un tableau d'objets { id, name }. Défini par la CLI, les API Node.js et l'API Ruby. Voir équipes. |
| userId | L'ID de l'utilisateur |
| userJobRole | Le rôle de l'utilisateur |
| userStatus | Le statut de l'utilisateur |
| version | Une chaîne spécifiant la version de l'événement, toujours 'v2' |
distinctId
La valeur distinctId est un uuid qui est défini par utilisateur chaque fois que les métriques sont enregistrées. Elle doit être stable dans le temps car elle est définie lors de la première exécution de l'interface CLI ou du code qui utilise les API. Elle est stockée dans le fichier .deque/distinct_id dans le répertoire personnel de chaque utilisateur.
acteur
La CLI, les API Node.js et l'API Ruby définissent actor sur automation lorsqu'une de ces variables d'environnement est définie à une valeur autre que false ou 0 : CI, BUILD_NUMBER, BUILDKITE, CIRCLECI, CODEBUILD_BUILD_ID, GITHUB_ACTIONS, GITLAB_CI, JENKINS_URL, TEAMCITY_VERSION, TF_BUILD, ou BITBUCKET_BUILD_NUMBER. Sinon, actor est human. Définissez la variable d'environnement AXE_ACTOR sur human ou automation pour remplacer la détection. Le paquet @axe-devtools/browser ne peut pas lire les variables d'environnement lorsqu'il s'exécute dans un navigateur, il rapporte donc human là-bas.
équipes
Le tableau teams enregistre les équipes dont les membres ont exécuté le test. La CLI, les API Node.js et l'API Ruby l'envoient toujours, sous la forme d'un tableau vide ([]) lorsqu'aucune équipe n'est définie. Vous fournissez les équipes vous-même, avec la variable d'environnement AXE_TEAMS, l'option --set-teams de la CLI, la méthode setTeams de votre API Node.js, ou la clause for_teams ou propriété de configuration teams de l'API Ruby. Chaque équipe est un objet avec les propriétés chaîne id et name :
[{ "id": "1", "name": "Web" }]Les entrées sans chaîne de caractères id et name sont supprimées. Une valeur qui ne peut pas être lue ou qui n'est pas un tableau JSON est ignorée, et l'événement est néanmoins envoyé.
propriétésDeL'application
L'objet applicationProperties contient des informations sur le nombre de tests effectués, comme le montre l'exemple ci-dessous :
applicationProperties: {
advancedRules: { enabled: false, value: 'disabled', source: 'unavailable' },
target: 'https://broken-workshop.dequelabs.com/',
targetMedium: 'text/html',
urlCount: 1,
engineVersion: '4.14.0',
failedRuleCount: 2,
failedRuleNames: 'color-contrast,label',
failedItemCount: 5,
criticalIssueCount: 3,
seriousIssueCount: 2,
moderateIssueCount: 0,
minorIssueCount: 0,
needsReviewItemCount: 4,
inapplicableRuleCount: 39,
incompleteRuleCount: 2,
passedRuleCount: 21,
testResults: {}
},| Propriété | Description |
|---|---|
| règlesAvancées | Si des règles avancées ont été exécutées. La CLI, les API Node.js et l'API Ruby n'exécutent jamais de règles avancées, donc c'est toujours { enabled: false, value: 'disabled', source: 'unavailable' }. |
| commande | La commande CLI qui a exécuté l'analyse, comme spec ou bulk-spec. Envoyé uniquement par l'interface en ligne de commande. |
| nombreProblèmesCritiques | Nombre d'éléments défaillants avec un impact critique |
| versionDuMoteur | La version de axe-core utilisée pour les tests |
| nombreD'articlesÉchoués | Nombre total d'erreurs d'accessibilité trouvées sur la page web |
| nombreDeRèglesÉchouées | Nombre de règles qui ont échoué sur la page |
| nomsDesRèglesÉchouées | Chaîne séparée par des virgules des noms des règles qui ont échoué |
| nombreDeRèglesInapplicables | Nombre de règles qui n'ont pas été appliquées |
| nombreProblèmesMineurs | Nombre d'éléments défaillants avec un impact mineur |
| nombreProblèmesModérés | Nombre d'éléments défaillants avec un impact modéré |
| nombreÉlémentsBesoinRévision | Nombre d'éléments nécessitant une révision |
| nombreDeRèglesIncomplètes | Nombre de règles incomplètes |
| nombreDeRèglesRéussies | Nombre de règles réussies |
| nombreProblèmesSérieux | Nombre d'éléments défaillants avec un impact sérieux |
| cible | URL testée |
| moyenCible | Type MIME de la cible. Nommé target_medium avant la version 4.14.0. |
| résultatsDesTests | L'objet testResults, voir la section suivante pour plus d'informations |
| nombreURLs | Nombre d'URLs distinctes analysées. Une page de spécifications CLI dont les actions naviguent et analysent à nouveau, rapporte plus de 1. |
résultatsDesTests
L'objet testResults est défini comme un objet axeResults (défini par axe-core). Il n'est défini que lorsque vous avez défini la variable d'environnement AXE_INCLUDE_TEST_RESULTS sur true, ce qui est pris en charge uniquement par la CLI et les API Node.js.
interface AxeResults extends EnvironmentData {
toolOptions: RunOptions;
passes: Result[];
violations: Result[];
incomplete: Result[];
inapplicable: Result[];
}L'exemple suivant montre un objet testResults :
{
testEngine: {
name: "axe-core",
version: "4.4.1"
},
testRunner: {
name: "axe"
},
testEnvironment: {
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML,like Gecko) Version/16.0 Safari/605.1.15",
windowWidth: 1280,
windowHeight: 720
},
timestamp: "2023-02-02T20:09:04.785Z",
url: "https://broken-workshop.dequelabs.com/",
toolOptions: {
reporter: "v1"
},
inapplicable: [],
passes: [],
incomplete: [],
violations: []
}Pour plus de concision, les tableaux inapplicable, passes, incomplete et violations, qui contiennent normalement des objets Result, n'ont pas été inclus.
Vous pouvez voir les définitions TypeScript pour ces objets dans le dépôt GitHub axe-core.
Voir aussi
Pour des tutoriels démontrant comment utiliser le service d'utilisation, voir Premiers pas avec le service d'utilisation et les API et Premiers pas avec le service d'utilisation et l'interface CLI.
Pour des informations générales sur le service d'utilisation, voir Le service d'utilisation Axe DevTools pour le web.
