Prise en main du service d'utilisation et des API
Montre comment configurer un serveur pour renvoyer les événements du service d'utilisation tout en exécutant des tests du Catalogue d'exemples.
Cet article montre comment configurer un serveur simple pour collecter les événements du service d'utilisation (un serveur écho) et les afficher sur la console. Vous apprendrez également à créer un projet d'API exemple qui enverra des événements au serveur écho. Vous verrez aussi comment modifier l'événement envoyé au service d'utilisation à l'aide des variables d'environnement.
Prérequis
Vous devez installer Node.js pour utiliser cet exemple. Consultez Node.js pour l'installateur Node.js.
Configuration d'un serveur Echo
Créez un fichier contenant le code ci-dessous :
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
// Parse JSON bodies.
app.use(bodyParser.json())
// Accept events.
app.post('/:version/event', (req, res) => {
const event = req.body
console.log(event)
// Respond so the client is happy.
res.status(200)
res.send('Event accepted!')
})
// Listen for requests.
app.listen(3000)Nous appellerons le fichier echo-server.js. Enregistrez-le dans un nouveau répertoire et changez de répertoire.
Le serveur écoute les requêtes sur le port 3000 et écrit le corps de la requête reçue sur la console. Ainsi, chaque fois qu'un client API ou un test CLI est exécuté (et que la journalisation d'utilisation est activée), le serveur echo écrit l'événement d'utilisation reçu.
Installez express et body-parser, deux dépendances nécessaires pour exécuter le code ci-dessus :
npm i express body-parserDémarrez le serveur echo :
node echo-server.jsCréer un test
Vous pouvez utiliser le Catalogue d'exemples pour obtenir du code de test exemple. Lorsque vous exécutez le code de test, il enverra des données de métriques d'utilisation au serveur écho que vous avez créé dans la section précédente.
Démarrez une nouvelle fenêtre de terminal ou de console pour les étapes suivantes.
Clonez le dépôt du Catalogue d'exemples Deque sur GitHub puis changez de répertoire :
git clone git@github.com:dequelabs/axe-devtools-html-api-examples.git
cd axe-devtools-html-api-examplesVous pourriez avoir besoin d'utiliser une commande de clonage différente avec GitHub selon la façon dont vous avez configuré l'accès à GitHub. La commande git clone ci-dessus utilise SSH pour cloner le dépôt et nécessite un secret partagé pour fonctionner correctement. Voir Connexion à GitHub avec SSH pour plus d'informations.
Pour cet exemple, nous avons utilisé l'exemple de code Node.js Playwright. Passez dans ce répertoire et installez les packages Node.js nécessaires :
cd Node/playwright
npm iIl se peut que vous ayez également besoin d'installer les dépendances de Playwright :
npx playwright installDéfinissez maintenant les variables d'environnement requises pour activer le reporting des métriques et réglez le serveur sur le serveur écho local que vous avez créé précédemment :
export AXE_TRACK_USAGE=trueexport AXE_METRICS_URL=http://localhost:3000
Par défaut, les résultats d'utilisation sont rapportés à https://usage.deque.com.
Vous pouvez définir les variables d'environnement et exécuter les tests (npm test) depuis la ligne de commande sur Linux et macOS :
AXE_TRACK_USAGE=true AXE_METRICS_URL=http://localhost:3000 npm testLa configuration des variables d'environnement comme indiqué ci-dessus ne fonctionne que sur les machines Linux et macOS. Pour Windows, vous devez utiliser set sur une ligne séparée :
set AXE_TRACK_USAGE=true
set AXE_METRICS_URL=http://localhost:3000Si vous souhaitez conserver les valeurs entre les redémarrages sur Windows, vous pouvez utiliser setx (sans signe égal) :
setx AXE_TRACK_USAGE true
setx AXE_METRICS_URL http://localhost:3000La fenêtre du terminal qui contient le serveur écho en cours d'exécution affichera des résultats comme ceux-ci :
{
dateTime: '2023-01-20T17:26:54.371Z',
productComponent: 'api-node-playwright',
productName: 'axe-devtools-html',
version: 'v2',
event: 'analyze',
distinctId: '1b8a5e67-eb1f-4637-9668-be3a332d2c41',
applicationProperties: {
target: 'https://broken-workshop.dequelabs.com/',
target_medium: 'text/html',
engineVersion: '4.5.2',
failedRuleCount: 2,
failedRuleNames: 'color-contrast,label',
failedItemCount: 5,
inapplicableRuleCount: 39,
incompleteRuleCount: 2,
passedRuleCount: 21,
testResults: {}
}
}Pour des détails sur les propriétés de cet objet, voir L'objet événement.
Modifier l'événement à l'aide des variables d'environnement
Vous pouvez modifier l'événement que les API ou CLI envoient au service d'utilisation en utilisant des variables d'environnement. Cet exemple démontre comment modifier l'événement.
Tout d'abord, définissez une variable d'environnement pour la valeur que vous souhaitez changer, par exemple :
export AXE_DEPARTMENT="test department"Cela changera la propriété department sur l'objet événement comme le montre l'exemple ci-dessous (sur Linux ou macOS) :
AXE_DEPARTMENT="test department" AXE_TRACK_USAGE=true AXE_METRICS_URL=http://localhost:3000 npm testDepuis la fenêtre de terminal où vous exécutez le serveur écho, vous devriez voir un événement incluant les informations department comme le montre la ligne mise en évidence ci-dessous :
{
dateTime: '2023-01-20T17:31:48.422Z',
productComponent: 'api-node-playwright',
productName: 'axe-devtools-html',
version: 'v2',
event: 'analyze',
distinctId: '18cd1262-b5b7-4681-9f7a-a7d4c97745c8',
applicationProperties: {
target: 'https://broken-workshop.dequelabs.com/',
target_medium: 'text/html',
engineVersion: '4.5.2',
failedRuleCount: 2,
failedRuleNames: 'color-contrast,label',
failedItemCount: 5,
inapplicableRuleCount: 39,
incompleteRuleCount: 2,
passedRuleCount: 21,
testResults: {}
},
department: 'test department'}Pour plus d'informations sur les variables d'environnement que vous pouvez utiliser pour modifier les événements d'utilisation, voir Contrôler le service d'utilisation via des variables d'environnement.
Prochaines étapes
Pour suivre une version de ce tutoriel pour la CLI, voir Prise en main du service d'utilisation et de la CLI.
Pour une vue d'ensemble du service d'utilisation, voir Le service d'utilisation.
Pour une référence de l'objet événement, voir Référence d'événement du service d'utilisation.
