

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.

# Tutorial: crear y ejecutar el ejemplo del conjunto de pruebas de IDT
<a name="build-sample-suite"></a>

La AWS IoT Device Tester descarga incluye el código fuente de un conjunto de pruebas de muestra. Puede completar este tutorial para crear y ejecutar el conjunto de pruebas de ejemplo para comprender cómo puede usar IDT AWS IoT Greengrass para ejecutar conjuntos de pruebas personalizados.

 En este tutorial, debe completar los siguientes pasos: 

1. [Creación del conjunto de pruebas de muestra](#build-sample)

1. [Uso de IDT para ejecutar el conjunto de pruebas de muestra](#run-sample)

## Requisitos previos
<a name="prereqs-tutorial-sample"></a><a name="prereqs-list"></a>

Necesitará lo siguiente para completar este tutorial: 
+ 

**Requisitos del equipo host**
  + Versión más reciente de AWS IoT Device Tester
  + [Python](https://www.python.org/downloads/) 3.7 o posterior

    Para comprobar la versión de Python instalada en el equipo, ejecute el siguiente comando:

    ```
    python3 --version
    ```

    En Windows, si el uso de este comando devuelve un error, utilice `python --version` en su lugar. Si el número de versión devuelto es 3.7 o superior, ejecute el siguiente comando en una terminal de Powershell para configurar `python3` como alias para el comando `python`. 

    ```
    Set-Alias -Name "python3" -Value "python"
    ```

    Si no se devuelve información sobre la versión o si la versión es inferior a 3.7, siga las instrucciones que se indican en [Descarga de Python](https://wiki.python.org/moin/BeginnersGuide/Download) para instalar Python 3.7 o superior. Para obtener más información, consulte la [documentación de Python](https://docs.python.org).
  + [urllib3](https://urllib3.readthedocs.io/en/latest/)

    Para comprobar que `urllib3` se ha instalado correctamente, ejecute el siguiente comando:

    ```
    python3 -c 'import urllib3'
    ```

    Si `urllib3` no está instalado, ejecute el siguiente comando para instalarlo:

    ```
    python3 -m pip install urllib3
    ```
+ 

**Requisitos de los dispositivos**
  + Un dispositivo con un sistema operativo Linux y una conexión de red a la misma red que el equipo host. 

    Le recomendamos que utilice un [Raspberry Pi](https://www.raspberrypi.org/) con el sistema operativo Raspberry Pi. Asegúrese de que tiene configurado [SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/) en el Raspberry Pi para conectarse de forma remota.

## Configuración de la información del dispositivo para IDT
<a name="configure-idt-sample"></a>

Configure la información del dispositivo para que IDT ejecute la prueba. Debe actualizar la plantilla `device.json` ubicada en la carpeta `<device-tester-extract-location>/configs` con la siguiente información.

```
[
  {
    "id": "pool",
    "sku": "N/A",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": "<port>",
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

En el objeto `devices`, indique la siguiente información:

`id`  
Un identificador único definido por el usuario para el dispositivo.

`connectivity.ip`  
La dirección IP del dispositivo.

`connectivity.port`  
Opcional. El número de puerto que se va a utilizar para las conexiones SSH al dispositivo.

`connectivity.auth`  
Información de autenticación para la conexión.  
Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.    
`connectivity.auth.method`  
El método de autenticación que se utiliza para acceder a un dispositivo a través de un determinado protocolo de conectividad.  
Los valores admitidos son:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Las credenciales que se utilizan para la autenticación.    
`connectivity.auth.credentials.user`  
El nombre de usuario utilizado para iniciar sesión en el dispositivo.  
`connectivity.auth.credentials.privKeyPath`  
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `pki`.  
`devices.connectivity.auth.credentials.password`  
La contraseña que se utiliza para iniciar sesión en el dispositivo.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `password`.

**nota**  
Especifique `privKeyPath` solo si `method` está establecido en `pki`  
Especifique `password` solo si `method` está establecido en `password`

## Creación del conjunto de pruebas de muestra
<a name="build-sample"></a>

La carpeta `<device-tester-extract-location>/samples/python` contiene ejemplos de archivos de configuración, código fuente y el SDK de cliente de IDT que puede combinar en un conjunto de pruebas mediante los scripts de creación proporcionados. El siguiente árbol de directorios muestra la ubicación de estos archivos de ejemplo:

```
<device-tester-extract-location>
├── ...
├── tests
├── samples
│   ├── ...
│   └── python
│       ├── configuration
│       ├── src
│       └── build-scripts
│           ├── build.sh
│           └── build.ps1
└── sdks
    ├── ...
    └── python
        └── idt_client
```

Para crear el conjunto de pruebas, ejecute los siguientes comandos en el equipo host:

------
#### [ Windows ]

```
cd <device-tester-extract-location>/samples/python/build-scripts
./build.ps1
```

------
#### [ Linux, macOS, or UNIX ]

```
cd <device-tester-extract-location>/samples/python/build-scripts
./build.sh
```

------

Esto crea el conjunto de pruebas de muestra en la carpeta `IDTSampleSuitePython_1.0.0`, dentro de la carpeta `<device-tester-extract-location>/tests`. Revise los archivos de la carpeta `IDTSampleSuitePython_1.0.0` para ver cómo está estructurado el conjunto de pruebas de muestra y consulte varios ejemplos de ejecutables de casos de prueba y archivos JSON de configuración de pruebas.

**nota**  
El conjunto de pruebas de muestra incluye el código fuente de Python. No incluya información confidencial en el código del conjunto de pruebas.

Siguiente paso: Uso de IDT para [ejecutar el conjunto de pruebas de muestra](#run-sample) que creó.

## Uso de IDT para ejecutar el conjunto de pruebas de muestra
<a name="run-sample"></a>

Para ejecutar el conjunto de pruebas de muestra, ejecute los siguientes comandos en el equipo host: 

```
cd <device-tester-extract-location>/bin
./devicetester_[linux | mac | win_x86-64] run-suite --suite-id IDTSampleSuitePython
```

IDT ejecuta el conjunto de pruebas de muestra y transmite los resultados a la consola. Cuando la prueba termine de ejecutarse, verá la siguiente información:

```
========== Test Summary ==========
Execution Time:         5s
Tests Completed:        4
Tests Passed:           4
Tests Failed:           0
Tests Skipped:          0
----------------------------------
Test Groups:
    sample_group:       PASSED
----------------------------------
Path to IoT Device Tester Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/awsiotdevicetester_report.xml
Path to Test Execution Logs: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/logs
Path to Aggregated JUnit Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/IDTSampleSuitePython_Report.xml
```

## Resolución de problemas
<a name="tutorial-troubleshooting-custom"></a>

Utilice la siguiente información para resolver cualquier problema que pueda surgir al completar el tutorial.

**El caso de prueba no se ejecuta correctamente**  
Si la prueba no se ejecuta correctamente, IDT transmite los registros de errores a la consola para ayudarle a solucionar los problemas de la prueba. Asegúrese de que cumple con todos los [requisitos previos](#prereqs-tutorial-sample) de este tutorial.

**No se puede conectar al dispositivo que se está probando**

Compruebe lo siguiente:
+ El archivo `device.json` contiene la dirección IP, el puerto y la información de autenticación correctos.
+ Puede conectarse a su dispositivo a través de SSH desde su equipo host.