

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 Device Farm con un sistema de compilación Gradle
<a name="aws-device-farm-android-gradle-plugin"></a>

El complemento Gradle de Device Farm proporciona la integración de AWS Device Farm con el sistema de compilación Gradle en Android Studio. Para obtener más información, consulte [Gradle](https://gradle.org).

**nota**  
Para descargar el complemento de Gradle, ve a [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)y sigue las instrucciones que aparecen en[Creación del complemento Gradle de Device Farm](#aws-device-farm-gradle-plugin-building).

El complemento Gradle de Device Farm proporciona funcionalidad de Device Farm desde su entorno de Android Studio. Puede iniciar pruebas en teléfonos y tabletas Android reales alojados en Device Farm.

Esta sección contiene una serie de procedimientos para configurar y utilizar el complemento Gradle de Device Farm.

**Topics**
+ [Dependencias](#aws-device-farm-gradle-plugin-dependencies)
+ [Paso 1: Crear el complemento Gradle de AWS Device Farm](#aws-device-farm-gradle-plugin-building)
+ [Paso 2: Configurar el complemento Gradle de AWS Device Farm](#aws-device-farm-gradle-plugin-setting-up)
+ [Paso 3: generación de un usuario de IAM en el complemento Gradle de Device Farm.](#aws-device-farm-gradle-plugin-generating-iam-user)
+ [Paso 4: Configurar los tipos de prueba](#aws-device-farm-gradle-plugin-configuring-test-types)

## Dependencias
<a name="aws-device-farm-gradle-plugin-dependencies"></a>

**Tiempo de ejecución**
+ El complemento Device Farm para Gradle requiere el SDK AWS móvil 1.10.15 o una versión posterior. Para obtener más información y para instalar el SDK, consulte [AWS Mobile SDK](https://aws.amazon.com/mobile/sdk/).
+ Android tools builder test api 0.5.2
+ Apache Commons Lang3 3.3.4

**Para pruebas unitarias**
+ Testng 6.8.8
+ Jmockit 1.19
+ Android gradle tools 1.3.0

## Paso 1: Crear el complemento Gradle de AWS Device Farm
<a name="aws-device-farm-gradle-plugin-building"></a>

Este complemento proporciona la integración de AWS Device Farm con el sistema de compilación Gradle en Android Studio. Para obtener más información, consulte [Gradle](https://gradle.org).

**nota**  
La creación del complemento es opcional. El complemento se publica a través de Maven Central. Si desea permitir que Gradle descargue el complemento directamente, omita este paso y vaya a [Paso 2: Configurar el complemento Gradle de AWS Device Farm](#aws-device-farm-gradle-plugin-setting-up).

**Para crear el complemento**

1. Ve al repositorio [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)y clónalo.

1. Cree el complemento mediante `gradle install`.

   El complemento se instala en el repositorio de Maven local.

Paso siguiente: [Paso 2: Configurar el complemento Gradle de AWS Device Farm](#aws-device-farm-gradle-plugin-setting-up)

## Paso 2: Configurar el complemento Gradle de AWS Device Farm
<a name="aws-device-farm-gradle-plugin-setting-up"></a>

Si aún no lo ha hecho, clone el repositorio e instale el complemento mediante el siguiente procedimiento: [Creación del complemento Gradle de Device Farm](#aws-device-farm-gradle-plugin-building).

**Para configurar el complemento AWS Device Farm para Gradle**

1. Añada el elemento del complemento a la lista de dependencia en `build.gradle`.

   ```
       buildscript {
   
           repositories {        
               mavenLocal()            
               mavenCentral()            
           }
   
           dependencies {        
               classpath 'com.android.tools.build:gradle:1.3.0'           
               classpath 'com.amazonaws:aws-devicefarm-gradle-plugin:1.0'            
           }        
       }
   ```

1. Configure el complemento en el archivo `build.gradle`. La siguiente configuración específica de pruebas debería servirle como guía:

   ```
   apply plugin: 'devicefarm'
   
   devicefarm {
   
       // Required. The project must already exist. You can create a project in the AWS Device Farm console.
       projectName "My Project" // required: Must already exist.
   
       // Optional. Defaults to "Top Devices"
       // devicePool "My Device Pool Name"
       
       // Optional. Default is 150 minutes
       // executionTimeoutMinutes 150
       
       // Optional. Set to "off" if you want to disable device video recording during a run. Default is "on"
       // videoRecording "on"
       
       // Optional. Set to "off" if you want to disable device performance monitoring during a run. Default is "on"
       // performanceMonitoring "on"
       
       // Optional. Add this if you have a subscription and want to use your unmetered slots
       // useUnmeteredDevices()
       
       // Required. You must specify either accessKey and secretKey OR roleArn. roleArn takes precedence. 
       authentication {
           accessKey "AKIAIOSFODNN7EXAMPLE"
           secretKey "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
           
           // OR
           
           roleArn "arn:aws:iam::111122223333:role/DeviceFarmRole"
       }
   
       // Optionally, you can 
       // - enable or disable Wi-Fi, Bluetooth, GPS, NFC radios
       // - set the GPS coordinates
       // - specify files and applications that must be on the device when your test runs
       devicestate {
           // Extra files to include on the device.
           // extraDataZipFile file("path/to/zip")
           
           // Other applications that must be installed in addition to yours. 
           // auxiliaryApps files(file("path/to/app"), file("path/to/app2"))
           
           // By default, Wi-Fi, Bluetooth, GPS, and NFC are turned on.
           // wifi "off"
           // bluetooth "off"
           // gps "off"
           // nfc "off"
           
           // You can specify GPS location. By default, this location is 47.6204, -122.3491
           // latitude 44.97005
           // longitude -93.28872
       }
    
       // By default, the Instrumentation test is used.
       // If you want to use a different test type, configure it here.
       // You can set only one test type (for example, Calabash, Fuzz, and so on)
    
       // Fuzz
       // fuzz { }
   
       // Calabash
       // calabash { tests file("path-to-features.zip") }
          
   }
   ```

1. Ejecute su prueba de Device Farm mediante la siguiente tarea: `gradle devicefarmUpload`.

   La salida de compilación mostrará un enlace en la consola de Device Farm donde puede monitorizar la ejecución de las pruebas.

Paso siguiente: [Generación de un usuario de IAM en el complemento Gradle de Device Farm](#aws-device-farm-gradle-plugin-generating-iam-user)

## Paso 3: generación de un usuario de IAM en el complemento Gradle de Device Farm.
<a name="aws-device-farm-gradle-plugin-generating-iam-user"></a>

AWS Identity and Access Management (IAM) le ayuda a administrar los permisos y las políticas para trabajar con AWS los recursos. Este tema le muestra el proceso para generar un usuario de IAM con permisos para obtener acceso a los recursos de AWS Device Farm.

Si aún no lo ha hecho, complete los pasos 1 y 2 antes de generar un usuario de IAM.

Le recomendamos que no utilice su cuenta AWS root para acceder a Device Farm. En su lugar, cree un usuario de IAM (o utilice un usuario de IAM existente) en su cuenta de AWS y, a continuación, obtenga acceso a Device Farm con ese usuario de IAM.

**nota**  
La cuenta AWS raíz o el usuario de IAM que utilice para completar los siguientes pasos debe tener permiso para crear la siguiente política de IAM y asociarla al usuario de IAM. Para obtener más información, consulte [Administración de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html).

**Para crear un nuevo usuario con la política de acceso adecuada en IAM**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleccione **Usuarios**.

1. Seleccione **Crear nuevos usuarios**.

1. Introduzca el nombre de usuario de su elección.

   Por ejemplo, **GradleUser**.

1. Seleccione **Crear**.

1. Seleccione **Descargar credenciales** y guárdelas en una ubicación donde pueda recuperarlas fácilmente más adelante.

1. Seleccione **Cerrar**.

1. Elija el nombre de usuario en la lista.

1. En **Permisos**, expanda el encabezado **Políticas insertadas** haciendo clic en la flecha hacia abajo situada a la derecha.

1. Seleccione **Haga clic aquí** donde dice **No hay políticas insertadas que mostrar. Para crear una, haga clic aquí**.

1. En la pantalla **Establecer permisos**, seleccione **Política personalizada**.

1. Elija **Seleccionar**.

1. Especifique un nombre para la política, como **AWSDeviceFarmGradlePolicy**.

1. En **Documento de política**, pegue la siguiente política.

------
#### [ JSON ]

****  

   ```
       {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Sid": "DeviceFarmAll",
                   "Effect": "Allow",
                   "Action": [ "devicefarm:*" ],
                   "Resource": [ "*" ]
               }
           ]
       }
   ```

------

1. Seleccione **Apply Policy**.

Paso siguiente: [Configurar los tipos de prueba](#aws-device-farm-gradle-plugin-configuring-test-types).

Para obtener más información, consulte [Creación de usuarios de IAM Consola de administración de AWS(](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console)) o [Configuración](setting-up.md).

## Paso 4: Configurar los tipos de prueba
<a name="aws-device-farm-gradle-plugin-configuring-test-types"></a>

De forma predeterminada, el complemento Gradle de AWS Device Farm ejecuta la prueba [Instrumentación para Android y AWS Device Farm](test-types-android-instrumentation.md). Si desea ejecutar sus propias pruebas o especificar parámetros adicionales, puede elegir configurar un tipo de la prueba. En este tema se ofrece información sobre cada tipo de prueba disponible y qué se debe hacer en Android Studio con el fin de configurarlo para su uso. Para obtener más información acerca de los tipos de pruebas disponibles en Device Farm, consulte [Marcos de pruebas y pruebas integradas en AWS Device Farm](test-types.md).

Si aún no lo ha hecho, complete los pasos 1 y 3 antes de configurar los tipos de pruebas.

**nota**  
Si utiliza [ranuras de dispositivos](how-to-purchase-device-slots.md), la característica de ranuras de dispositivos está deshabilitada de forma predeterminada.

### Appium
<a name="configuring-test-types-appium"></a>

Device Farm ofrece soporte para Appium Java y JUnit TestNG para Android.
+ [Appium (en Java ()) JUnit](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)
+ [Appium (en Java (TestNG))](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)

Puede elegir `useTestNG()` o `useJUnit()`. `JUnit` es el valor predeterminado y no es preciso especificarlo de forma explícita.

```
    appium {
        tests file("path to zip file") // required
        useTestNG() // or useJUnit()
    }
```

### Integrado: fuzzing
<a name="configuring-test-types-built-in-fuzz"></a>

Device Farm proporciona un tipo de prueba de difusión integrada, que envía de forma aleatoria eventos de interfaz de usuario a los dispositivos y, a continuación, crea un informe con los resultados.

```
    fuzz {

       eventThrottle 50 // optional default
       eventCount 6000  // optional default
       randomizerSeed 1234 // optional default blank

     }
```

Para obtener más información, consulte [Ejecución de la prueba de difusión integrada de Device Farm (Android e iOS)](test-types-built-in-fuzz.md).

### Instrumentación
<a name="configuring-test-types-instrumentation"></a>

Device Farm ofrece soporte para instrumentación (EspressoJUnit, Robotium o cualquier prueba basada en instrumentación) para Android. Para obtener más información, consulte [Instrumentación para Android y AWS Device Farm](test-types-android-instrumentation.md).

Cuando se ejecuta una prueba de instrumentación en Gradle, Device Farm utiliza el archivo `.apk` generado desde el directorio **androidTest** como el fuente de las pruebas.

```
    instrumentation { 

        filter "test filter per developer docs" // optional

    }
```