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

Prueba tu aplicación iOS para detectar problemas de accesibilidad en dispositivos de Perfecto.

Not for use with personal data

Ejecuta tus pruebas de UI en Perfecto para obtener una comprensión completa del estado de accesibilidad de tu aplicación en diferentes dispositivos.

Requisitos:

  • Perfecto Enterprise Private Cloud

Requisitos previos

  1. Tus pruebas de UI están integradas con Axe DevTools Mobile para iOS. Consulta nuestra guía de introducción si es necesario.
  2. Prepara tu aplicación para distribución. Dado que probarás en Perfecto con dispositivos reales, tener la aplicación y los objetivos de prueba de UI aprovisionados resulta en un proceso más fluido.
  3. Instala Gradle.

Proyecto de ejemplo

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

  1. Verifica que tienes los requisitos previos.

  2. Descarga el proyecto de muestra de Github

  3. Abre el archivo del proyecto Xcode para añadir tu equipo de desarrollo a los objetivos de la aplicación y UITest para el aprovisionamiento

  4. Agrega tu clave de API de Axe DevTools para Mobile a Login.swift

  5. Ajusta los valores en las siguientes ubicaciones para que coincidan con tu nube de Perfecto:

    • perfecto.sh
    CLOUDNAME="<<perfecto-cloud-name>>"
    • configFile.json - Revisa los valores cloudURL, securityToken y deviceName:
    {
      "cloudURL": "<<perfecto-cloud-name>>",
      "securityToken": "<<security-token>>",
      ...
      "devices": [
        {
          "deviceName": "00005302-BF389EDED8B22DBD"
        }
      ],
      ...
    }
  6. Abre una ventana de Terminal, ingresa cd y luego arrastra y suelta el axe-devtools-ios-sample-app desde Finder a la ventana del Terminal. Presiona return/enter.

  7. En la misma ventana, escribe sh perfecto.sh. Presiona return/enter.

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

Agregar Perfecto a Tu Prueba XCUI

Configuración

Nota: Los tres archivos esperan estar en la raíz de tu proyecto.

  1. Crea un script de shell para orquestar la ejecución de pruebas en la plataforma de Perfecto. Asegúrate de ajustar los valores de APP_LOCATION, APP_NAME y CLOUDNAME para que coincidan con tu 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. Agrega tu archivo de Gradle, build.gradle. Asegúrate de actualizar la última sección para que coincida con los valores de tu 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. Agrega el JSON de configuración de Perfecto y revisa los valores cloudURL, securityToken, appPath, testAppPath y deviceName para que coincidan con tu autenticación de Perfecto, aplicación y UUID de dispositivo real disponible.

    El build.gradle anterior está buscando un archivo de configuración llamado configFile.json - asegúrate de actualizarlo si usas 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"
    }

Ejecución

Una vez que tu proyecto esté configurado, ejecuta el script de shell para realizar una prueba en tu nube de Perfecto.

Verificar localmente:

  1. Abre tu proyecto en el Terminal.
  2. Escribe sh perfecto.sh y presiona enter.
  3. Abre el Análisis de Pruebas de tu Nube de Perfecto para ver tu último informe.

Enlaces útiles: