Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Integración de la instrumentación de Android con Device Farm
nota
Siga estas instrucciones para integrar las pruebas de instrumentación de Android con AWS Device Farm. Para obtener más información sobre las pruebas de instrumentación en Device Farm, consulte Instrumentación para Android y AWS Device Farm.
Ejecuta las pruebas de instrumentación de Android (consola)
Utilice la consola de Device Farm para cargar las pruebas.
-
Inicie sesión en la consola de Device Farm en https://console.aws.amazon.com/devicefarm
. -
En el panel de navegación, seleccione Pruebas de dispositivos móviles y, a continuación, seleccione Proyectos.
-
En la lista de proyectos, seleccione el proyecto en el que desea cargar las pruebas.
sugerencia
Puede utilizar la barra de búsqueda para filtrar la lista de proyectos por nombre.
Para crear un proyecto, siga las instrucciones de Creación de un proyecto en AWS Device Farm.
-
Seleccione Crear regla.
-
En Seleccionar la aplicación y el tipo de ejecución, en la sección Tipo de ejecución, selecciona la aplicación Android.
-
En Seleccionar aplicación, en la sección Opciones de selección de aplicaciones, elige Seleccionar una aplicación de muestra proporcionada por Device Farm si no tienes una aplicación. Si vas a traer tu propia aplicación, selecciona Cargar tu propia aplicación y, a continuación, elige tu APK (formato de archivo.apk).
-
En Configurar la prueba, en la sección Seleccionar el marco de prueba, elige Instrumentación y, a continuación, elige Elegir archivo. Busque y seleccione el archivo APK (formato de archivo.apk) que contiene las pruebas.
-
En Elija su entorno de ejecución, seleccione Ejecutar la prueba en un entorno personalizado o Ejecutar la prueba en nuestro entorno estándar. Para obtener más información, consulte Entornos de prueba de AWS Device Farm.
-
Si eliges el entorno personalizado, puedes usar la especificación de prueba predeterminada que se rellena para las pruebas de instrumentación, o elegir Cargar tu propia especificación de prueba para proporcionar la tuya propia.
-
En Seleccionar dispositivos, elige un método de selección de dispositivos. Selecciona Usar grupo de dispositivos para elegir entre una colección seleccionada de dispositivos o un grupo de dispositivos personalizado que hayas creado. Selecciona Seleccionar dispositivos manualmente para elegir dispositivos individuales con los que ejecutar las pruebas. La sección de compatibilidad de dispositivos muestra cuántos dispositivos del grupo seleccionado son compatibles con tu aplicación. Para obtener más información, consulte Compatibilidad de dispositivos en AWS Device Farm.
-
Para configurar las propiedades a nivel de ejecución, actualiza la sección de ajustes de ejecución. Aquí puede hacer lo siguiente:
-
(Opcional) Para que Device Farm genere un informe de prueba una vez finalizada la ejecución, selecciona Generar informe de prueba. Esta opción solo está disponible en un entorno de prueba personalizado. Device Farm genera el informe a partir de los resultados de la instrumentación incluidos en el resultado de las especificaciones de la prueba. Si subes tu propia especificación de prueba, asegúrate de incluir los resultados de la instrumentación en la salida de tu especificación de prueba.
-
-
Complete los pasos restantes y, a continuación, inicie la ejecución.
Ver un informe de prueba (consola)
Inicie sesión en la consola de Device Farm en https://console.aws.amazon.com/devicefarm
. -
En el panel de navegación, seleccione Pruebas de dispositivos móviles y, a continuación, seleccione Proyectos.
-
Elija el proyecto que contiene la ejecución que desea inspeccionar.
-
Seleccione la ejecución finalizada para abrir sus detalles.
-
Seleccione uno de los trabajos finalizados para abrir los resultados de ese dispositivo.
Con la información de prueba habilitada
Los resultados del trabajo incluyen una pestaña de informe de prueba. Elíjala para ver un desglose por prueba. Las siguientes capturas de pantalla muestran la pestaña del informe de prueba con todas las columnas visibles.
La pestaña muestra los siguientes campos para cada prueba:
testNameEl nombre del método de prueba.
testClassEl nombre de la clase de prueba.
resultEl resultado de la prueba en Device Farm.
frameworkResultEl resultado que informó el marco de instrumentación. Device Farm asigna este valor al campo normalizado.
resultdurationSecondsLa duración de la prueba, en segundos.
startTimestampLa hora en que comenzó la prueba.
endTimestampLa hora en que finalizó la prueba.
currentLa posición de la prueba durante la ejecución.
numTestsEl número total de pruebas de la ejecución.
statusCodeEl código de estado de la instrumentación sobre el que se informó en la prueba.
streamUna versión legible por humanos del resultado de la instrumentación de la prueba.
stackTraceEn el caso de una prueba fallida, el rastro de la falla en la pila.
Para descargar el informe de prueba completo como un archivo JSON, selecciona Descargar el resumen completo en la parte superior de los detalles del trabajo.
Para elegir qué columnas aparecen, selecciona el icono con forma de engranaje. En la configuración, puedes seleccionar las columnas que quieres mostrar y activar o desactivar la opción Agrupar por clase. La opción Agrupar por clase está activada de forma predeterminada, lo que agrupa las pruebas según su clase de prueba. Desactívala para ver una lista plana de todas las pruebas, como se muestra en la siguiente captura de pantalla.
Sin la información sobre las pruebas habilitada
Los resultados del trabajo muestran el resultado de la prueba estándar y los artefactos, pero no muestran la pestaña Informe de prueba. Para generar un informe de prueba, programe una nueva ejecución con la información de prueba habilitada.
Ver un informe de prueba (AWS CLI)
Ejecute get-job y especifique el ARN del trabajo:
aws devicefarm get-job --arnarn:aws:devicefarm:us-west-2:123456789012:job:PROJECT_ID/RUN_ID/00000
Sin la información de prueba habilitada
Si no has activado los datos de las pruebas, la respuesta contiene los campos de trabajo estándar, como el estado del trabajo, el resultado, los contadores y el dispositivo:
{ "job": { "arn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "name": "Example Android Phone", "created": "2026-08-05T14:26:56.959000-07:00", "status": "COMPLETED", "result": "PASSED", "counters": { "total": 3, "passed": 3, "failed": 0, "warned": 0, "errored": 0, "stopped": 0, "skipped": 0 }, "message": "Successful test lifecycle of Setup Test", "device": { "arn": "arn:aws:devicefarm:us-west-2::device:EXAMPLEDEVICEID", "name": "Example Android Phone", "platform": "ANDROID", "os": "16", "formFactor": "PHONE", "fleetType": "PUBLIC" }, "deviceMinutes": { "total": 1.38, "metered": 0.0, "unmetered": 1.13 }, "videoCapture": true } }
Con la información de prueba habilitada
Si has activado las estadísticas de las pruebas, la respuesta también incluye un insights objeto. Este objeto contiene el estado del informe de prueba, las métricas de alto nivel y una URL prefirmada para acceder al informe detallado:
{ "job": { "arn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "status": "COMPLETED", "result": "PASSED", "counters": { ... }, "device": { ... }, "deviceMinutes": { ... }, "videoCapture": true, "insights": { "status": "COMPLETED", "testReport": { "message": "Results: 2 Executed | 2 passed, Median test duration: 28.926 seconds.", "metrics": { "testsTotal": 2, "testsPassed": 2, "testsFailed": 0, "testsSkipped": 0, "testsErrored": 0, "testsOther": 0, "testsPassedPercentage": 100.0 }, "testDetailsUrl": "https://EXAMPLE-PRESIGNED-URL" } } } }
El testDetailsUrl campo es una URL prefirmada para el JSON completo del informe de prueba. Descárguelo para obtener el desglose por prueba:
curl -o test-report.json "PRESIGNED_URL"
El siguiente es un ejemplo de informe de prueba para un trabajo de instrumentación:
{ "version": "1.0", "jobArn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "metrics": { "testsTotal": 3, "testsPassed": 2, "testsFailed": 1, "testsSkipped": 0, "testsErrored": 0, "testsOther": 0, "testsPassedPercentage": 66.67, "totalTestExecutionDurationSeconds": 26.004, "medianTestExecutionDurationSeconds": 1.598 }, "testDetails": [ { "testName": "testConnect", "testClass": "com.example.myapp.GpsConnectInstrumentedTest", "frameworkResult": "PASSED", "result": "PASSED", "durationSeconds": 24.399, "startTimestamp": "2026-08-05T20:38:30.131514Z", "endTimestamp": "2026-08-05T20:38:54.530369Z", "statusCode": 0, "current": 1, "numTests": 3 }, { "testName": "testHistoryOff", "testClass": "com.example.myapp.NotificationHistoryInstrumentedTest", "frameworkResult": "PASSED", "result": "PASSED", "durationSeconds": 1.598, "startTimestamp": "2026-08-05T20:38:54.531765Z", "endTimestamp": "2026-08-05T20:38:56.130032Z", "statusCode": 0, "current": 2, "numTests": 3 }, { "testName": "testConnect", "testClass": "com.example.myapp.WifiConnectInstrumentedTest", "frameworkResult": "FAILED", "result": "FAILED", "durationSeconds": 0.002, "startTimestamp": "2026-08-05T20:38:56.131857Z", "endTimestamp": "2026-08-05T20:38:56.133770Z", "stackTrace": "java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\tat com.example.myapp.WifiConnectInstrumentedTest.testConnect(WifiConnectInstrumentedTest.java:93)\n\t...", "stream": "\nError in testConnect(com.example.myapp.WifiConnectInstrumentedTest):\njava.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\t...", "statusCode": -2, "current": 3, "numTests": 3 } ], "errorMessage": "There was 1 failure:\n1) testConnect(com.example.myapp.WifiConnectInstrumentedTest)\njava.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\t...\nFAILURES!!!\nTests run: 3, Failures: 1", "instrumentationCode": -1 }
El informe contiene los siguientes campos de nivel superior:
versionLa versión del esquema del informe.
jobArnEl ARN del trabajo.
metrics-
Agregue los resultados del trabajo. El objeto
metricscontiene los siguientes campos:testsTotalEl número total de pruebas del trabajo.
testsPassedEl número de pruebas que se aprobaron.
testsFailedEl número de pruebas que fallaron.
testsSkippedEl número de pruebas que se omitieron.
testsErroredEl número de pruebas en las que se produjo un error.
testsOtherEl número de pruebas con otro resultado.
testsPassedPercentageEl porcentaje de pruebas que se aprobaron.
totalTestExecutionDurationSecondsLa duración total de todas las pruebas, en segundos.
medianTestExecutionDurationSecondsLa duración media de una prueba, en segundos.
errorMessageSi la ejecución tuvo errores, aparece un mensaje de error que los resume.
instrumentationCodeEl código de salida general de la instrumentación del trabajo.
testDetails-
Una lista de los resultados de cada prueba. Cada entrada
testDetailscontiene los siguientes campos:testNameEl nombre del método de ensayo.
testClassEl nombre de la clase de prueba.
resultEl resultado de la prueba en Device Farm.
frameworkResultEl resultado que informó el marco de instrumentación. Device Farm asigna este valor al campo normalizado.
resultdurationSecondsLa duración de la prueba, en segundos.
startTimestampLa hora en que comenzó la prueba.
endTimestampLa hora en que finalizó la prueba.
currentLa posición de la prueba durante la ejecución.
numTestsEl número total de pruebas de la ejecución.
statusCodeEl código de estado de la instrumentación sobre el que se informó en la prueba.
streamUna versión legible por humanos del resultado de la instrumentación de la prueba.
stackTraceEn el caso de una prueba fallida, el rastro de la falla en la pila.
(Opcional) Capturas de pantalla en pruebas de instrumentación de Android
Puede realizar capturas de pantalla como parte de las pruebas de instrumentación para Android.
Para realizar capturas de pantalla, llame a uno de los siguientes métodos:
-
Para Robotium, llame al método
takeScreenShot(por ejemplo,solo.takeScreenShot();). -
Para Spoon, llame al método
screenshot, por ejemplo:Spoon.screenshot(activity, "initial_state"); /* Normal test code... */ Spoon.screenshot(activity, "after_login");
Durante una ejecución de prueba, Device Farm obtiene automáticamente capturas de pantalla de las siguientes ubicaciones de los dispositivos, si las hay. A continuación, las añade a los informes de las pruebas:
-
/sdcard/robotium-screenshots -
/sdcard/test-screenshots -
/sdcard/Download/spoon-screenshots/test-class-name/test-method-name -
/data/data/application-package-name/app_spoon-screenshots/test-class-name/test-method-name