Foire aux questions

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

Pourquoi l'application a-t-elle besoin d'autorisations supplémentaires ?

Lors de la configuration de l'application pour la première fois, vous serez invité à accorder à axe DevTools Mobile Analyzer l'autorisation d'afficher des superpositions et d'accéder aux paramètres d'accessibilité. La superposition de dessin permet au bouton d'action flottant de vous suivre quelle que soit l'application ouverte sur votre appareil. Les paramètres d'accessibilité permettent à l'application d'analyse d'accéder aux informations de vue dans l'application que vous essayez d'analyser.

Puis-je configurer des tests automatisés sans authentification ?

La version optimisée pour votre pipeline d'automatisation ne nécessite aucune requête réseau au service axe DevTools Mobile. Ces configurations de construction ne sont disponibles que via Deque's Artifactory.

Veuillez noter que ce build est un sous-ensemble de fonctionnalités d'axeDevTools Mobile pour Android. Pour utiliser l'ensemble des fonctionnalités, y compris l'envoi des résultats vers le tableau de bord, veuillez utiliser notre framework complet. Reportez-vous au guide de démarrage.

Configuration

Lors de la navigation dans la documentation, veuillez noter que pas toutes les fonctionnalités qui nécessitent une interaction avec le serveur ne sont pas disponibles dans cette version optimisée.

important

Liste de contrôle de démarrage :

  • Nécessite : Android API 26 ou supérieur
  • Connectez-vous à Artifactory pour intégrer le framework.
Configuration pour les tests

Dans le fichier build.gradle de l'application, ajoutez :

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

et

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

Notez que les [missing term] axe.loginWithUsername(...) and axe.loginWithApiKey(...) ne sont pas disponibles dans cette version de la bibliothèque et doivent être supprimés du code d'installation si vous effectuez une conversion à partir de la version authentifiée.

Indépendant de la mise en page
@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

Qu'est-ce qu'un identifiant de bundle ?

Un identifiant de bundle est un identifiant unique au sein de l'écosystème d'Apple pour l'identification des applications. Aucune application ne peut avoir le même identifiant. Cela inclut une version bêta ou d'autres variantes d'une application. axe DevTools Mobile utilise l'identifiant du bundle pour se connecter et interroger les informations d'accessibilité des vues de l'application testée.

tip

Besoin de tester une application de l'App Store ? Nous pouvons récupérer l'identifiant du bundle pour vous. Recherchez la liste de votre application dans l'App Store à partir d'un navigateur Web et utilisez-la pour trouver l'ID de bundle de votre application.

À quoi l'application Runner installée a-t-elle accès ?

Seule l'application avec laquelle vous avez spécifié de communiquer, en ajoutant l'identifiant de bundle dans les étapes de configuration, est concernée. Apple est vraiment très doué en matière de sécurité et utilise un environnement sandbox pour chaque application que vous avez installée sur votre appareil, quelle que soit la manière dont cette application a été installée (Testflight, Xcode ou App Store). L'application d'analyse utilise la fonctionnalité de test d'interface utilisateur intégrée à l'écosystème Xcode/Apple. Il s'agit d'une communication en circuit fermé permettant de communiquer avec une application via l'identifiant de bundle que vous avez spécifié dans le fichier d'installation.

Erreurs courantes et solutions

Si vous obtenez une erreur / un échec de test pendant le test, cette section mettra en évidence les messages d'erreur courants et comment les résoudre. Sélectionnez l'icône « x » rouge en forme de losange et Xcode ouvrira le panneau « Issue Navigator » sur la gauche pour mettre en évidence le message d'erreur spécifique.

  • Cannot request screenshot data because it does not exist : Il s'agit du message d'erreur que vous êtes susceptible d'obtenir lors de la première exécution. Exécutez à nouveau le test pour voir si le problème est résolu. Si cette erreur apparaît une deuxième fois, assurez-vous que vous disposez du bon identifiant de bundle et que l'application à tester est ouverte sur le simulateur/appareil sélectionné.

  • caught error: “couldNotVerifyUser” : La connexion avec Deque a échoué. Vérifiez que votre clé API a été ajoutée au fichier d'installation et qu'elle est valide pour axe DevTools Mobile en visitant Paramètres du compte axe.

Puis-je préparer des tests automatisés sans authentification ?

La version optimisée pour votre pipeline d'automatisation ne nécessite aucune requête réseau au service axe DevTools Mobile. Ces configurations de construction ne sont disponibles que via Deque's Artifactory.

Veuillez noter que ce build est un sous-ensemble de fonctionnalités dans axeDevToolsXCUI. Pour utiliser l'ensemble complet des fonctionnalités, y compris l'envoi des résultats vers le tableau de bord, veuillez utiliser notre framework axeDevToolsXCUI. Reportez-vous au guide d'installation.

Configuration

  1. Importez le framework dans n’importe quel fichier utilisé pour les tests d’accessibilité.
import axeDevToolsXCUI_noauth
  1. Créez un objet dans votre classe de test pour conserver l'instance axe DevTools :
var axeDevTools: AxeDevTools?
  1. Initialisez le framework dans les méthodes setUp ou setUpWithError .
axeDevTools = AxeDevTools.login()
Exemple de configuration complète

import axeDevToolsXCUI_noauth
import XCTest

class MyUITests: XCTestCase {

    var axeDevTools: AxeDevTools?

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

Tests d'interface utilisateur

Pour commencer les tests, transmettez n'importe quel XCUIElement élément au framework pour exécuter des tests d'accessibilité sur lui et ses enfants.

let result = try axeDevTools.run(onElement: XCUIApplication())
Exemple complet
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
    }
}

Et ensuite ?

Nous vous fournissons les données et les outils pour créer un workflow CI/CD qui aide votre équipe. Voici quelques suggestions sur ce qu'il faut faire avec cet objet de résultat :

  1. Interrompez la compilation si des échecs ont été détectés. Si vous avez un écran qui a déjà été débarrassé des problèmes d'accessibilité, vous souhaiterez peut-être vous assurer qu'aucun nouveau problème n'apparaît dans le cycle de développement en affirmant que le nombre est de 0 et en faisant échouer la vérification de l'état de la pull request si ce n'est pas le cas.
// Add an assertion to fail the build if issues were found
XCTAssertTrue(result.failures.count > 0)
  1. Enregistrer les résultats localement pour créer un rapport ciblé des problèmes détectés dans la branche. Découvrez la création d'un rapport avec notre Reporter CLI pour les pipelines CICD. Cela peut être très utile pour les branches de candidats à la publication ou bêta afin de sensibiliser les clients utilisant des technologies d'assistance aux obstacles potentiels auxquels ils peuvent être confrontés.