Introduzione al servizio di utilizzo e alle API
Mostra come impostare un server per riecheggiare gli eventi del servizio di utilizzo durante l'esecuzione dei test dal Catalogo di esempio.
Questo articolo mostra come configurare un semplice server per raccogliere eventi di servizio di utilizzo (un server echo) e visualizzarli sulla console. Scoprirai anche come creare un progetto API di esempio che invierà eventi al server echo. Vedrai anche come modificare l'evento inviato al servizio di utilizzo utilizzando le variabili di ambiente.
Prerequisiti
Per utilizzare questo esempio è necessario installare Node.js. Per il programma di installazione di Node.js, vedere Node.js .
Impostazione di un server Echo
Creare un file contenente il codice mostrato di seguito:
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)
Chiameremo il file echo-server.js. Salvatelo in una nuova directory e cambiate a quella directory.
Il server ascolta le richieste sulla porta 3000 e scrive il corpo della richiesta ricevuta sulla console. Pertanto, ogni volta che viene eseguito un test di client API o CLI (e la registrazione dell'utilizzo è abilitata), il server echo scrive l'evento di utilizzo ricevuto.
Installate express e body-parser, due dipendenze necessarie per eseguire il codice sopra:
npm i express body-parser
Avviate il server echo:
node echo-server.js
Creazione di un test
È possibile utilizzare il Catalogo degli esempi per ottenere un codice di test di esempio. Quando esegui il codice di prova, i dati sulle metriche di utilizzo verranno inviati al server echo creato nella sezione precedente.
Avvia una nuova finestra del terminale o della console per i passaggi successivi.
Clona il repository Deque Examples Catalog su GitHub e poi passa a quella directory:
git clone git@github.com:dequelabs/axe-devtools-html-api-examples.git
cd axe-devtools-html-api-examples
Potresti aver bisogno di utilizzare un comando clone diverso con GitHub, a seconda di come hai configurato l'accesso a GitHub. Il comando git clone sopra riportato utilizza SSH per clonare il repository e richiede un segreto condiviso per funzionare correttamente. Per ulteriori informazioni, consultare Connessione a GitHub tramite SSH
Per questo esempio abbiamo utilizzato il codice di esempio Node.js Playwright. Installare i pacchetti Node.js necessari e passare a quella directory:
cd Node/playwright
npm i
Potrebbe essere necessario installare anche le dipendenze di Playwright:
npx playwright install
Ora imposta le variabili di ambiente richieste per abilitare la segnalazione delle metriche e imposta il server sul server echo locale creato in precedenza:
export AXE_TRACK_USAGE=true
export AXE_METRICS_URL=http//localhost:3000
Per impostazione predefinita, i risultati dell'utilizzo vengono segnalati a https://usage.deque.com.
È possibile impostare le variabili di ambiente ed eseguire i test (npm test) dalla riga di comando su Linux e macOS:
AXE_TRACK_USAGE=true AXE_METRICS_URL=http://localhost:3000 npm test
L'impostazione delle variabili d'ambiente come mostrato sopra funziona solo su computer Linux e macOS. Per Windows è necessario usare set su una riga separata:
set AXE_TRACK_USAGE=true
set AXE_METRICS_URL=http://localhost:3000
Se si desidera mantenere i valori tra i riavvii di Windows, potete utilizzare setx (senza segno di uguale):
setx AXE_TRACK_USAGE true
setx AXE_METRICS_URL http://localhost:3000
La finestra del terminale che contiene il server echo in esecuzione mostrerà risultati simili ai seguenti:
{
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: {}
}
}
Per maggiori dettagli sulle proprietà di questo oggetto, vedere L'oggetto evento.
Modifica dell'evento utilizzando le variabili d'ambiente
È possibile modificare l'evento che le API o la CLI inviano al servizio di uso utilizzando le variabili di ambiente. Questo esempio mostra come modificare l'evento.
Per prima cosa, imposta una variabile d'ambiente per il valore che desideri modificare, ad esempio:
export AXE_DEPARTMENT="test department"
Ciò modificherà la proprietà department nell'oggetto evento come mostrato nell'esempio seguente (su Linux o macOS):
AXE_DEPARTMENT="test department" AXE_TRACK_USAGE=true AXE_METRICS_URL=http://localhost:3000 npm test
Dalla finestra del terminale in cui stai eseguendo il server echo, dovresti vedere un evento che include informazioni sul dipartimento come mostrato nella riga evidenziata di seguito:
{
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'}
Per ulteriori informazioni sulle variabili di ambiente che è possibile utilizzare per modificare gli eventi di utilizzo, vedere Controllo del servizio di utilizzo tramite variabili di ambiente.
Prossimi passi
Per seguire una versione di questo tutorial per la CLI, vedere Introduzione al servizio di utilizzo e alla CLI.
Per informazioni generali sul servizio di utilizzo, vedere Il servizio di utilizzo.
Per un riferimento all'oggetto evento, vedere Riferimento all'evento del servizio di utilizzo.