Tutorial: crear y ejecutar el ejemplo del conjunto de pruebas de IDT - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.

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

La descarga de AWS IoT Device Tester 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 y comprender cómo puede utilizar AWS IoT Device Tester para AWS IoT Greengrass y ejecutar conjuntos de pruebas personalizados.

Requisitos previos

Necesitará lo siguiente para completar este tutorial:

  • Requisitos del equipo host
    • Última versión de Device Tester AWS IoT

    • Python 3.7 o posterior

      Para comprobar la versión de Python instalada en su ordenador, 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 devuelve información sobre la versión o si la versión es inferior a 3.7, siga las instrucciones en Descargar Python para instalar Python 3.7+. Para obtener más información, consulte la documentación de Python.

    • urllib3

      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 con el sistema operativo Raspberry Pi. Debe configurar SSH en su Raspberry Pi para conectarse de forma remota.

Configure la información del dispositivo para IDT

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, proporcione la siguiente información:

id

Un identificador único definido por el usuario para su dispositivo.

connectivity.ip

La dirección IP de su 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 utilizada para iniciar sesión en su dispositivo.

Este valor solo se aplica si connectivity.auth.method está establecido en pki.

devices.connectivity.auth.credentials.password

La contraseña utilizada para iniciar sesión en su 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

Cree el conjunto de pruebas de muestra

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 compilació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 comprender 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.

Siguiente paso: use IDT para ejecutar el conjunto de pruebas de muestra que creó.

Use IDT para ejecutar el conjunto de pruebas de muestra

Para ejecutar el conjunto de pruebas, 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

Solución de problemas

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 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.