Esempio di Perfecto con 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

Verifica la presenza di problemi di accessibilità nella tua app iOS sui dispositivi Perfecto.

Not for use with personal data

Esegui i tuoi test dell'interfaccia utente su Perfecto per ottenere una panoramica completa dello stato di accessibilità della tua app su tutti i dispositivi.

Richiede:

  • Perfecto Enterprise Nuvola Privata

Prerequisiti

  1. I test dell'interfaccia utente sono integrati con axe DevTools Mobile per iOS. Se necessario, consulta la nostra guida introduttiva .
  2. Prepara la tua app per la distribuzione. Poiché eseguirai i test su Perfecto con dispositivi reali, avere l'app e gli obiettivi di test dell'interfaccia utente provisionati renderà il processo più fluido.
  3. Installa Gradle.

Progetto di esempio

Cerchi un esempio? Il nostro progetto iOS di esempio ha un'integrazione pronta per essere testata.

  1. Verifica di possedere i prerequisiti.

  2. Scarica il progetto di esempio da Github

  3. Apri il file di progetto Xcode per aggiungere il tuo team di sviluppo all'app e ai target UITest per il provisioning

  4. Aggiungi la tua chiave API axe DevTools for Mobile a Login.swift

  5. Adatta i valori nelle seguenti posizioni in modo che corrispondano al tuo cloud Perfecto:

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - Rivedi i valori cloudURL, securityToken e deviceName:
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. Apri una finestra del Terminale, digita cd, quindi trascina e rilascia axe-devtools-ios-sample-app dal Finder nella finestra del Terminale. Premi invio.

  7. Nella stessa finestra, digitare sh perfecto.sh. Premi invio.

Nel progetto di esempio utilizzato per l'integrazione di Perfecto sono presenti tre file: perfecto.sh, configFile.json e build.gradle.

Aggiungi Perfecto al tuo test XCUI

Configurazione

Nota: tutti e tre i file devono trovarsi nella radice del progetto.

  1. Crea uno script shell per orchestrare l'esecuzione dei test sulla piattaforma Perfecto. Assicurati di adattare i valori per APP_LOCATION, APP_NAME e CLOUDNAME in modo che corrispondano alla tua applicazione e al 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. Aggiungi il tuo file Gradle, build.gradle. Assicurati di aggiornare l'ultima sezione in modo che corrisponda ai valori della tua applicazione.

    // 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. Aggiungi il file JSON di configurazione di Perfecto e rivedi i valori cloudURL, securityToken, appPath, testAppPath e deviceName affinché corrispondano all'autenticazione Perfecto, all'applicazione e all'UUID del dispositivo reale disponibile.

    Il precedente build.gradle sta cercando un file di configurazione denominato configFile.json : assicurati di aggiornarlo se utilizzi un nome diverso.

    {
      "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"
    }

Esegui

Una volta impostato il progetto, esegui lo script shell per eseguire un test sul tuo cloud Perfecto.

Verificare localmente:

  1. Apri il tuo progetto nel Terminale.
  2. Digita sh perfecto.sh e premi Invio.
  3. Apri l'analisi dei test di Perfecto Cloud per consultare il report più recente.