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 gebruikerstests 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 de 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 cd in 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 dat wordt 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 shellscript om tests op het Perfecto-platform uit te voeren. 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 om overeen te komen 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 de configuratiebestand JSON van Perfecto toe en controleer de waarden cloudURL, securityToken, appPath, testAppPath en deviceName zodat ze overeenkomen met je Perfecto-authenticatie, applicatie en beschikbare echte apparaat-UUID.

    Bovengenoemde build.gradle zoekt naar een configuratiebestand genaamd configFile.json. Zorg ervoor dat je het bijwerkt als je 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.