Domande Frequentemente Poste

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

Android

Perché l'app ha bisogno di autorizzazioni aggiuntive?

Quando configuri l'applicazione per la prima volta, ti verrà chiesto di concedere ad axe DevTools Mobile Analyzer l'autorizzazione per le impostazioni di sovrapposizione del disegno e di accessibilità. Disegno sovrapposto consente al pulsante di azione fluttuante di seguirti indipendentemente dall'app aperta sul tuo dispositivo. Le impostazioni di accessibilità consentono all'app dell'analizzatore di accedere alle informazioni di visualizzazione all'interno dell'applicazione che si sta tentando di analizzare.

Posso impostare test automatizzati senza autenticazione?

La build ottimizzata per la tua pipeline di automazione non richiede alcuna richiesta di rete al servizio axe DevTools Mobile. Pertanto, queste configurazioni di build sono disponibili solo tramite Deque's Artifactory.

Si prega di notare che questa build è un sottoinsieme delle funzionalità di axeDevTools Mobile per Android. Per utilizzare tutte le funzionalità, incluso l'invio dei risultati alla dashboard, utilizzi il nostro framework completo. Fare riferimento alla guida introduttiva.

Configurazione

Durante la navigazione nella documentazione, tieni presente che non tutte le funzionalità che richiedono l'interazione con il server sono disponibili in questa build ottimizzata.

important

Lista di controllo per iniziare:

  • Richiede: Android API 26 o superiore
  • Connettiti a Artifactory per importare il framework.
Configurazione per i test

Nel file build.gradle dell'applicazione, aggiungere:

androidTestImplementation 'com.deque.android.no-auth:axe-devtools-android:7.0.1'

e

android {
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/AL2.0' 
        exclude 'META-INF/LGPL2.1'
    }
}
Esempio di Espresso Test

Si noti che axe.loginWithUsername(...) and axe.loginWithApiKey(...) [missing content] non sono disponibili in questa versione della libreria e dovrebbero essere rimossi dal codice di installazione se si esegue la conversione utilizzando la versione autenticata.

Indipendente dal layout
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
    @Rule    
    @JvmField    
    var rule: ActivityScenarioRule<MainActivity> = ActivityScenarioRule(MainActivity::class.java)

    companion object {
        private val axe = AxeDevTools()
        axe.setInstrumenation(InstrumentationRegistry.getInstrumentation())
    }

    @Test    
    fun exampleTest() {
        onView(withText("Example Button Name")).perform(click())
    }

    @After    
    fun runAccessibilityScan() {
        val scan = axe.scan()
        val result = scan?.getSerializedResult()

        axe.tearDown()   
    }
}

iOS

Cos'è un identificatore di bundle?

Un identificatore di bundle è un identificatore univoco all'interno dell'ecosistema Apple per l'identificazione delle applicazioni. Non è possibile che due applicazioni abbiano lo stesso identificatore. Ciò include una build beta o altre varianti di un'applicazione. axe DevTools Mobile utilizza l'identificatore del bundle per connettersi e interrogare le informazioni sull'accessibilità degli elementi dell'interfaccia utente dell'applicazione in fase di test.

tip

Hai bisogno di testare un'app dall'App Store? Possiamo recuperare per te l'identificatore del bundle. Cerca la scheda dell'App Store della tua applicazione da un browser web e usala per trovare l'ID bundle della tua app.

A cosa ha accesso l'applicazione Runner installata?

Solo l'applicazione con cui hai specificato di comunicare, aggiungendo il Bundle Identifier nei passaggi di configurazione. Apple è davvero brava in fatto di sicurezza e utilizza un ambiente di sandbox per ogni applicazione installata sul tuo dispositivo, indipendentemente da come è stata installata (Testflight, Xcode o App Store). L'applicazione di analisi utilizza la funzionalità UI Test integrata nell'ecosistema Xcode/Apple. Si tratta di una comunicazione chiusa per comunicare con un'applicazione tramite l'identificativo del bundle specificato nel file di configurazione.

