Perfecto avec XCUITest

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

Testez votre application iOS pour détecter les problèmes d'accessibilité sur les appareils de Perfecto.

Not for use with personal data

Exécutez vos tests d'interface utilisateur sur Perfecto pour obtenir une compréhension complète de la santé de l'accessibilité de votre application sur différents appareils.

Exigences :

  • Perfecto Enterprise Private Cloud

Prérequis

  1. Vos tests d'interface utilisateur sont intégrés à Axe DevTools Mobile pour iOS. Consultez notre guide de démarrage si nécessaire.
  2. Préparez votre application pour la distribution. Puisque vous allez tester sur Perfecto avec de vrais appareils, avoir l'application et les cibles de test d'interface utilisateur provisionnées rend le processus plus fluide.
  3. Installez Gradle.

Projet Exemple

Vous cherchez un exemple ? Notre projet iOS d'exemple est prêt pour les tests.

  1. Vérifiez que vous avez les prérequis.

  2. Téléchargez le projet exemple depuis Github

  3. Ouvrez le fichier projet Xcode pour ajouter votre équipe de développement aux cibles de l'application et des tests d'interface utilisateur pour le provisionnement.

  4. Ajoutez votre clé API Axe DevTools pour Mobile à Login.swift

  5. Ajustez les valeurs aux emplacements suivants pour correspondre à votre cloud Perfecto :

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - Passez en revue les valeurs cloudURL, securityToken, et deviceName :
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. Ouvrez une fenêtre Terminal, saisissez cd , puis faites glisser et déposez le axe-devtools-ios-sample-app de Finder dans la fenêtre du Terminal. Appuyez sur retour/entrée.

  7. Dans la même fenêtre, tapez sh perfecto.sh. Appuyez sur retour/entrée.

Il y a trois fichiers dans le projet exemple utilisés pour l'intégration avec Perfecto : perfecto.sh, configFile.json, et build.gradle.

Ajoutez Perfecto à Votre Test XCUI

Configuration

Remarque : Les trois fichiers sont censés se trouver à la racine de votre projet.

  1. Créez un script shell, pour orchestrer l'exécution des tests sur la plateforme de Perfecto. Assurez-vous d'ajuster les valeurs pour APP_LOCATION, APP_NAME et CLOUDNAME afin de correspondre à votre application et au cloud Perfecto.

    APP_LOCATION="DerivedData/Build/Products/Debug-iphoneos"
    APP_NAME="axe-devtools-ios-sample-app"
    CLOUDNAME="<<perfecto-cloud-name>>"
    
    TOKEN="<<security-token>>"
    JOBNUMBER="<<job-number>>"
    
    rm -rf *.app
    # Prepare app files
    gradle buildForRealDevice
    mv $APP_LOCATION/$APP_NAME.app .
    mv $APP_LOCATION/"$APP_NAME"UITests-Runner.app .
    # Run on Perfecto cloud
    gradle perfecto-xctest -PconfigFileLocation=configFile.json -PcloudURL=$CLOUDNAME.perfectomobile.com -PsecurityToken=$TOKEN -PjobNumber=$JOBNUMBER --stacktrace --debug
    rm -rf DerivedData
  2. Ajoutez votre fichier Gradle, build.gradle. Assurez-vous de mettre à jour la dernière section pour correspondre aux valeurs de votre application.

    // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
    buildscript {
        repositories {
            def flatDirPath = project.hasProperty('flatDirPath') ? project.getProperty('flatDirPath') : ''
            if(flatDirPath != '') {
                flatDir {
                    dirs flatDirPath
                }
            } else {
                maven {
                    url "https://repo1.perfectomobile.com/public/repositories/maven/"
                }
            }
        }
    
        dependencies {
            classpath "com.perfectomobile.instrumentedtest.gradleplugin:plugin:+"
        }
    }
    
    apply plugin: 'com.perfectomobile.instrumentedtest.gradleplugin'
    
    perfectoGradleSettings {
        configFileLocation "configFile.json"
    }
    
    tasks.register('cleanPreviousBuild', Exec) {
        workingDir projectDir
        commandLine "bash", "-c", "rm -fr *.xctestproducts dd"
    }
    
    tasks.register('buildForRealDevice') {
        dependsOn cleanPreviousBuild
        doLast {
            exec {
                commandLine "bash", "-c", "xcodebuild build-for-testing " +
                        " -destination generic/platform='iOS' " +
                        " -configuration Debug" +
                        " -scheme axe-devtools-ios-sample-app" +
                        " -target axe-devtools-ios-sample-appUITests" + 
                        " -sdk iphoneos" + 
                        " -derivedDataPath DerivedData/  -quiet -allowProvisioningUpdates" 
            }
        }
    }
  3. Ajoutez la configuration JSON de Perfecto et passez en revue les valeurs cloudURL, securityToken, appPath, testAppPath et deviceName pour correspondre à votre authentification Perfecto, à votre application et à l'UUID des appareils réels disponibles.

    Le build.gradle ci-dessus cherche un fichier de configuration nommé configFile.json - assurez-vous de le mettre à jour si vous utilisez un nom différent.

    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      "appPath": "axe-devtools-ios-sample-app.app",
      "testAppPath": "axe-devtools-ios-sample-appUITests-Runner.app",
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      "tags": [
        "xcuitest",
        "sample"
      ],
      "projectName": "Axe-XCUITest",
      "projectVersion": "v1-test",
      "jobName": "AXE-XCUITEST-LATEST",
      "jobNumber": 1,
      "branch": "master",
      "failBuildOnFailure": false,
      "installationDetails": {
        "preCleanUp": true,
        "resign": true
      },
      "postExecution": {
        "uninstall": false
      },
      "acquireDeviceRetryNumber": 1,
      "acquireDeviceRetryInterval": 200,
      "debug": true,
      "runUnitTests": true,
      "runUiTests": true,
      "shard": false,
      "takeScreenshotOnTestEnd": true,
      "testTimeout": "60000"
    }

Exécution

Une fois que votre projet est configuré, exécutez le script shell pour lancer un test sur votre cloud Perfecto.

Vérification locale :

  1. Ouvrez votre projet dans le Terminal.
  2. Tapez sh perfecto.sh et appuyez sur entrée.
  3. Ouvrez l'Analyse de Test de votre Cloud Perfecto pour consulter votre dernier rapport.

Liens Utiles :