Enregistrer les résultats des analyses localement

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Lorsque vous enregistrez les résultats des analyses localement, vous pouvez utiliser le résultat JSON pour intégrer des métriques d'accessibilité dans différents outils de reporting. Vous pouvez également créer un rapport HTML à partager par e-mail ou chat, pour informer votre équipe de l'état d'accessibilité de votre test.

Sauvegarder les résultats localement est pris en charge que dans le cadre des tests automatisés.

Enregistrer et partager les résultats

Créez un répertoire « reports » dans votre répertoire personnel où vous enregistrerez les résultats JSON. Consultez les exemples ci-dessous.

Ruby

require 'json'
require 'fileutils'

#
# Set up driver, capabilities and axeStartSession here before scanning
#

# Start Scan Here
scanResult = @driver.execute_script 'mobile: axeScan'

# Convert result to JSON string
json_result = JSON.pretty_generate(scanResult)

# Create timestamp for filename
timestamp = Time.now.strftime('%Y-%m-%dT%H-%M-%S')
filename = "axe-scan-result-#{timestamp}.json"

# Create reports directory
reports_dir = File.join(Dir.home, 'reports', 'axeScans')
FileUtils.mkdir_p(reports_dir)

# Save to file
filepath = File.join(reports_dir, filename)
File.write(filepath, json_result)

puts "Axe scan result saved to: #{filepath}"

JavaScript

const fs = require('fs');
const path = require('path');

//
//Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
const scanResult = await driver.execute('mobile: axeScan')

// Convert result to JSON string
const jsonResult = JSON.stringify(scanResult, null, 2);

// Create timestamp for filename
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
const filename = `axe-scan-result-${timestamp}.json`;

// Create reports directory
const reportsDir = path.join(require('os').homedir(), 'reports', 'axeScans');
fs.mkdirSync(reportsDir, { recursive: true });

// Save to file
const filepath = path.join(reportsDir, filename);
fs.writeFileSync(filepath, jsonResult, 'utf8');

console.log(`Axe scan result saved to: ${filepath}`);

Python

import json
from datetime import datetime
from pathlib import Path

#
# Set up driver, capabilities and axeStartSession here before scanning
#

# Start axeScan
scan_result = driver.execute_script('mobile: axeScan')

# Convert result to JSON string
json_result = json.dumps(scan_result, indent=2)

# Create timestamp for filename
timestamp = datetime.now().strftime('%Y-%m-%dT%H-%M-%S')
filename = f"axe-scan-result-{timestamp}.json"

# Create reports directory
reports_dir = Path.home() / 'reports' / 'axeScans'
reports_dir.mkdir(parents=True, exist_ok=True)

# Save to file
filepath = reports_dir / filename
filepath.write_text(json_result, encoding='utf-8')

print(f"Axe scan result saved to: {filepath}")

Java

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;

//
// Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
Object scanResult = driver.executeScript("mobile: axeScan");

// Convert result to JSON string
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonResult = gson.toJson(scanResult);

// Create timestamp for filename
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH-mm-ss");
String timestamp = LocalDateTime.now().format(formatter);
String filename = "axe-scan-result-" + timestamp + ".json";

// Create reports directory
Path reportsDir = Paths.get(System.getProperty("user.home"), "reports", "axeScans");
Files.createDirectories(reportsDir);

// Save to file
Path filepath = reportsDir.resolve(filename);
Files.write(filepath, jsonResult.getBytes());

System.out.println("Axe scan result saved to: " + filepath.toString());

Kotlin

import com.google.gson.Gson
import com.google.gson.GsonBuilder
import java.nio.file.Files
import java.nio.file.Paths
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

//
// Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
val scanResult = driver.executeScript("mobile: axeScan")

// Convert result to JSON string
val gson = GsonBuilder().setPrettyPrinting().create()
val jsonResult = gson.toJson(scanResult)

// Create timestamp for filename
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH-mm-ss")
val timestamp = LocalDateTime.now().format(formatter)
val filename = "axe-scan-result-$timestamp.json"

// Create reports directory
val reportsDir = Paths.get(System.getProperty("user.home"), "reports", "axeScans")
Files.createDirectories(reportsDir)

// Save to file
val filepath = reportsDir.resolve(filename)
Files.write(filepath, jsonResult.toByteArray())

println("Axe scan result saved to: $filepath")

C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;

//
// Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
var scanResult = _driver.ExecuteScript("mobile: axeScan");

// Convert result to JSON string
string jsonResult = JsonConvert.SerializeObject(scanResult, Formatting.Indented);

// Create timestamp for filename
string timestamp = DateTime.Now.ToString("yyyy-MM-ddTHH-mm-ss");
string filename = $"axe-scan-result-{timestamp}.json";

// Create reports directory
string reportsDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), 
                                "reports", "axeScans");
Directory.CreateDirectory(reportsDir);

// Save to file
string filepath = Path.Combine(reportsDir, filename);
File.WriteAllText(filepath, jsonResult);

Console.WriteLine($"Axe scan result saved to: {filepath}");

Générer un rapport HTML et un résumé

Générez un rapport HTML pour les scans ciblés en utilisant mobile: axeGenerateHtmlReportAndSummary. L'ajout de cette commande d'exécution produit un rapport HTML agrégé unique et un résumé pour tous les scans collectés depuis le début de la session, et le pilote le récupère de l'appareil vers un répertoire local - axeHtmlReportPath. Le répertoire par défaut est build/AxeDevToolsMobileResults pour Android ou ~/AxeDevToolsMobileResults/<UUID> pour iOS, mais vous pouvez définir un chemin de sortie personnalisé (par exemple ./reports/accessibility) si vous le souhaitez. Le nom de fichier de rapport par défaut est AxeAccessibilityReport, mais celui-ci est également modifiable. Consultez le troisième bloc dans le snippet JavaScript suivant :

// 1. Authenticate once for the session
await driver.executeScript('mobile: axeStartSession', [{
  apiKey: 'DEQUE_APIKEY',
  axeAccountURL: 'https://axe.deque.com',
}]);

// 2. Run targeted scans across the screens you care about
await driver.executeScript('mobile: axeScan', [{ scanName: 'Login screen' }]);
// ...navigate...
await driver.executeScript('mobile: axeScan', [{ scanName: 'Checkout screen' }]);

// 3. Generate a single aggregated HTML report + summary for the session
const result = await driver.executeScript('mobile: axeGenerateHtmlReportAndSummary', [{
  axeHtmlReportPath: './reports/accessibility', // optional (local dir)
  scanName: 'My Session Report',                // optional
}]);

// result.localDirectory -> local directory the report was saved into
// result.reportFiles    -> generated report file path(s) on the device

Pour voir l'implémentation de axeGenerateHtmlReportAndSummary dans d'autres langages de programmation, vous pouvez vous référer à des exemples d'automatisation complète pour UIAutomator2 et XCUITest.