Perfecto mit XCUITest-Beispiel

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

Testen Sie Ihre iOS-App auf Barrierefreiheitsprobleme auf Geräten von Perfecto.

Not for use with personal data

Führen Sie Ihre UI-Tests auf Perfecto aus, um einen umfassenden Überblick über die Zugänglichkeit Ihrer App auf allen Geräten zu erhalten.

Erfordert:

  • Perfecto Enterprise Private Cloud

Voraussetzungen

  1. Ihre UI-Tests sind in axe DevTools Mobile für iOS integriert. Sehen Sie sich unsere Anleitung für die ersten Schritte an, falls nötig.
  2. Bereiten Sie Ihre App für die Verteilung vor. Da Sie auf Perfecto mit echten Geräten testen, sorgt die Bereitstellung der App- und UI-Testziele für einen reibungsloseren Ablauf.
  3. Installieren Sie Gradle.

Beispielprojekt

Suchen Sie ein Beispiel? Unser iOS-Beispielprojekt verfügt über eine testbereite Integration.

  1. Überprüfen Sie, ob Sie die Voraussetzungen erfüllen.

  2. Laden Sie das herunter Beispielprojekt von Github

  3. Öffnen Sie die Xcode-Projektdatei, um Ihr Entwicklungsteam zur App und zu UITest-Targets für die Provisionierung hinzuzufügen.

  4. Fügen Sie Ihren axe DevTools for Mobile API-Schlüssel zu Login.swift hinzu

  5. Passen Sie die Werte an den folgenden Stellen an, damit sie zu Ihrer Perfecto-Cloud passen:

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - Überprüfen Sie die Werte cloudURL, securityToken und deviceName:
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. Öffnen Sie ein Terminalfenster, geben Sie cd ein und ziehen Sie dann axe-devtools-ios-sample-app per Drag & Drop aus dem Finder in das Terminalfenster. Drücken Sie die Eingabetaste.

  7. Geben Sie im selben Fenster sh perfecto.sh ein. Drücken Sie die Eingabetaste.

Im Beispielprojekt, das für die Perfecto-Integration verwendet wird, gibt es drei Dateien: perfecto.sh, configFile.json und build.gradle.

Fügen Sie Perfecto zu Ihrem XCUI-Test hinzu

Einrichtung

Hinweis: Alle drei Dateien sollten sich im Stammverzeichnis Ihres Projekts befinden.

  1. Erstellen Sie ein Shell-Skript, um die Ausführung von Tests auf der Perfecto-Plattform zu orchestrieren. Passen Sie die Werte für APP_LOCATION, APP_NAME und CLOUDNAME unbedingt an Ihre Anwendung und Perfecto-Cloud an.

    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. Fügen Sie Ihre Gradle-Datei hinzu build.gradle. Aktualisieren Sie unbedingt den letzten Abschnitt, damit er den Werten Ihrer Anwendung entspricht.

    // 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. Fügen Sie die JSON-Konfigurationsdatei von Perfecto hinzu und überprüfen Sie die Werte cloudURL, securityToken, appPath, testAppPath und deviceName , um sie an Ihre Perfecto-Authentifizierung, Anwendung und die verfügbare UUID des realen Geräts anzupassen.

    Oben build.gradle wird nach einer Konfigurationsdatei mit dem Namen configFile.json gesucht. Aktualisieren Sie sie unbedingt, wenn Sie einen anderen Namen verwenden.

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

Ausführen

Sobald Ihr Projekt eingerichtet ist, führen Sie das Shell-Skript aus, um einen Test in Ihrer Perfecto-Cloud auszuführen.

Überprüfen Sie lokal:

  1. Öffnen Sie Ihr Projekt im Terminal.
  2. Geben Sie sh perfecto.sh ein und drücken Sie die Eingabetaste.
  3. Öffnen Sie die Testanalyse Ihrer Perfecto Cloud, um Ihren neuesten Bericht anzuzeigen.