Preguntas frecuentes

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
Not for use with personal data

Android

¿Por qué la aplicación necesita permisos adicionales?

Al configurar la aplicación por primera vez, se le solicitará que otorgue permiso a axe DevTools Mobile Analyzer para dibujar sobre otras aplicaciones y la configuración de accesibilidad. Dibujar superposición permite que el botón de acción flotante te siga sin importar la aplicación que tengas abierta en tu dispositivo. La configuración de accesibilidad permite que la aplicación del analizador acceda a la información de visualización dentro de la aplicación que está intentando escanear.

¿Puedo configurar pruebas automatizadas sin autenticación?

La compilación optimizada para su canal de automatización no requiere ninguna solicitud de red al servicio axe DevTools Mobile. Como tal, estas configuraciones de compilación solo están disponibles a través de Artifactory de Deque.

Tenga en cuenta que esta compilación es un subconjunto de las capacidades de axeDevTools Mobile para Android. Para utilizar el conjunto completo de capacidades, incluida la posibilidad de enviar resultados al panel de control, utilice nuestro marco completo. Consulte la guía de inicio.

Configuración

Al navegar por la documentación, tenga en cuenta que no todas las funciones que requieren interacción con el servidor están disponibles en esta compilación optimizada.

important

Lista de verificación para comenzar:

  • Requiere: Android API 26 o superior
  • Conéctese a Artifactory para incorporar el marco.
Configuración para las pruebas

En el archivo build.gradle de la aplicación, agregue:

androidTestImplementation 'com.deque.android.no-auth:axe-devtools-android:7.0.1'

y

android {
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/AL2.0' 
        exclude 'META-INF/LGPL2.1'
    }
}
Ejemplo de Test de Espresso

Tenga en cuenta que axe.loginWithUsername(...) and axe.loginWithApiKey(...) no están disponibles en esta versión de la biblioteca y se deben eliminar del código de configuración si está realizando la conversión desde la versión autenticada.

Independiente del diseño
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
    @Rule    
    @JvmField    
    var rule: ActivityScenarioRule<MainActivity> = ActivityScenarioRule(MainActivity::class.java)

    companion object {
        private val axe = AxeDevTools()
        axe.setInstrumenation(InstrumentationRegistry.getInstrumentation())
    }

    @Test    
    fun exampleTest() {
        onView(withText("Example Button Name")).perform(click())
    }

    @After    
    fun runAccessibilityScan() {
        val scan = axe.scan()
        val result = scan?.getSerializedResult()

        axe.tearDown()   
    }
}

iOS

¿Qué es un identificador de bundle?

Un identificador de bundle es un identificador único dentro del ecosistema de Apple para la identificación de aplicaciones. No pueden haber dos aplicaciones con el mismo identificador. Esto incluye una compilación beta u otras variaciones de una aplicación. axe DevTools Mobile utiliza el identificador de bundle para conectarse y consultar la información de accesibilidad de las vistas de la aplicación bajo prueba.

tip

¿Necesitas probar una aplicación de la App Store? Podemos obtener el identificador de bundle para usted. Busque el listado de su aplicación en la App Store desde un navegador web y úselo para encontrar el ID de bundle de su aplicación.

¿A qué tiene acceso la aplicación Runner instalada?

Solo la aplicación que ha especificado para comunicarse, agregando el Identificador de Bundle en los pasos de configuración. Apple es realmente bueno en seguridad y utiliza un entorno sandbox para cada aplicación que tengas instalada en tu dispositivo, sin importar cómo se haya instalado esa aplicación (Testflight, Xcode o App Store). La aplicación del analizador utiliza la funcionalidad de Prueba de UI integrada en el ecosistema Xcode/Apple. Esta es una comunicación de caja cerrada para hablar con una aplicación a través del Identificador de Bundle que ha especificado en el archivo de configuración.

Errores comunes y soluciones

Si recibe un error o Prueba Fallida, esta sección resaltará los mensajes de error comunes y cómo resolverlos. Seleccione el ícono rojo con forma de diamante 'x' y Xcode abrirá el panel 'Navegador de problemas' a la izquierda para resaltar el mensaje de error específico.

  • Cannot request screenshot data because it does not exist: Este es el mensaje de error que probablemente recibirás en la primera ejecución. Ejecute la prueba nuevamente para ver si se resuelve. Si este error aparece una segunda vez, asegúrese de tener el identificador de paquete correcto y de que la aplicación a probar esté abierta en el simulador/dispositivo seleccionado.

  • caught error: “couldNotVerifyUser”: Error al iniciar sesión con Deque. Verifique que su clave API se haya agregado al archivo de configuración y sea válida para axe DevTools Mobile visitando Configuración de cuenta axe.

¿Puedo prepararme para pruebas automatizadas sin autenticación?

La compilación optimizada para su canal de automatización no requiere ninguna solicitud de red al servicio axe DevTools Mobile. Como tal, estas configuraciones de compilación solo están disponibles a través de Artifactory de Deque.

Tenga en cuenta que esta compilación es un subconjunto de capacidades dentro de axeDevToolsXCUI. Para utilizar el conjunto completo de capacidades, incluida la posibilidad de enviar resultados al panel de control, utilice nuestro framework axeDevToolsXCUI. Consulte la guía de configuración.

Configuración

  1. Importe el framework en cualquier archivo utilizado para pruebas de accesibilidad.
import axeDevToolsXCUI_noauth
  1. Cree un objeto dentro de su clase de prueba para mantener la instancia de axe DevTools:
var axeDevTools: AxeDevTools?
  1. Inicialice el framework dentro de los métodos setUp o setUpWithError .
axeDevTools = AxeDevTools.login()
Ejemplo de configuración completa

import axeDevToolsXCUI_noauth
import XCTest

class MyUITests: XCTestCase {

    var axeDevTools: AxeDevTools?

    override func setUpWithError() throws {
        axeDevTools = AxeDevTools.login()
    }
    ...
}

Pruebas de UI

Para comenzar a probar, pase cualquier XCUIElement al marco para ejecutar pruebas de accesibilidad en él y sus hijos.

let result = try axeDevTools.run(onElement: XCUIApplication())
Ejemplo completo
import XCTest
import axeDevToolsXCUI_noauth

final class XCUI_noAuthUITest: XCTestCase {
    var axeDevTools: AxeDevTools = AxeDevTools.login()

    override func setUpWithError() throws {
        continueAfterFailure = false
    }

    func testExample() throws {
        let app = XCUIApplication()
        app.launch()

        let result = try axeDevTools.run(onElement: app)
        // Do something with the result
    }
}

¿Qué sigue?

Le brindamos los datos y las herramientas para crear un flujo de trabajo CI/CD que ayude a su equipo. A continuación se ofrecen algunas sugerencias sobre qué hacer con ese objeto de resultado:

  1. Hacer que la construcción falle si se encuentran fallas. Si tiene una pantalla que ya se ha limpiado de problemas de accesibilidad, es posible que desee asegurarse de que no surjan nuevos problemas en el ciclo de vida del desarrollo afirmando que el recuento es 0 y haciendo que falle la verificación del estado del pull-request si no lo es.
// Add an assertion to fail the build if issues were found
XCTAssertTrue(result.failures.count > 0)
  1. Guardar los resultados localmente para crear un informe delimitado de los problemas encontrados en la rama. Consulte la creación de un informe con nuestra Reporter CLI para pipelines CICD. Esto puede ser muy útil para las ramas candidatas a lanzamientos o beta para generar conciencia sobre los posibles obstáculos que pueden enfrentar los clientes que usan tecnología de asistencia.