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

Test je iOS-app op toegankelijkheidsproblemen op apparaten van Perfecto.

Not for use with personal data

Voer je UI-tests uit op Perfecto om een volledig begrip te krijgen van de toegankelijkheid van je app op verschillende apparaten.

Vereist:

  • Perfecto Enterprise Private Cloud

Vereisten

  1. Je UI-tests zijn geïntegreerd met axe DevTools Mobile voor iOS. Bekijk onze startgids indien nodig.
  2. Bereid je app voor op distributie. Aangezien je met echte apparaten op Perfecto gaat testen, zorgt het provisioneren van de app en UI-testdoelen voor een soepeler proces.
  3. Installeer Gradle.

Voorbeeldproject

Op zoek naar een voorbeeld? Ons Sample iOS Project heeft een integratie die klaar is om te testen.

  1. Verifieer dat je aan de vereisten voldoet.

  2. Download het voorbeeldproject van Github

  3. Open het Xcode-projectbestand om je ontwikkelteam toe te voegen aan de app- en UITest-doelen voor provisioning.

  4. Voeg je axe DevTools voor Mobile API-sleutel toe aan Login.swift

  5. Pas de waarden aan op de volgende locaties zodat ze overeenkomen met je Perfecto-cloud:

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - Controleer de waarden cloudURL, securityToken, en deviceName:
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. Open een Terminal-venster, voer in cd , en sleep vervolgens de axe-devtools-ios-sample-app van Finder naar het Terminal-venster. Druk op return/enter.

  7. Typ in hetzelfde venster sh perfecto.sh. Druk op return/enter.

Er zijn drie bestanden in het voorbeeldproject die worden gebruikt voor Perfecto-integratie: perfecto.sh, configFile.json, en build.gradle.

Voeg Perfecto toe aan je XCUI-test

Setup

Opmerking: Alle drie de bestanden moeten in de hoofdmap van je project staan.

  1. Maak een shell-script om de uitvoering van tests op het Perfecto-platform te coördineren. Zorg ervoor dat je de waarden voor APP_LOCATION, APP_NAME en CLOUDNAME aanpast zodat ze overeenkomen met je applicatie en Perfecto-cloud.

    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. Voeg je Gradle-bestand toe, build.gradle. Zorg ervoor dat je het laatste gedeelte bijwerkt zodat het overeenkomt met de waarden van je applicatie.

    // 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. Voeg Perfecto's configuratie JSON toe en controleer de waarden cloudURL, securityToken, appPath, testAppPath en deviceName om overeen te komen met uw Perfecto-authenticatie, applicatie en beschikbare UUID van het echte apparaat.

    Het bovenstaande build.gradle zoekt naar een configuratiebestand genaamd configFile.json - zorg ervoor dat u het bijwerkt als u een andere naam gebruikt.

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

Uitvoeren

Zodra uw project is ingesteld, voert u het shell-script uit om een test op uw Perfecto-cloud uit te voeren.

Controleer lokaal:

  1. Open uw project in de Terminal.
  2. Typ sh perfecto.sh en druk op enter.
  3. Open de Testanalyse van uw Perfecto Cloud om uw meest recente rapport te bekijken.