

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.

# Herramientas y complementos de AWS Device Farm
<a name="aws-device-farm-tools-plugins"></a>

En esta sección se incluyen enlaces e información acerca de cómo trabajar con herramientas y complementos de AWS Device Farm. Puede encontrar complementos de Device Farm en [Laboratorios de AWS en GitHub](https://github.com/awslabs/).

Si es un desarrollador de Android, también disponemos de una [aplicación de ejemplo de AWS Device Farm para Android en GitHub](https://github.com/awslabs/aws-device-farm-sample-app-for-android). Puede utilizar la aplicación y las pruebas de ejemplo como referencia para sus propios scripts de pruebas de Device Farm.

**Topics**
+ [Integración de Device Farm con un servidor Jenkins CI](continuous-integration-jenkins-plugin.md)
+ [Integración de Device Farm con un sistema de compilación Gradle](aws-device-farm-android-gradle-plugin.md)

# Integración de Device Farm con un servidor Jenkins CI
<a name="continuous-integration-jenkins-plugin"></a>

El complemento Jenkins CI proporciona funcionalidad de AWS Device Farm desde su propio servidor Jenkins de integración continua (CI). Para obtener más información, consulte [Jenkins (software)](https://en.wikipedia.org/wiki/Jenkins_%28software%29).

**nota**  
Para descargar el complemento de Jenkins, vaya a [GitHub](https://github.com/awslabs/aws-device-farm-jenkins-plugin)y siga las instrucciones que aparecen en[Paso 1: instalación del complemento Jenkins CI para AWS Device FarmInstalación del complemento Jenkins CI](#jenkins-ci-installing-the-plugin).

Esta sección contiene una serie de procedimientos para configurar y utilizar el complemento Jenkins CI con AWS Device Farm.

Las siguientes imágenes muestran las características del complemento Jenkins CI.

![\[Integración con la aplicación Hello World de Jenkins CI\]](http://docs.aws.amazon.com/es_es/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-project-hello-world-app.png)


![\[Integración con acciones posteriores a la compilación de Jenkins CI\]](http://docs.aws.amazon.com/es_es/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-post-build-actions.png)


El complemento también puede extraer todos los artefactos de las pruebas (registros, capturas de pantalla, etc.) localmente:

![\[Integración con artefactos de pruebas de Jenkins CI\]](http://docs.aws.amazon.com/es_es/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-test-artifacts.png)


**Topics**
+ [Dependencias](#jenkins-plugin-dependencies)
+ [Paso 1: instalación del complemento Jenkins CI para AWS Device Farm](#jenkins-ci-installing-the-plugin)
+ [Paso 2: Crear un AWS Identity and Access Management usuario para el complemento CI de Jenkins para AWS Device Farm](#jenkins-ci-set-up-iam-user)
+ [Paso 3: configuración del complemento Jenkins CI por primera vez en AWS Device Farm](#jenkins-ci-first-time-configuration-instructions)
+ [Paso 4: uso del complemento en un trabajo de Jenkins](#jenkins-ci-using-plugin-jenkins-job)

## Dependencias
<a name="jenkins-plugin-dependencies"></a>

El complemento Jenkins CI requiere la AWS versión 1.10.5 o posterior del SDK para dispositivos móviles. Para obtener más información y para instalar el SDK, consulte [AWS Mobile SDK](https://aws.amazon.com/mobile/sdk/).

## Paso 1: instalación del complemento Jenkins CI para AWS Device Farm
<a name="jenkins-ci-installing-the-plugin"></a>

Existen dos opciones para instalar el complemento de integración continua (CI) de Jenkins para AWS Device Farm. Puede buscar el complemento desde el cuadro de diálogo **Complementos disponibles** en la interfaz de usuario web de Jenkins, o bien puede descargar el archivo `hpi` e instalarlo desde Jenkins.

### Instalación desde la interfaz de usuario de Jenkins
<a name="installing-jenkins-from-within-ui"></a>

1. Para encontrar el complemento en la interfaz de usuario de Jenkins, seleccione **Administrar Jenkins**, **Administrar dispositivos** y, a continuación, seleccione **Disponibles**.

1. Busque la opción **aws-device-farm**.

1. Instale el complemento AWS Device Farm.

1. Asegúrese de que el complemento es propiedad del usuario de `Jenkins`.

1. Reinicie Jenkins.

### Descarga del complemento
<a name="installing-jenkins-manual-install"></a>

1. [Descargue el `hpi` archivo directamente desde http://updates.jenkins-ci. org/latest/aws-device-farm.hpi](http://updates.jenkins-ci.org/latest/aws-device-farm.hpi).

1. Asegúrese de que el complemento es propiedad del usuario de `Jenkins`.

1. Instale el complemento mediante una de las siguientes opciones:
   + Para cargar el complemento, seleccione **Administrar Jenkins**, **Administrar complementos**, **Avanzados** y, a continuación, seleccione **Cargar complemento**.
   + Coloque el archivo `hpi` en el directorio del complemento de Jenkins (normalmente `/var/lib/jenkins/plugins`).

1. Reinicie Jenkins.

## Paso 2: Crear un AWS Identity and Access Management usuario para el complemento CI de Jenkins para AWS Device Farm
<a name="jenkins-ci-set-up-iam-user"></a>

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

Para crear un nuevo usuario de IAM, consulte [Crear un usuario de IAM (Consola de administración de AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console). Asegúrese de generar una clave de acceso para cada usuario y de descargar o guardar las credenciales de seguridad de los usuarios. Necesitará estas credenciales más tarde.

### Conceda permiso al usuario de IAM para obtener acceso a Device Farm.
<a name="jenkins-ci-setting-up-permissions"></a>

Para conceder permiso al usuario de IAM para obtener acceso a Device Farm, cree una nueva política de acceso en IAM. Después, asigne la política de acceso al usuario de IAM como se indica a continuación.

**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 la política de acceso en IAM**

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

1. Seleccione **Políticas**.

1. Seleccione **Crear política**. Si aparece el botón **Empezar**, selecciónelo y, a continuación, seleccione **Crear política**.

1. Junto a **Create Your Own Policy**, seleccione **Select**.

1. En **Nombre de política**, escriba un nombre para la política (por ejemplo, **AWSDeviceFarmAccessPolicy**).

1. Para **Descripción**, escriba una descripción que le ayude a asociar este usuario de IAM con el proyecto Jenkins.

1. En **Documento de política**, escriba la siguiente instrucción:

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

****  

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

------

1. Seleccione **Crear política**.

**Para asignar la política de acceso al usuario de 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 el usuario de IAM a quien desea asignar la política de acceso.

1. En el área **Permisos**, en **Políticas administradas**, seleccione **Asociar política**.

1. Seleccione la política que acaba de crear (por ejemplo, **AWSDeviceFarmAccessPolicy**). 

1. Seleccione **Asociar política**.

## Paso 3: configuración del complemento Jenkins CI por primera vez en AWS Device Farm
<a name="jenkins-ci-first-time-configuration-instructions"></a>

La primera vez que ejecute el servidor de Jenkins, tendrá que configurar el sistema como se indica a continuación.

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

1. Inicie sesión en la interfaz de usuario web de Jenkins.

1. En la parte izquierda de la pantalla, seleccione **Administrar Jenkins**.

1. Seleccione **Configurar sistema**.

1. Desplácese hacia abajo hasta el encabezado **AWS Device Farm**.

1. Copie sus credenciales de seguridad [Creación de un usuario de IAM para el complemento Jenkins CI](#jenkins-ci-set-up-iam-user) y pegue el ID de clave de acceso y la clave de acceso secreta en sus respectivas casillas.

1. Seleccione **Save**.

## Paso 4: uso del complemento en un trabajo de Jenkins
<a name="jenkins-ci-using-plugin-jenkins-job"></a>

Una vez que haya instalado el complemento Jenkins, siga estas instrucciones para utilizar el complemento en un trabajo de Jenkins.

1. Inicie sesión en la interfaz de usuario web de Jenkins.

1. Haga clic en el trabajo que desea editar.

1. En la parte izquierda de la pantalla, seleccione **Configurar**.

1. Desplácese hacia abajo hasta el encabezado **Acciones posteriores a la compilación**.

1. Haga clic en **Añadir acción posterior a la compilación** y seleccione **Ejecutar pruebas en AWS Device Farm**.

1. Seleccione el proyecto que desearía usar.

1. Seleccione el grupo de dispositivos que desearía usar.

1. Seleccione si desea que los elementos de las pruebas (como los registros y las capturas de pantalla) se archiven localmente.

1. En **Aplicación**, rellene la ruta de la aplicación compilada.

1. Seleccione la prueba que desea ejecutar y rellene todos los campos obligatorios.

1. Seleccione **Save**.

# 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

    }
```