Errori comuni e correzioni

Se durante il test si verifica un errore/Test non riuscito, questa sezione evidenzierà i messaggi di errore più comuni e come risolverli. Seleziona l'icona rossa a forma di diamante "x" e Xcode aprirà il pannello "Issue Navigator" sulla sinistra per evidenziare il messaggio di errore specifico.

  • Cannot request screenshot data because it does not exist: Questo è il messaggio di errore che probabilmente riceverai alla prima esecuzione. Esegui nuovamente il test per vedere se il problema si risolve. Se questo errore si verifica una seconda volta, assicurati di avere impostato l'identificativo del bundle corretto e che l'applicazione da testare sia aperta sul simulatore/dispositivo selezionato.

  • caught error: “couldNotVerifyUser”: Accesso con Deque non riuscito. Verifica che la tua chiave API sia stata aggiunta al file di installazione e che sia valida per axe DevTools Mobile visitando Impostazioni account axe.

Posso impostare test automatizzati senza autenticazione?

La build ottimizzata per la tua pipeline di automazione non richiede alcuna richiesta di rete al servizio axe DevTools Mobile. Pertanto, queste configurazioni di build sono disponibili solo tramite Deque's Artifactory.

Si prega di notare che questa build è un sottoinsieme delle funzionalità di axeDevToolsXCUI. Per utilizzare tutte le funzionalità, incluso la trasmissione dei risultati alla dashboard, utilizza il nostro framework axeDevToolsXCUI. Fare riferimento alla guida all'installazione.

Configurazione

  1. Importare il framework in qualsiasi file utilizzato per i test di accessibilità.
import axeDevToolsXCUI_noauth
  1. Crea un oggetto all'interno della tua classe di test per contenere l'istanza di axe DevTools:
var axeDevTools: AxeDevTools?
  1. Inizializzare il framework all'interno dei metodi setUp o setUpWithError .
axeDevTools = AxeDevTools.login()
Esempio di configurazione completa

import axeDevToolsXCUI_noauth
import XCTest

class MyUITests: XCTestCase {

    var axeDevTools: AxeDevTools?

    override func setUpWithError() throws {
        axeDevTools = AxeDevTools.login()
    }
    ...
}

Test dell'interfaccia utente

Per iniziare il test, passa qualsiasi elemento XCUIElement al framework per eseguire test di accessibilità su di esso e sui suoi elementi figlio.

let result = try axeDevTools.run(onElement: XCUIApplication())
Esempio completo
import XCTest
import axeDevToolsXCUI_noauth

final class XCUI_noAuthUITest: XCTestCase {
    var axeDevTools: AxeDevTools = AxeDevTools.login()

    override func setUpWithError() throws {
        continueAfterFailure = false
    }

    func testExample() throws {
        let app = XCUIApplication()
        app.launch()

        let result = try axeDevTools.run(onElement: app)
        // Do something with the result
    }
}

Cosa segue

Ti forniamo i dati e gli strumenti per creare un flusso di lavoro CI/CD utile al tuo team. Ecco alcuni suggerimenti su cosa fare con quell'oggetto risultato:

  1. Fai fallire la build se vengono rilevati degli errori. Se hai una schermata che è già stata pulita dai problemi di accessibilità, potresti voler assicurarti che non se ne insorgano di nuovi nel ciclo di sviluppo verificando che il conteggio sia 0 e, in caso contrario, facendo fallire il controllo dello stato della pull request.
// Add an assertion to fail the build if issues were found
XCTAssertTrue(result.failures.count > 0)
  1. Salva i risultati localmente per creare un report mirato dei problemi riscontrati nel ramo. Scopri come creare un report con il nostro Reporter CLI per pipeline CICD. Questo può essere davvero utile per i rami beta o candidati alla release, per sensibilizzare sui potenziali ostacoli che i clienti che utilizzano tecnologie assistive potrebbero incontrare.