Exemple de 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 vue d'ensemble de l'état d'accessibilité de votre application sur tous les appareils.

nécessite :

  • Cloud Privé d'Entreprise Perfecto

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. Étant donné que vous effectuerez des tests sur Perfecto avec de vrais appareils, le fait que les cibles de test de l'application et de l'interface utilisateur soient préparées et équipées se traduit par un processus plus fluide.
  3. Installez Gradle.

Exemple de projet

Vous cherchez un exemple ? Notre exemple de projet iOS dispose d'une intégration prête à être testée.

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

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

  3. Ouvrez le fichier de projet Xcode pour ajouter votre équipe de développement à l'application et aux cibles UITest pour le provisionnement

  4. Ajoutez votre clé API axe DevTools for Mobile à Login.swift

  5. Ajustez les valeurs aux emplacements suivants pour qu'elles correspondent à votre cloud Perfecto :

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - Vérifiez les valeurs cloudURL, securityToken et deviceName :
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. Ouvrez une fenêtre Terminal, entrez cd , puis faites glisser et déposez le fichier du Finder dans la fenêtre Terminal. axe-devtools-ios-sample-app 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 l'exemple de projet utilisé pour l'intégration Perfecto : perfecto.sh, configFile.json et build.gradle.

Ajoutez Perfecto à votre test XCUI

Configuration

Remarque : les trois fichiers devraient se trouver à la racine de votre projet.

  1. Créez un script shell pour orchestrer l'exécution des tests sur la plateforme Perfecto. Assurez-vous d'ajuster les valeurs de APP_LOCATION, APP_NAME et CLOUDNAME pour qu'elles correspondent à 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 qu'elle corresponde 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 vérifiez les valeurs cloudURL, securityToken, appPath, testAppPath et deviceName pour qu'elles correspondent à votre authentification Perfecto, à votre application et à l'UUID de l'appareil réel disponible.

    Ce qui précède build.gradle recherche un fichier de configFile.json configuration nommé - 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écuter

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

Vérifier localement :

  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 Perfecto Cloud pour consulter votre dernier rapport.

Liens utiles :