Ejemplo de 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

Pruebe su aplicación iOS para detectar problemas de accesibilidad en dispositivos de Perfecto.

Not for use with personal data

Ejecute sus pruebas de IU en Perfecto para obtener una comprensión integral del estado de accesibilidad de su aplicación en todos los dispositivos.

Requiere:

  • Perfecto Enterprise Private Cloud

Prerrequisitos

  1. Sus pruebas de UI están integradas con axe DevTools Mobile para iOS. Si es necesario, consulte nuestra guía de inicio.
  2. Prepare su aplicación para su distribución. Dado que usted realizará pruebas en Perfecto con dispositivos reales, tener la aplicación y los objetivos de prueba de UI aprovisionados da como resultado un proceso más fluido.
  3. Instale Gradle.

Proyecto de ejemplo

¿Busca un ejemplo? Nuestro proyecto iOS de muestra tiene una integración lista para probar.

  1. Verifique que tenga los prerrequisitos.

  2. Descargue el proyecto de muestra de Github

  3. Abra el archivo del proyecto Xcode para agregar su equipo de desarrollo a la aplicación y los objetivos de UITest para el aprovisionamiento

  4. Agregue su clave API de axe DevTools for Mobile a Login.swift

  5. Ajuste los valores en las siguientes ubicaciones para que coincidan con su nube Perfecto:

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - Revise los valores cloudURL, securityToken y deviceName:
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. Abra una ventana de Terminal, ingrese cd y luego arrastre y suelte axe-devtools-ios-sample-app desde el Finder a la ventana de Terminal. Presione retorno/enter.

  7. En la misma ventana, escriba sh perfecto.sh. Presione retorno/enter.

Hay tres archivos en el proyecto de muestra utilizado para la integración de Perfecto: perfecto.sh, configFile.json y build.gradle.

Integra Perfecto a tu prueba XCUI

Configuración

Nota: Se espera que los tres archivos estén en la raíz de su proyecto.

  1. Crea un script de shell para orquestar la ejecución de pruebas en la plataforma de Perfecto. Asegúrese de ajustar los valores de APP_LOCATION, APP_NAME y CLOUDNAME para que coincidan con su aplicación y la nube de 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. Agregue su archivo Gradle, build.gradle. Asegúrese de actualizar la última sección para que coincida con los valores de su aplicación.

    // 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. Agregue el JSON de configuración de Perfecto y revise los valores cloudURL, securityToken, appPath, testAppPath y deviceName para que coincidan con su autenticación de Perfecto, la aplicación y el UUID del dispositivo real disponible.

    Lo anterior build.gradle está buscando un archivo de configuración llamado configFile.json ; asegúrese de actualizarlo si usa un nombre diferente.

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

Ejecutar

Una vez configurado su proyecto, ejecute el script de shell para ejecutar una prueba en su nube Perfecto.

Verificar localmente:

  1. Abra su proyecto en la Terminal.
  2. Escriba sh perfecto.sh y presione Intro.
  3. Abra el análisis de pruebas de Perfecto Cloud para consultar su último informe.

Enlaces útiles: