Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Flux de travail Device Advisor
Ce didacticiel explique comment créer une suite de tests personnalisée et exécuter des tests sur le périphérique que vous souhaitez tester dans la console. Une fois les tests terminés, vous pouvez consulter les résultats et les journaux détaillés.
Prérequis
Avant de commencer ce didacticiel, suivez les étapes décrites dans Configuration.
Création d'une définition de suite de tests
Tout d'abord, installez un AWS SDK.
Syntaxe de rootGroup
Un groupe racine est une JSON chaîne qui indique les cas de test à inclure dans votre suite de tests. Il spécifie également toutes les configurations nécessaires pour ces cas de test. Utilisez le groupe racine pour structurer et organiser votre suite de tests en fonction de vos besoins. La hiérarchie d'une suite de tests est la suivante :
test suite → test group(s) → test case(s)
Une suite de tests doit comporter au moins un groupe de test, et chaque groupe de test doit comporter au moins un cas de test. Device Advisor exécute les tests dans l'ordre dans lequel vous définissez les groupes de tests et les scénarios de test.
Chaque groupe racine suit cette structure de base :
{ "configuration": { // for all tests in the test suite "": "" } "tests": [{ "name": "" "configuration": { // for all sub-groups in this test group "": "" }, "tests": [{ "name": "" "configuration": { // for all test cases in this test group "": "" }, "test": { "id": "" "version": "" } }] }] }
Dans le groupe racine, vous définissez la suite de tests avec un name
configuration
, et le tests
qui contient le groupe. Le groupe tests
contient les définitions des tests individuels. Vous définissez chaque test avec un name
configuration
, et un test
bloc qui définit les cas de test pour ce test. Enfin, chaque cas de test est défini avec un id
et version
.
Pour plus d'informations sur l'utilisation des champs "id"
et "version"
pour chaque cas de test (test
bloc), consultez Cas de test Device Advisor. Cette section contient également des informations sur les paramètres configuration
disponibles.
Le bloc suivant est un exemple de configuration de groupe racine. Cette configuration spécifie les cas de test MQTTConnect Happy Case et MQTTConnect Exponential Backoff Retries, ainsi que les descriptions des champs de configuration.
{ "configuration": {}, // Suite-level configuration "tests": [ // Group definitions should be provided here { "name": "My_MQTT_Connect_Group", // Group definition name "configuration": {} // Group definition-level configuration, "tests": [ // Test case definitions should be provided here { "name": "My_MQTT_Connect_Happy_Case", // Test case definition name "configuration": { "EXECUTION_TIMEOUT": 300 // Test case definition-level configuration, in seconds }, "test": { "id": "MQTT_Connect", // test case id "version": "0.0.0" // test case version } }, { "name": "My_MQTT_Connect_Jitter_Backoff_Retries", // Test case definition name "configuration": { "EXECUTION_TIMEOUT": 600 // Test case definition-level configuration, in seconds }, "test": { "id": "MQTT_Connect_Jitter_Backoff_Retries", // test case id "version": "0.0.0" // test case version } }] }] }
Vous devez fournir la configuration du groupe racine lorsque vous créez la définition de votre suite de tests. Enregistrez le suiteDefinitionId
renvoyé dans l’objet de réponse. Vous pouvez utiliser cet ID pour récupérer les informations de définition de votre suite de tests et exécuter votre suite de tests.
Voici un SDK exemple Java :
response = iotDeviceAdvisorClient.createSuiteDefinition( CreateSuiteDefinitionRequest.builder() .suiteDefinitionConfiguration(SuiteDefinitionConfiguration.builder() .suiteDefinitionName("
your-suite-definition-name
") .devices( DeviceUnderTest.builder() .thingArn("your-test-device-thing-arn
") .certificateArn("your-test-device-certificate-arn
") .deviceRoleArn("your-device-role-arn
") //if using SigV4 for MQTT over WebSocket .build() ) .rootGroup("your-root-group-configuration
") .devicePermissionRoleArn("your-device-permission-role-arn
") .protocol("MqttV3_1_1 || MqttV5 || MqttV3_1_1_OverWebSocket || MqttV5_OverWebSocket
") .build() ) .build() )
Obtenir une définition de suite de tests
Une fois que vous avez créé la définition de votre suite de tests, vous recevez l'suiteDefinitionId
objet de réponse de l'CreateSuiteDefinition
APIopération.
Lorsque l'opération renvoie le suiteDefinitionId
, vous pouvez voir de nouveaux champs id
dans chaque groupe et une définition de cas de test dans le groupe racine. Vous pouvez les utiliser IDs pour exécuter un sous-ensemble de la définition de votre suite de tests.
SDKExemple Java :
response = iotDeviceAdvisorClient.GetSuiteDefinition( GetSuiteDefinitionRequest.builder() .suiteDefinitionId("
your-suite-definition-id
") .build() )
Obtenez un point de terminaison de test
Utilisez l'GetEndpoint
APIopération pour obtenir le point de terminaison de test utilisé par votre appareil. Sélectionnez le point de terminaison qui correspond le mieux à votre test. Pour exécuter simultanément plusieurs suites de tests, utilisez le point de terminaison au niveau de l'appareil en fournissant un thing
ARN
, certificate ARN
, ou device role ARN
. Pour exécuter une seule suite de tests, ne fournissez aucun argument à l' GetEndpoint opération permettant de choisir le point de terminaison au niveau du compte.
SDKexemple :
response = iotDeviceAdvisorClient.getEndpoint(GetEndpointRequest.builder() .certificateArn("
your-test-device-certificate-arn
") .thingArn("your-test-device-thing-arn
") .deviceRoleArn("your-device-role-arn
") //if using SigV4 for MQTT over WebSocket .build())
Lancer l'exécution d'une suite de test
Après avoir créé une définition de suite de tests et configuré votre appareil de test pour qu'il se connecte à votre point de terminaison de test Device Advisor, exécutez votre suite de tests avec le. StartSuiteRun
API
Pour les MQTT clients, utilisez l'une certificateArn
ou thingArn
l'autre option ou exécutez la suite de tests. Si les deux sont configurés, le certificat est utilisé s'il appartient à l'objet.
Pour les WebSocket clients MQTT excédentaires, deviceRoleArn
utilisez-le pour exécuter la suite de tests. Si le rôle spécifié est différent du rôle spécifié dans la définition de la suite de tests, le rôle spécifié remplace le rôle défini.
Pour .parallelRun()
, utilisez true
si vous utilisez un point de terminaison au niveau de l'appareil pour exécuter plusieurs suites de tests en parallèle en utilisant une seule Compte AWS.
SDKexemple :
response = iotDeviceAdvisorClient.startSuiteRun(StartSuiteRunRequest.builder() .suiteDefinitionId("
your-suite-definition-id
") .suiteRunConfiguration(SuiteRunConfiguration.builder() .primaryDevice(DeviceUnderTest.builder() .certificateArn("your-test-device-certificate-arn
") .thingArn("your-test-device-thing-arn
") .deviceRoleArn("your-device-role-arn
") //if using SigV4 for MQTT over WebSocket .build()) .parallelRun(true | false) .build()) .build())
Enregistrez le suiteRunId
de la réponse. Vous l'utiliserez pour récupérer les résultats de cette suite de tests exécutée.
Exécutez une suite de tests
Après avoir lancé l'exécution d'une suite de tests, vous pouvez vérifier sa progression et ses résultats à l'aide du GetSuiteRun
API.
SDKexemple :
// Using the SDK, call the GetSuiteRun API. response = iotDeviceAdvisorClient.GetSuiteRun( GetSuiteRunRequest.builder() .suiteDefinitionId("
your-suite-definition-id
") .suiteRunId("your-suite-run-id
") .build())
Arrêter l'exécution d'une suite de tests
Pour arrêter l'exécution d'une suite de tests toujours en cours, vous pouvez lancer l'StopSuiteRun
APIopération. Une fois que vous avez appelé l'opération StopSuiteRun
, le service lance le processus de nettoyage. Pendant que le service exécute le processus de nettoyage, la suite de test exécute des mises à jour de statut sur Stopping
. Le processus de nettoyage peut prendre plusieurs minutes. Une fois le processus terminé, la suite de tests exécute des mises à jour de statut sur Stopped
. Une fois qu'un cycle de test est complètement arrêté, vous pouvez lancer une autre suite de test. Vous pouvez vérifier régulièrement l'état d'exécution de la suite à l'aide de cette GetSuiteRun
API opération, comme indiqué dans la section précédente.
SDKexemple :
// Using the SDK, call the StopSuiteRun API. response = iotDeviceAdvisorClient.StopSuiteRun( StopSuiteRun.builder() .suiteDefinitionId("
your-suite-definition-id
") .suiteRunId("your-suite-run-id
") .build())
Obtenez un rapport de qualification pour une exécution réussie de la suite de tests de qualification
Si vous exécutez une suite de tests de qualification qui se termine avec succès, vous pouvez récupérer un rapport de qualification avec l'GetSuiteRunReport
APIopération. Vous utilisez ce rapport de qualification pour qualifier votre appareil dans le cadre du programme AWS IoT Core de qualification. Pour déterminer si votre suite de tests est une suite de tests de qualification, vérifiez si le paramètre intendedForQualification
est défini sur true
. Après avoir appelé l'GetSuiteRunReport
APIopération, vous pouvez télécharger le rapport renvoyé URL pendant 90 secondes maximum. Si plus de 90 secondes se sont écoulées depuis la dernière fois que vous avez appelé l'GetSuiteRunReport
opération, appelez-la à nouveau pour en récupérer une nouvelle valide. URL
SDKexemple :
// Using the SDK, call the getSuiteRunReport API. response = iotDeviceAdvisorClient.getSuiteRunReport( GetSuiteRunReportRequest.builder() .suiteDefinitionId("
your-suite-definition-id
") .suiteRunId("your-suite-run-id
") .build() )