Perfecto mit 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

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

Not for use with personal data

Führen Sie Ihre UI-Tests auf Perfecto aus, um ein umfassendes Verständnis der Barrierefreiheit Ihrer App auf verschiedenen Geräten zu erhalten.

Erforderlich:

  • Perfecto Enterprise Private Cloud

Voraussetzungen

  1. Ihre UI-Tests sind mit Axe DevTools Mobile für iOS integriert. Sehen Sie sich unser Einsteigerhandbuch an, falls benötigt.
  2. Bereiten Sie Ihre App für die Verteilung vor. Da Sie auf Perfecto mit echten Geräten testen werden, führt die Bereitstellung der App und der UI-Test-Ziele zu einem reibungsloseren Prozess.
  3. Installieren Sie Gradle.

Beispielprojekt

Suchen Sie ein Beispiel? Unser iOS-Beispielprojekt ist zur Integration bereit für Tests.

  1. Überprüfen Sie, dass Sie die Voraussetzungen haben.

  2. Laden Sie das Beispielprojekt von Github herunter

  3. Öffnen Sie die Xcode-Projektdatei, um Ihr Entwicklungsteam den App- und UITest-Zielen zur Bereitstellung hinzuzufügen.

  4. Fügen Sie Ihren Axe DevTools für Mobile-API-Schlüssel zu Login.swift hinzu

  5. Passen Sie die Werte an den folgenden Stellen an, um mit Ihrem Perfecto-Cloud übereinzustimmen:

    • 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 aus dem Finder in das Terminalfenster. Drücken Sie Return/Enter.

  7. Geben Sie im selben Fenster sh perfecto.sh ein. Drücken Sie Return/Enter.

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

Integrieren Sie Perfecto in Ihren XCUI-Test

Einrichtung

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

  1. Erstellen Sie ein Shell-Skript, um Tests auf Perfectos-Plattform zu orchestrieren. Stellen Sie sicher, dass Sie die Werte für APP_LOCATION, APP_NAME und CLOUDNAME an Ihre Anwendung und die Perfecto-Cloud anpassen.

    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, build.gradle, hinzu. Aktualisieren Sie den letzten Abschnitt so, dass 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 Perfecto-Konfigurations-JSON hinzu und überprüfen Sie die Werte cloudURL, securityToken, appPath, testAppPath und deviceName, um mit Ihrer Perfecto-Authentifizierung, Anwendung und verfügbarer realer Geräte-UUID übereinzustimmen.

    Die obige build.gradle sucht eine Konfigurationsdatei mit dem Namen configFile.json - stellen Sie sicher, dass Sie sie aktualisieren, 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.

Lokal überprüfen:

  1. Öffnen Sie Ihr Projekt im Terminal.
  2. Geben Sie sh perfecto.sh ein und drücken Sie Enter.
  3. Öffnen Sie die Testanalyse Ihrer Perfecto-Cloud, um Ihren letzten Bericht zu überprüfen.