297
AWS Device Farm Manuel du développeur Version de l'API 2015-06-23

AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

  • Upload
    others

  • View
    49

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device FarmManuel du développeur

Version de l'API 2015-06-23

Page 2: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

AWS Device Farm: Manuel du développeurCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Table of ContentsQu'est-ce qu'AWS Device Farm ? ......................................................................................................... 1

Tests automatisés d'applications ................................................................................................... 1Interaction par accès à distance ................................................................................................... 1Terminologie .............................................................................................................................. 1Configuration .............................................................................................................................. 2

Configuration ...................................................................................................................................... 3Étape 1  : S'inscrire à AWS .......................................................................................................... 3Étape 2 : Créer ou utiliser un utilisateur IAM dans votre compte AWS ................................................. 3Étape 3 : Accorder à l'utilisateur IAM l'autorisation d'accéder à Device Farm ........................................ 3Étape suivante ........................................................................................................................... 4

Mise en route .................................................................................................................................... 5Prérequis ................................................................................................................................... 5Etape 1 : Se connecter à la console .............................................................................................. 5Etape 2  : Créer un projet ............................................................................................................. 5Etape 3 : Créer et démarrer une exécution ..................................................................................... 6Etape 4 : Afficher les résultats de l'exécution .................................................................................. 7Étapes suivantes ........................................................................................................................ 7

Acheter des emplacements d'appareils .................................................................................................. 8Acheter des emplacements d'appareils (console) ............................................................................. 8Acheter un emplacement d'appareil (AWS CLI) ............................................................................... 9Acheter un emplacement d'appareil (API) ..................................................................................... 12

Concepts ......................................................................................................................................... 13Appareils ................................................................................................................................. 13

Appareils pris en charge .................................................................................................... 13Groupes d'appareils .......................................................................................................... 13Appareils privés ................................................................................................................ 13Personnalisation d'appareils ................................................................................................ 14Emplacements d'appareils .................................................................................................. 14Applications d'appareil préinstallées ..................................................................................... 14Capacités des appareils ..................................................................................................... 14

Environnements de test ............................................................................................................. 14Environnement de test standard .......................................................................................... 15Environnement de test personnalisé .................................................................................... 15

Exécutions ............................................................................................................................... 15Configuration d'exécution ................................................................................................... 16Conservation des fichiers d'exécution ................................................................................... 16Etat d'appareil d'exécution .................................................................................................. 16Exécutions parallèles ......................................................................................................... 16Définition du délai d'exécution ............................................................................................. 16Applications d'instrumentation ............................................................................................. 16Resignature des applications lors des exécutions ................................................................... 16Applications brouillées dans les exécutions ........................................................................... 17Publicités dans les exécutions ............................................................................................ 17Multimédia dans les exécutions ........................................................................................... 17Tâches courantes pour les exécutions ................................................................................. 17

Rapports .................................................................................................................................. 17Conservation des rapports .................................................................................................. 17Composants des rapports .................................................................................................. 17Exemples de performances dans les rapports ....................................................................... 18Les journaux dans les rapports ........................................................................................... 18Tâches courantes pour les rapports ..................................................................................... 18

Sessions .................................................................................................................................. 18Appareils pris en charge pour l'accès à distance .................................................................... 18Conservation des fichiers de session ................................................................................... 18

Version de l'API 2015-06-23iii

Page 4: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Applications d'instrumentation ............................................................................................. 18Resignature d'applications lors de sessions .......................................................................... 19Applications brouillées dans les sessions .............................................................................. 19

Utilisation des projets ........................................................................................................................ 20Créer un projet ......................................................................................................................... 20

Prérequis ......................................................................................................................... 20Créer un projet (console) ................................................................................................... 20Créer un projet (AWS CLI) ................................................................................................. 20Créer un projet (API) ......................................................................................................... 21

Afficher la liste des projets ......................................................................................................... 21Prérequis ......................................................................................................................... 21Afficher la liste des projets (console) .................................................................................... 21Afficher la liste des projets (AWS CLI) ................................................................................. 21Afficher la liste des projets (API) ......................................................................................... 22

Utilisation des exécutions de test ........................................................................................................ 23Créer une exécution de test ....................................................................................................... 23

Prérequis ......................................................................................................................... 23Créer une exécution de test (console) .................................................................................. 23Créer une exécution de test (AWS CLI) ............................................................................... 26Créer une exécution de test (API) ....................................................................................... 33Étapes suivantes .............................................................................................................. 33

Définir le délai d'exécution ......................................................................................................... 34Prérequis ......................................................................................................................... 34Définir le délai d'exécution pour un projet ............................................................................. 34Définir le délai d'exécution d'une exécution de test ................................................................. 34

Simuler des connexions et des conditions réseau .......................................................................... 35Configurer la mise en forme réseau lors de la planification d'une exécution de test ....................... 35Créer un profil réseau ....................................................................................................... 36Modifier les conditions réseau pendant votre test ................................................................... 37

Arrêter une exécution ................................................................................................................ 37Arrêter une exécution (console) .......................................................................................... 37Arrêter une exécution (AWS CLI) ........................................................................................ 38Arrêter une exécution (API) ................................................................................................ 40

Afficher une liste d'exécutions ..................................................................................................... 40Afficher une liste d'exécutions (console) ............................................................................... 40Afficher une liste d'exécutions (AWS CLI) ............................................................................. 40Afficher une liste d'exécutions (API) ..................................................................................... 40

Créer un groupe d'appareils ....................................................................................................... 41Prérequis ......................................................................................................................... 41Créer un groupe d'appareils (console) .................................................................................. 41Créer un groupe d'appareils (AWS CLI) ............................................................................... 42Créer un groupe d'appareils (API) ....................................................................................... 42

Analyse des résultats ................................................................................................................ 42Utilisation des rapports de test ............................................................................................ 43Utilisation des artefacts ...................................................................................................... 49

Balisage dans Device Farm ................................................................................................................ 53Balisage des ressources ............................................................................................................ 53Recherche de ressources par balises .......................................................................................... 54Suppression de balises de ressources ......................................................................................... 54

Utilisation de types de tests ............................................................................................................... 55Frameworks de test .................................................................................................................. 55

Frameworks de test d'applications Android ........................................................................... 55Frameworks de test d'applications iOS ................................................................................. 55Frameworks de test d'applications Web ................................................................................ 55

Types de tests intégrés ............................................................................................................. 56Tests Android ........................................................................................................................... 56

Frameworks de test d'applications Android ........................................................................... 56

Version de l'API 2015-06-23iv

Page 5: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Types de tests intégrés pour Android ................................................................................... 56Appium Java TestNG ........................................................................................................ 57Appium Java JUnit ............................................................................................................ 62Appium Node.js ................................................................................................................ 67Appium Python ................................................................................................................. 70Appium Ruby ................................................................................................................... 75Calabash ......................................................................................................................... 79Instrumentation ................................................................................................................. 81UI Automator .................................................................................................................... 82

Tests iOS ................................................................................................................................ 84Frameworks de test d'applications iOS ................................................................................. 84Types de tests intégrés pour iOS ........................................................................................ 84Appium Java TestNG ........................................................................................................ 84Appium Java JUnit ............................................................................................................ 89Appium Node.js ................................................................................................................ 95Appium Python ................................................................................................................. 98Appium Ruby .................................................................................................................. 102Calabash ....................................................................................................................... 107UI Automation ................................................................................................................. 108XCTest .......................................................................................................................... 109XCTest UI ...................................................................................................................... 111

Tests d'applications Web .......................................................................................................... 112Règles concernant les appareils limités et illimités ................................................................ 112Appium Java TestNG ....................................................................................................... 113Appium Java JUnit .......................................................................................................... 118Appium Node.js .............................................................................................................. 123Appium Python ............................................................................................................... 126Appium Ruby .................................................................................................................. 131

Tests intégrés ......................................................................................................................... 134Types de tests intégrés .................................................................................................... 134Explorateur intégré (Android) ............................................................................................ 134Fuzz intégré (Android et iOS) ............................................................................................ 135

Utilisation d'environnements de test personnalisés ............................................................................... 137Syntaxe de la spécification de test ............................................................................................. 137Exemple de spécification de test ............................................................................................... 139Variables d'environnement ........................................................................................................ 140

Variables d'environnement courantes ................................................................................. 141Variables d'environnement Appium Java JUnit ..................................................................... 142Variables d'environnement Appium Java TestNG ................................................................. 142Variables d'environnement XCUITest .................................................................................. 142

Migration des tests .................................................................................................................. 143Framework Appium ......................................................................................................... 143Instrumentation Android .................................................................................................... 143Migration des tests XCUITest iOS existants ........................................................................ 143

Utilisation de l'accès à distance ......................................................................................................... 144Créer une session ................................................................................................................... 144

Prérequis ....................................................................................................................... 144Création d'une session à l'aide de la console Device Farm .................................................... 145Étapes suivantes ............................................................................................................. 145

Utiliser une session ................................................................................................................. 145Prérequis ....................................................................................................................... 146Utiliser une session dans la console Device Farm ................................................................ 146Étapes suivantes ............................................................................................................. 146Trucs et astuces ............................................................................................................. 146

Obtenir les résultats d'une session ............................................................................................. 147Prérequis ....................................................................................................................... 147Affichage des détails de la session .................................................................................... 147

Version de l'API 2015-06-23v

Page 6: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Téléchargement de vidéos ou de journaux de la session ....................................................... 147Utilisation des appareils privés .......................................................................................................... 148

Gestion des appareils privés ..................................................................................................... 148Créer un profil d’instance ................................................................................................. 149Gérer une instance d'appareil privé .................................................................................... 150Créer une série de tests ou une session d'accès à distance ................................................... 151Créer un groupe d'appareils privés .................................................................................... 152Étapes suivantes ............................................................................................................. 154

Ignorer la resignature d’applications ........................................................................................... 155Ignorer la resignature d'applications sur les appareils Android ................................................ 157Ignorer la resignature d'applications sur les appareils iOS ...................................................... 157Créer une session d'accès à distance pour approuver votre application .................................... 157

Utilisation des services de points de terminaison de VPC .............................................................. 159Avant de commencer ....................................................................................................... 159Étape 1 : Créer un service de point de terminaison de VPC ................................................... 160Étape 2 : Créer une configuration de point de terminaison de VPC .......................................... 161Étape 3  : Créer un test ..................................................................................................... 161

Utilisation entre régions ............................................................................................................ 162Prérequis ....................................................................................................................... 163Étape 1 : Connecter Device Farm à un VPC dans la même région .......................................... 163Étape 2  : Configurer VPC-1 .............................................................................................. 163Étape 3  : Configurer VPC-2 .............................................................................................. 165Étape 4  : Configurer VPC-1 .............................................................................................. 165Étape 5  : Configurer VPC-2 .............................................................................................. 166Étape 6  : Créer un test ..................................................................................................... 166

Journalisation des appels d'API à l'aide de AWS CloudTrail ................................................................... 167Informations AWS Device Farm dans CloudTrail .......................................................................... 167Présentation des entrées des fichiers journaux AWS Device Farm .................................................. 168

Intégration à CodePipeline ................................................................................................................ 170Configuration d'CodePipeline pour utiliser vos tests Device Farm .................................................... 170

Référence AWS CLI ........................................................................................................................ 175Référence relative à Windows PowerShell ........................................................................................... 176Automatisation d'Device Farm ........................................................................................................... 177

Exemple : Utilisation du kit SDK AWS pour démarrer une exécution Device Farm et collecter desartefacts ................................................................................................................................. 177

Dépannage ..................................................................................................................................... 180Applications Android ................................................................................................................ 180

ANDROID_APP_UNZIP_FAILED ........................................................................................ 180ANDROID_APP_AAPT_DEBUG_BADGING_FAILED ............................................................. 181ANDROID_APP_PACKAGE_NAME_VALUE_MISSING .......................................................... 182ANDROID_APP_SDK_VERSION_VALUE_MISSING ............................................................. 182ANDROID_APP_AAPT_DUMP_XMLTREE_FAILED .............................................................. 183ANDROID_APP_DEVICE_ADMIN_PERMISSIONS ............................................................... 183

Appium Java JUnit .................................................................................................................. 184APPIUM_JAVA_JUNIT_TEST_PACKAGE_PACKAGE_UNZIP_FAILED .................................... 185APPIUM_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ............................... 185APPIUM_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR .................... 186APPIUM_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING .................................. 187APPIUM_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR .................. 187APPIUM_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN ..................... 188APPIUM_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION ..................................... 189

Web Appium Java JUnit ........................................................................................................... 190APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_UNZIP_FAILED ............................................ 190APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ....................... 191APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR ........... 191APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING .......................... 192APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR .......... 193

Version de l'API 2015-06-23vi

Page 7: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN ............ 194APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION ............................ 195

Appium Java TestNG ............................................................................................................... 195APPIUM_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILED ................................................. 196APPIUM_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ............................ 196APPIUM_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR ................ 197APPIUM_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING ............................... 198APPIUM_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR .............. 198

Web Appium Java TestNG ....................................................................................................... 200APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILED ........................................ 200APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSING ................... 200APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR ....... 201APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING ...................... 202APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR ...... 202

Appium Python ....................................................................................................................... 204APPIUM_PYTHON_TEST_PACKAGE_UNZIP_FAILED .......................................................... 204APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSING ............................... 204APPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORM ................................................. 205APPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING .................................................. 206APPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME ....................................... 206APPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING ......................... 207APPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION ...................................... 208APPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED ................. 209APPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED ....................................... 210

Web Appium Python ................................................................................................................ 211APPIUM_WEB_PYTHON_TEST_PACKAGE_UNZIP_FAILED ................................................. 211APPIUM_WEB_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSING ...................... 211APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PLATFORM ........................................ 212APPIUM_WEB_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING ......................................... 213APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME ............................... 213APPIUM_WEB_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING ................ 214APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION .............................. 215APPIUM_WEB_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED ......... 216APPIUM_WEB_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED ............................... 217

Calabash ............................................................................................................................... 218CALABASH_TEST_PACKAGE_UNZIP_FAILED_UNZIP_FAILED ............................................ 218CALABASH_TEST_PACKAGE_FEATURES_DIR_MISSING_FEATURES_DIR_MISSING ............ 218CALABASH_TEST_PACKAGE_FEATURE_FILE_MISSING .................................................... 219CALABASH_TEST_PACKAGE_STEP_DEFINITIONS_DIR_MISSING ....................................... 220CALABASH_TEST_PACKAGE_SUPPORT_DIR_MISSING ..................................................... 220CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_STEP_DEFINITIONS_DIR ................ 221CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_SUPPORT_DIR .............................. 222CALABASH_TEST_PACKAGE_EMBEDDED_SERVER_MISSING ........................................... 222CALABASH_TEST_PACKAGE_DRY_RUN_FAILED .............................................................. 223

Instrumentation ....................................................................................................................... 224INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED ...................................................... 224INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED ........................... 225INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING ...... 225INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED ............................. 226INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING ............... 227

Applications iOS ...................................................................................................................... 228IOS_APP_UNZIP_FAILED ................................................................................................ 228IOS_APP_PAYLOAD_DIR_MISSING .................................................................................. 228IOS_APP_APP_DIR_MISSING ........................................................................................... 229IOS_APP_PLIST_FILE_MISSING ....................................................................................... 230IOS_APP_CPU_ARCHITECTURE_VALUE_MISSING ............................................................ 230IOS_APP_PLATFORM_VALUE_MISSING ........................................................................... 231

Version de l'API 2015-06-23vii

Page 8: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

IOS_APP_WRONG_PLATFORM_DEVICE_VALUE ............................................................... 232IOS_APP_FORM_FACTOR_VALUE_MISSING ..................................................................... 233IOS_APP_PACKAGE_NAME_VALUE_MISSING ................................................................... 234IOS_APP_EXECUTABLE_VALUE_MISSING ........................................................................ 235

UI Automator .......................................................................................................................... 236UIAUTOMATOR_TEST_PACKAGE_UNZIP_FAILED ............................................................. 236

XCTest .................................................................................................................................. 237XCTEST_TEST_PACKAGE_UNZIP_FAILED ........................................................................ 237XCTEST_TEST_PACKAGE_XCTEST_DIR_MISSING ............................................................ 237XCTEST_TEST_PACKAGE_PLIST_FILE_MISSING .............................................................. 238XCTEST_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSING .......................................... 238XCTEST_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING ............................................... 239

XCTest UI .............................................................................................................................. 240XCTEST_UI_TEST_PACKAGE_UNZIP_FAILED ................................................................... 240XCTEST_UI_TEST_PACKAGE_PAYLOAD_DIR_MISSING ..................................................... 241XCTEST_UI_TEST_PACKAGE_APP_DIR_MISSING ............................................................. 242XCTEST_UI_TEST_PACKAGE_PLUGINS_DIR_MISSING ...................................................... 242XCTEST_UI_TEST_PACKAGE_XCTEST_DIR_MISSING_IN_PLUGINS_DIR ............................. 243XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING ......................................................... 243XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING_IN_XCTEST_DIR ................................ 244XCTEST_UI_TEST_PACKAGE_CPU_ARCHITECTURE_VALUE_MISSING .............................. 245XCTEST_UI_TEST_PACKAGE_PLATFORM_VALUE_MISSING .............................................. 246XCTEST_UI_TEST_PACKAGE_WRONG_PLATFORM_DEVICE_VALUE .................................. 247XCTEST_UI_TEST_PACKAGE_FORM_FACTOR_VALUE_MISSING ....................................... 248XCTEST_UI_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSING ..................................... 249XCTEST_UI_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING .......................................... 249XCTEST_UI_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING ............................ 250XCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSING ................................. 251

Sécurité ......................................................................................................................................... 253Identity and Access Management .............................................................................................. 253

Public ciblé ..................................................................................................................... 253Authentification avec des identités ..................................................................................... 254Fonctionnement d'AWS Device Farm avec IAM ................................................................... 256Gestion de l'accès à l'aide de stratégies ............................................................................. 259Exemples de stratégies basées sur l'identité ........................................................................ 260Dépannage ..................................................................................................................... 263

Validation de la conformité ....................................................................................................... 265Protection des données ............................................................................................................ 266

Chiffrement en transit ...................................................................................................... 267Chiffrement au repos ....................................................................................................... 267Conservation des données ............................................................................................... 267Gestion des données ....................................................................................................... 267Gestion des clés ............................................................................................................. 268Confidentialité du trafic inter-réseaux .................................................................................. 268

Résilience .............................................................................................................................. 268Sécurité de l'infrastructure ........................................................................................................ 269

Sécurité de l'infrastructure pour les tests de périphériques physiques ...................................... 269Sécurité de l'infrastructure pour les tests du navigateur de bureau ........................................... 269

Configuration et analyse des vulnérabilités .................................................................................. 270Réponse aux incidents ............................................................................................................. 270Journalisation et surveillance .................................................................................................... 270Bonnes pratiques de sécurité .................................................................................................... 271

Limites ........................................................................................................................................... 272Outils et plug-ins ............................................................................................................................. 273

Plug-in Jenkins CI ................................................................................................................... 273Étape 1  : Installer le plug-in .............................................................................................. 276Étape 2 : Créer un utilisateur IAM ...................................................................................... 277

Version de l'API 2015-06-23viii

Page 9: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Étape 3 : Instructions pour la toute première configuration ..................................................... 278Étape 4  : Utiliser le plug-in ................................................................................................ 278Dépendances ................................................................................................................. 278

Plug-in Device Farm Gradle ...................................................................................................... 279Création du plug-in Gradle Device Farm ............................................................................. 279Configuration du plug-in Gradle Device Farm ...................................................................... 279Génération d'un utilisateur IAM .......................................................................................... 281Configuration des types de tests ....................................................................................... 282Dépendances ................................................................................................................. 284

Historique du document ................................................................................................................... 285Glossaire AWS ............................................................................................................................... 288

Version de l'API 2015-06-23ix

Page 10: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurTests automatisés d'applications

Qu'est-ce qu'AWS Device Farm ?Device Farm est un service de test d'applications que vous pouvez utiliser pour tester et interagir avec vosapplications Android, iOS et Web sur de véritables téléphones et tablettes physiques qui sont hébergés parAmazon Web Services (AWS).

Il existe deux façons principales d'utiliser Device Farm :

• Tests automatisés d'applications à l'aide de divers frameworks de test.• Accès à distance aux appareils sur lesquels vous pouvez charger des applications, les exécuter et

interagir avec elles en temps réel.

Tests automatisés d'applicationsDevice Farm vous permet de charger vos propres tests ou d'utiliser des tests de compatibilité sansscript intégrés. Étant donné que les tests sont exécutés en parallèle, les tests sur plusieurs appareilscommencent en quelques minutes.

Au fur et à mesure que les tests sont terminés, un rapport de test contenant des résultats généraux, desjournaux détaillés, des captures d'écran pixel par pixel et des données de performances est mis à jour.

Device Farm prend en charge l'exécution de tests sur des applications natives et hybrides Android, iOS etFire OS, y compris celles créées avec PhoneGap, Titanium, Xamarin, Unity et d'autres infrastructures. Ilprend en charge l'accès à distance à des applications Android et iOS à des fins de tests interactifs. Pourplus d'informations sur les types de tests pris en charge, consultez Utilisation de types de tests dans AWSDevice Farm (p. 55).

Interaction par accès à distanceL'accès à distance vous permet de faire glisser, d'appuyer et d'interagir avec un appareil par le biais devotre navigateur Web en temps réel. Il existe un certain nombre de situations où l'interaction en tempsréel à l'aide d'un appareil est utile. Par exemple, les représentants du service client peuvent aider lesclients à utiliser ou à configurer leur appareil. Ils peuvent également montrer aux clients comment utiliserles applications s'exécutant sur un appareil spécifique. Vous pouvez installer des applications sur unappareil s'exécutant dans une session d'accès à distance, puis reproduire les problèmes des clients ou lesproblèmes détectés.

Pendant une session d'accès à distance, Device Farm collecte des informations sur les actions quevous effectuez au fur et à mesure que vous interagissez avec l'appareil. Des journaux contenant cesinformations et une capture vidéo de la session sont générés à la fin de la session.

TerminologieDevice Farm présente les conditions suivantes pour définir la façon dont les informations sont organisées :

groupe d'appareils

Ensemble d'appareils qui partagent généralement des caractéristiques similaires, comme uneplateforme, un fabricant ou un modèle.

Version de l'API 2015-06-231

Page 11: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration

job

Demande à Device Farm de tester une application unique sur un seul appareil. Une tâche contient uneou plusieurs suites.

mesure

Fait référence à la facturation des appareils. Vous pouvez voir des références à des appareils limitésou illimités dans la documentation et le document de référence d'API. Pour plus d'informations sur latarification, consultez Tarification AWS Device Farm.

project

Espace de travail logique contenant des exécutions, une par test d'une seule application par rapportà un ou plusieurs appareils. Vous pouvez utiliser des projets pour organiser les espaces de travailcomme vous le souhaitez. Par exemple, vous pouvez avoir un projet par titre d'application ou un projetpar plateforme. Vous pouvez créer autant de projets que vous en avez besoin.

report

Contient des informations sur une exécution, qui constitue une demande à Device Farm de tester uneapplication sur un ou plusieurs appareils. Pour plus d'informations, consultez Rapports (p. 17).

run

Build spécifique de votre application, avec un ensemble de tests spécifique, à exécuter sur unensemble d'appareils spécifique. Une exécution génère un rapport de résultats. Une exécution contientune ou plusieurs tâches. Pour plus d'informations, consultez Exécutions (p. 15).

session

Interaction en temps réel avec un appareil physique réel via votre navigateur web. Pour plusd'informations, consultez Sessions (p. 18).

suite

Organisation hiérarchique des tests dans un package de test. Une suite contient un ou plusieurs tests.test

Cas de test individuel dans un package de test.

Pour plus d'informations sur Device Farm, consultez Concepts (p. 13).

ConfigurationPour utiliser Device Farm, consultez Configuration (p. 3).

Version de l'API 2015-06-232

Page 12: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 1 : S'inscrire à AWS

Configuration d'AWS Device FarmAvant d'utiliser Device Farm pour la première fois, vous devez effectuer les tâches suivantes :

Rubriques• Étape 1 : S'inscrire à AWS (p. 3)• Étape 2 : Créer ou utiliser un utilisateur IAM dans votre compte AWS (p. 3)• Étape 3 : Accorder à l'utilisateur IAM l'autorisation d'accéder à Device Farm (p. 3)• Étape suivante (p. 4)

Étape 1 : S'inscrire à AWSInscrivez-vous à Amazon Web Services (AWS).

Si vous n'avez pas de compte AWS, suivez la procédure suivante pour en créer un.

Pour s'inscrire sur AWS

1. Ouvrez https://aws.amazon.com/, puis choisissez Create an AWS Account.2. Suivez les instructions en ligne.

Étape 2 : Créer ou utiliser un utilisateur IAM dansvotre compte AWS

Nous vous recommandons de ne pas utiliser votre compte racine AWS pour accéder à Device Farm. Àla place, créez un utilisateur AWS Identity and Access Management (IAM) (ou utilisez un utilisateur IAMexistant) dans votre compte AWS, puis accédez à Device Farm avec cet utilisateur IAM.

Pour plus d'informations, consultez Création d'un utilisateur IAM (AWS Management Console).

Étape 3 : Accorder à l'utilisateur IAM l'autorisationd'accéder à Device Farm

Accordez à l'utilisateur IAM l'autorisation d'accéder à Device Farm. Pour ce faire, créez une stratégied'accès dans IAM, puis attribuez-la à l'utilisateur IAM comme suit.

Note

Le compte racine AWS ou l'utilisateur IAM que vous utilisez pour effectuer les étapes suivantesdoit avoir l'autorisation de créer la stratégie IAM suivante et de l'attacher à l'utilisateur IAM. Pourplus d'informations, consultez Utilisation de stratégies.

Pour créer la stratégie d'accès dans IAM

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

Version de l'API 2015-06-233

Page 13: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape suivante

2. Choisissez Stratégies.3. Choisissez Créer une stratégie. (Si un bouton Mise en route est affiché, choisissez-le, puis choisissez

Créer une stratégie.)4. En regard de Créer votre propre stratégie, choisissez Sélectionner.5. Dans le champ Nom de la stratégie, entrez un nom de stratégie (par exemple

AWSDeviceFarmAccessPolicy).6. Dans le champ Description, saisissez Provides access to all Device Farm actions

associated with the IAM user.

7. Dans le champ Document de stratégie, entrez l'instruction suivante :

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

8. Choisissez Créer une stratégie.

Pour attribuer la stratégie d'accès à l'utilisateur IAM

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Choisissez Utilisateurs.3. Choisissez votre utilisateur IAM.4. Dans la zone Autorisations, choisissez Ajouter des autorisations.5. Dans la zone Accorder des autorisations, choisissez Attacher directement les stratégies existantes.6. Sélectionnez la stratégie que vous venez de créer (par exemple AWSDeviceFarmAccessPolicy).7. Choisissez Suivant : Vérification.8. Dans la zone Récapitulatif des autorisations, choisissez Ajouter des autorisations.

Note

Attacher la stratégie permet de fournir à l'utilisateur IAM l'accès à toutes les actions Device Farmassociées à cet utilisateur IAM. Pour plus d'informations sur la façon de limiter les utilisateurs IAMà un ensemble limité d'actions Device Farm, consultez Identity and Access Management dansAWS Device Farm (p. 253).

Étape suivanteVous êtes maintenant prêt à commencer à utiliser Device Farm. Voir Mise en route (p. 5).

Version de l'API 2015-06-234

Page 14: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPrérequis

Premiers pas avec AWS Device FarmCette procédure vous indique comment utiliser Device Farm pour tester une application Android ou iOSnative. Vous utilisez la console Device Farm pour créer un projet, charger un fichier .apk ou .ipa, exécuterune suite de tests standard, puis afficher les résultats.

Rubriques• Prérequis (p. 5)• Etape 1 : Se connecter à la console (p. 5)• Etape 2 : Créer un projet (p. 5)• Etape 3 : Créer et démarrer une exécution (p. 6)• Etape 4 : Afficher les résultats de l'exécution (p. 7)• Étapes suivantes (p. 7)

PrérequisAvant de commencer, assurez-vous de respecter les prérequis suivants :

• Suivez les étapes de Configuration (p. 3). Vous avez besoin d'un compte AWS et d'un utilisateur IAMayant l'autorisation d'accéder à Device Farm.

• Pour Android, vous avez besoin d'un fichier .apk (package d'application Android). Pour iOS, vousavez besoin d'un fichier .ipa (archive d'application iOS). Vous chargerez ce fichier dans Device Farmultérieurement dans cette procédure.

Note

Assurez-vous que votre fichier .ipa est conçu pour un appareil iOS et non pour un simulateur.• (Facultatif) Vous avez besoin d'un test d'un des types de tests pris en charge par Device Farm. Vous

chargerez ce package de test dans Device Farm, puis exécuterez le test ultérieurement dans cetteprocédure. (Si vous ne disposez pas d'un package de test disponible, vous pouvez spécifier et exécuterune suite de tests intégrée standard.) Pour plus d'informations, consultez Utilisation de types de testsdans AWS Device Farm (p. 55).

Note

AWS Device Farm est disponible uniquement dans la région us-west-2 (Oregon).

Etape 1 : Se connecter à la consoleVous pouvez utiliser la console Device Farm pour créer et gérer les projets et les exécutions pour les tests.Vous découvrirez les projets et les exécutions ultérieurement dans cette procédure.

• Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.

Etape 2 : Créer un projetPour tester une application dans Device Farm, vous devez d'abord créer un projet.

Version de l'API 2015-06-235

Page 15: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurEtape 3 : Créer et démarrer une exécution

1. Sur la page de la console Device Farm, entrez le nom de votre projet (par exemple, MyDemoProject).

2. Choisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.

Etape 3 : Créer et démarrer une exécutionMaintenant que vous disposez d'un projet, vous pouvez créer et démarrer une exécution. Pour plusd'informations, consultez Exécutions (p. 15).

1. Choisissez MyDemoProject.2. Sur la page Automated tests (Tests automatisés), choisissez Create a new run (Créer une nouvelle

exécution).3. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).4. Recherchez et sélectionnez votre fichier d'application Android ou iOS. Pour Android, le fichier doit

être au format .apk. Pour iOS, le fichier doit être au format .ipa et conçu pour un appareil, pas pour lesimulateur.

5. Choisissez Next step (Étape suivante).6. Sur la page Configure a test (Configurer un test), choisissez l'une des suites de tests.

Note

Si vous ne disposez d'aucun test disponible, choisissez Built-in: Fuzz (Fuzz intégré) pourexécuter une suite de tests intégrée standard. Dans le cadre de cette procédure, si vouschoisissez Built-in: Fuzz (Fuzz intégré), conservez les valeurs par défaut dans les zonesEvent count (Nombre d'événements), Event throttle (Limitation d'événement) et Randomizerseed (Valeur initiale de générateur aléatoire).

7. Si vous n'avez pas choisi Built-in: Fuzz (Fuzz intégré), choisissez Upload (Charger), puis recherchez etchoisissez le fichier contenant vos tests.

8. Choisissez Next step (Étape suivante).9. Sur la page Select devices (Sélectionner les appareils), pour Device pool (Groupe d'appareils),

choisissez Top Devices (Principaux appareils) pour sélectionner le groupe d'appareils, puis choisissezNext Step (Étape suivante).

10. Sur la page Specify device state (Spécifier l'état de l'appareil), effectuez l'une des opérationssuivantes :

• Pour fournir des données supplémentaires qui seront utilisées par Device Farm lors de l'exécution,en regard de Add extra data (Ajouter des données supplémentaires), choisissez Upload (Charger),puis recherchez et choisissez le fichier .zip.

• Pour installer une application supplémentaire qui sera utilisée par Device Farm lors de l'exécution,en regard de Install other apps (Installer d'autres applications), choisissez Upload (Charger), puisrecherchez et choisissez le fichier .apk ou .ipa contenant l'application. Répétez la procédure pourtoutes les autres applications que vous voulez installer. Vous pouvez modifier l'ordre d'installation enfaisant glisser et en déplaçant les applications.

Version de l'API 2015-06-236

Page 16: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurEtape 4 : Afficher les résultats de l'exécution

• Pour spécifier si le Wi-Fi, le Bluetooth, le GPS ou le NFC doivent être activés pendant l'exécution, enregard de Set radio states (Définir les états radio), cochez les cases appropriées.

Note

Actuellement, la définition de l'état radio du périphérique est disponible uniquement pour lestests natifs Android.

• Pour prédéfinir la latitude et la longitude de l'appareil pour l'exécution, saisissez les coordonnées enregard de Device location (Emplacement de l'appareil).

• Pour prédéfinir les paramètres régionaux de l'appareil pour l'exécution, choisissez-les dans DeviceLocale (Paramètres régionaux de l'appareil).

• Pour prédéfinir le profil réseau pour l'exécution, choisissez un profil dans Network profil (Profilréseau) ou choisissez Create a new profile (Créer un profil) pour créer le vôtre.

11. Choisissez Next step (Étape suivante).12. Sur la page Review and start run (Vérifier et démarrer l'exécution), choisissez Confirm and start run

(Confirmer et démarrer l'exécution).

Device Farm doit commencer l'exécution dès que les appareils sont disponibles, en général au bout de

quelques minutes. Jusqu'au démarrage de l'exécution, Device Farm affiche une icône de calendrier .Après le démarrage de l'exécution, les résultats s'affichent lorsque les tests sont terminés. Pendant ce

temps, Device Farm affiche une icône de progression .

Etape 4 : Afficher les résultats de l'exécutionL'exécution est terminée lorsque l'icône de progression devient une icône de résultat. Pour plusd'informations, consultez Présentation des résultats de test (p. 43).

Pour afficher les résultats, choisissez l'exécution terminée dans la console Device Farm. Une pagerécapitulative affiche :

• Le nombre total de tests, par résultat.• Des listes des tests comportant des avertissements ou des échecs uniques.• Une liste des appareils et des résultats des tests pour chacun d'eux.• Toutes les captures d'écran effectuées pendant l'exécution, regroupées par appareil.

Pour plus d'informations, consultez Utilisation des rapports de test (p. 43).

Vous avez maintenant terminé cette procédure pas à pas.

Étapes suivantesPour plus d'informations sur Device Farm, consultez Concepts (p. 13).

Version de l'API 2015-06-237

Page 17: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAcheter des emplacements d'appareils (console)

Acheter un emplacement d'appareildans AWS Device Farm

Vous pouvez utiliser la console AWS Device Farm, l'AWS Command Line Interface (AWS CLI) ou l'APIAWS Device Farm pour acheter un emplacement d'appareil.

Rubriques• Acheter des emplacements d'appareils (console) (p. 8)• Acheter un emplacement d'appareil (AWS CLI) (p. 9)• Acheter un emplacement d'appareil (API) (p. 12)

Acheter des emplacements d'appareils (console)1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Faites défiler la page jusqu'à la section UNLIMITED ACCESS (Accès illimité) et choisissez le lien

Learn more about unlimited testing (En savoir plus sur les tests illimités).3. Sur la page Packages, vous pouvez sélectionner l'un des packages préconfigurés (SINGLE

PLATFORM (Plateforme unique), CROSS PLATFORM (Multiplateforme) ou CONTINUOUSINTEGRATION (Intégration continue)) ou créer votre propre package personnalisé en choisissant lenombre d'emplacements de chaque type que vous souhaitez acheter.

Note

Si vous choisissez l'un des packages préconfigurés, vous devez sélectionner Automatedtesting (Test automatisé), Remote access (Accès à distance) ou les deux.

Le texte est mis à jour de manière dynamique avec le montant qui sera ajouté à votre facture. Pourplus d'informations, consultez Tarification Device Farm.

4. Choisissez Buy now (Acheter maintenant), puis Complete purchase (Terminer l'achat).

Si vous voyez Contact us (Contactez-nous) ou Contact us to purchase (Contactez-nous pour acheter),cela signifie que votre compte n'est pas encore approuvé pour acheter le nombre d'emplacementsd'appareils que vous avez demandé. Dans la boîte de dialogue Send us feedback for the DeviceFarm Console (Envoyez-nous vos commentaires sur la console Device Farm), entrez le nombred'emplacements de chaque type que vous souhaitez acheter, puis choisissez Contact Support(Contacter le support).

Version de l'API 2015-06-238

Page 18: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAcheter un emplacement d'appareil (AWS CLI)

Sur la page Account settings (Paramètres du compte), le message You have xxx FREE TRIAL MINUTESremaining (Il vous reste xxx minutes d'essai gratuit) s'affiche uniquement s'il vous reste quelques minutesd'essai gratuit. Le nombre de minutes restantes est une estimation. Il ne reflète pas l'utilisation par les testsqui sont en cours d'exécution.

Le nombre d'emplacements d'appareils dont vous disposez actuellement s'affiche également. Si vous avezaugmenté ou diminué le nombre d'emplacements, le nombre d'emplacements dont vous disposerez unmois après la date de votre modification s'affiche.

Acheter un emplacement d'appareil (AWS CLI)Pour acheter l'offre, vous pouvez exécuter la commande purchase-offering.

Pour répertorier vos paramètres de compte Device Farm, notamment le nombre maximal d'emplacementsd'appareils que vous pouvez acheter et le nombre de minutes d'essai gratuit restantes, exécutez lacommande get-account-settings. Des résultats similaires à ce qui suit s'affichent :

{ "accountSettings": { "maxSlots": { "GUID": 1, "GUID": 1, "GUID": 1, "GUID": 1 }, "unmeteredRemoteAccessDevices": { "ANDROID": 0, "IOS": 0 }, "maxJobTimeoutMinutes": 150, "trialMinutes": { "total": 1000.0, "remaining": 954.1 }, "defaultJobTimeoutMinutes": 150, "awsAccountNumber": "AWS-ACCOUNT-NUMBER", "unmeteredDevices": { "ANDROID": 0, "IOS": 0 } }}

Version de l'API 2015-06-239

Page 19: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAcheter un emplacement d'appareil (AWS CLI)

Pour obtenir une liste des offres d'emplacements d'appareils dont vous pouvez bénéficier, exécutez lacommande list-offerings. Vous devez obtenir des résultats similaires à ce qui suit :

{ "offerings": [ { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Unmetered Device Slot" }, { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "ANDROID", "type": "RECURRING", "id": "GUID", "description": "Android Unmetered Device Slot" }, { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "ANDROID", "type": "RECURRING", "id": "GUID", "description": "Android Remote Access Unmetered Device Slot" }, { "recurringCharges": [ { "cost": { "amount": 250.0, "currencyCode": "USD" }, "frequency": "MONTHLY" } ], "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Remote Access Unmetered Device Slot" }

Version de l'API 2015-06-2310

Page 20: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAcheter un emplacement d'appareil (AWS CLI)

]}

Pour obtenir une liste des offres promotionnelles disponibles, exécutez la commande list-offering-promotions.

Note

Cette commande renvoie uniquement les promotions dont vous n'avez pas encore bénéficié. Dèsque vous achetez un ou plusieurs emplacements dans n'importe quelle offre en bénéficiant d'unepromotion, celle-ci ne s'affiche plus dans les résultats.

Vous devez visualiser des résultats similaires à ce qui suit :

{ "offeringPromotions": [ { "id": "2FREEMONTHS", "description": "New device slot customers get 3 months for the price of 1." } ]}

Pour obtenir le statut des offres, exécutez la commande get-offering-status. Vous devez visualiser desrésultats similaires à ce qui suit :

{ "current": { "GUID": { "offering": { "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Unmetered Device Slot" }, "quantity": 1 }, "GUID": { "offering": { "platform": "ANDROID", "type": "RECURRING", "id": "GUID", "description": "Android Unmetered Device Slot" }, "quantity": 1 } }, "nextPeriod": { "GUID": { "effectiveOn": 1459468800.0, "offering": { "platform": "IOS", "type": "RECURRING", "id": "GUID", "description": "iOS Unmetered Device Slot" }, "quantity": 1 }, "GUID": { "effectiveOn": 1459468800.0, "offering": { "platform": "ANDROID", "type": "RECURRING",

Version de l'API 2015-06-2311

Page 21: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAcheter un emplacement d'appareil (API)

"id": "GUID", "description": "Android Unmetered Device Slot" }, "quantity": 1 } }}

Les commandes renew-offering et list-offering-transactions sont également disponibles pour cette fonction.Pour plus d'informations, consultez la Référence d'AWS CLI pour Device Farm et Référence AWSCLI (p. 175).

Acheter un emplacement d'appareil (API)1. Appelez l'opération GetAccountSettings pour répertorier les paramètres de votre compte.2. Appelez l'opération ListOfferings pour répertorier les offres d'emplacements d'appareils dont vous

pouvez bénéficier.3. Appelez l'opération ListOfferingPromotions pour répertorier les promotions qui sont disponibles.

Note

Cette commande renvoie uniquement les promotions dont vous n'avez pas encorebénéficié. Dès que vous achetez un ou plusieurs emplacements en bénéficiant d'une offrepromotionnelle, cette promotion ne s'affiche plus dans les résultats.

4. Appelez l'opération PurchaseOffering pour acheter une offre.5. Appelez l'opération GetOfferingStatus pour obtenir le statut de l'offre.

Les commandes RenewOffering et ListOfferingTransactions sont également disponibles pour cettefonction.

Pour plus d'informations sur l'utilisation de l'API Device Farm, consultez Automatisation d'DeviceFarm (p. 177).

Version de l'API 2015-06-2312

Page 22: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppareils

Concepts AWS Device FarmCette section passe en revue d'importants concepts de Device Farm.

• Appareils (p. 13)• Environnements de test (p. 14)• Exécutions (p. 15)• Rapports (p. 17)• Sessions (p. 18)

Pour plus d'informations sur les types de tests pris en charge dans Device Farm, consultez Utilisation detypes de tests dans AWS Device Farm (p. 55).

Prise en charge d'appareils dans AWS Device FarmLes sections suivantes fournissent des informations sur la prise en charge d'appareils dans Device Farm.

Rubriques• Appareils pris en charge (p. 13)• Groupes d'appareils (p. 13)• Appareils privés (p. 13)• Personnalisation d'appareils (p. 14)• Emplacements d'appareils (p. 14)• Applications d'appareil préinstallées (p. 14)• Capacités des appareils (p. 14)

Appareils pris en chargeDevice Farm fournit la prise en charge de plusieurs centaines d'appareils Android, iOS et Fire OS uniqueset populaires, et de combinaisons de systèmes d'exploitation. La liste des appareils disponibles s'accroît àmesure que de nouveaux appareils sont lancés. Pour voir la liste complète des appareils, consultez Listedes appareils.

Groupes d'appareilsDevice Farm organise ses appareils en groupes d'appareils que vous pouvez utiliser à des fins de test. Cesgroupes d'appareils contiennent des appareils connexes, tels que des appareils s'exécutant sur Android ousur iOS uniquement. Device Farm fournit des groupes d'appareils organisés, comme ceux des principauxappareils. Vous pouvez également créer des pools d'appareils afin de combiner des appareils publics etprivés.

Appareils privésLes appareils privés vous permettent d'indiquer les configurations matérielles et logicielles exactes pourrépondre à vos besoins en termes de tests. Chaque appareil privé est un appareil physique déployé parDevice Farm en votre nom dans un centre de données Amazon. Vos appareils privés sont disponiblesexclusivement pour des tests manuels et automatiques. Une fois que vous avez choisi de mettre fin à votre

Version de l'API 2015-06-2313

Page 23: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPersonnalisation d'appareils

abonnement, le matériel est retiré de notre environnement. Pour plus d'informations, consultez Appareilsprivés et Utilisation des appareils privés dans AWS Device Farm (p. 148).

Personnalisation d'appareilsDevice Farm exécute des tests sur des appareils physiques et sans racine qui sont à la fois appareils OEMet des appareils personnalisés par les opérateurs.

Emplacements d'appareilsLes emplacements d'appareils correspondent à la simultanéité dans laquelle le nombre d'emplacementsd'appareils que vous avez acheté détermine le nombre d'appareils que vous pouvez exécuter dans destests ou des sessions d'accès à distance.

Il existe deux types d'emplacements d'appareils :

• Un emplacement d'appareil pour l'accès à distance vous permet d'exécuter des sessions d'accès àdistance simultanément.

Si vous disposez d'un emplacement d'appareil pour l'accès à distance, vous pouvez uniquementexécuter des tests sur une session d'accès à distance à la fois. Si vous achetez des emplacementsd'appareils de test à distance supplémentaires, vous pouvez exécuter plusieurs sessions simultanément.

• Un emplacement d'appareil de test automatisé vous permet d'exécuter des tests simultanément.

Si vous disposez d'un emplacement d'appareil de test automatisé, vous pouvez uniquement exécuterdes tests sur un appareil à la fois. Si vous achetez des emplacements d'appareils de test automatisésupplémentaires, vous pouvez exécuter plusieurs tests simultanément sur plusieurs appareils afind'obtenir des résultats de test plus rapidement.

Vous pouvez acheter des emplacements d'appareils en fonction du type d'appareil (appareils Androidou iOS pour les tests automatisés et appareils iOS et Android pour l'accès à distance). Pour plusd'informations, consultez Tarification Device Farm.

Applications d'appareil préinstalléesDans Device Farm, les appareils incluent un petit nombre d'applications qui sont déjà préinstallées par lesfabricants et les opérateurs.

Capacités des appareilsTous les appareils disposent d'une connexion Wi-Fi à Internet. Ils ne disposent pas de connexion à unopérateur. Ils ne peuvent donc pas être utilisés pour passer des appels ou envoyer des SMS.

Vous pouvez prendre des photos avec n'importe quel appareil disposant d'une caméra frontale ou arrière.En raison de la manière dont les appareils sont montés, les photos peuvent être sombres ou floues.

Les services Google Play sont installés sur les appareils qui les prennent en charge, mais ces appareils nedisposent pas de compte Google actif.

Environnements de test dans AWS Device FarmAWS Device Farm fournit des environnements de test standard et personnalisés pour l'exécution de vostests automatisés. Vous pouvez choisir un environnement de test personnalisé pour avoir un contrôle

Version de l'API 2015-06-2314

Page 24: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurEnvironnement de test standard

total sur vos tests automatisés. Sinon, vous pouvez choisir l'environnement de test standard par défaut deDevice Farm, qui offre des rapports détaillés sur chaque test de votre suite de tests automatisés.

Rubriques• Environnement de test standard (p. 15)• Environnement de test personnalisé (p. 15)

Environnement de test standardLorsque vous exécutez un test dans l'environnement standard, Device Farm fournit des journauxdétaillés et des rapports pour chaque test de votre suite de tests. Vous pouvez consulter des donnéesde performance, des vidéos, des captures d'écran et des journaux pour chaque test afin d'identifier et derésoudre les problèmes de votre application.

Note

Étant donné que Device Farm fournit des rapports détaillés dans l'environnement standard, ladurée d'exécution des tests peut être plus longue que lorsque vous exécutez vos tests localement.Si vous souhaitez des temps d'exécution plus rapides, exécutez vos tests dans un environnementde test personnalisé.

Environnement de test personnaliséLorsque vous personnalisez l'environnement de test, vous pouvez spécifier les commandes que DeviceFarm doit exécuter pour exécuter vos tests. Cela garantit que les tests sur Device Farm sont exécutésd'une manière similaire aux tests exécutés sur votre ordinateur local. L'exécution des tests dans ce modevous permet également d'obtenir des journaux en direct et un streaming vidéo de vos tests. Lorsquevous exécutez des tests dans un environnement de test personnalisé, vous n'obtenez pas des rapportsdétaillés pour chaque test. Pour plus d'informations, consultez Utilisation d'environnements de testpersonnalisés (p. 137).

Vous avez la possibilité d'utiliser un environnement de test personnalisé lorsque vous utilisez la consoleDevice Farm, l'AWS CLI ou l'API Device Farm pour créer une exécution test.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Exécutions dans AWS Device FarmLes sections suivantes contiennent des informations sur les exécutions dans Device Farm.

Une exécution dans Device Farm représente une build (génération) spécifique de votre application, avec unensemble de tests spécifique, à exécuter sur un ensemble d'appareils spécifique. Une exécution génère unrapport contenant des informations sur les résultats de l'exécution. Une exécution contient une ou plusieurstâches.

Rubriques• Configuration d'exécution (p. 16)• Conservation des fichiers d'exécution (p. 16)• Etat d'appareil d'exécution (p. 16)• Exécutions parallèles (p. 16)• Définition du délai d'exécution (p. 16)

Version de l'API 2015-06-2315

Page 25: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration d'exécution

• Applications d'instrumentation (p. 16)• Resignature des applications lors des exécutions (p. 16)• Applications brouillées dans les exécutions (p. 17)• Publicités dans les exécutions (p. 17)• Multimédia dans les exécutions (p. 17)• Tâches courantes pour les exécutions (p. 17)

Configuration d'exécutionDans le cadre d'une exécution, vous pouvez fournir des paramètres que Device Farm peut utiliser pourremplacer les paramètres de l'appareil actuel. Ceux-ci incluent les coordonnées de latitude et de longitude,les paramètres régionaux, les états de radio (par exemple, Bluetooth, GPS, NFC et Wi-Fi), des donnéessupplémentaires (contenues dans un fichier .zip), et des applications auxiliaires (qui doivent être installéesavant que l'application soit testée).

Conservation des fichiers d'exécutionDevice Farm stocke vos applications et fichiers pendant 30 jours, puis les supprime de son système.Toutefois, vous pouvez supprimer vos fichiers à tout moment.

Device Farm stocke les résultats et captures d'écran de vos tests pendant 400 jours, puis les supprime deson système.

Etat d'appareil d'exécutionDevice Farm redémarre toujours un appareil avant de le rendre disponible pour la prochaine tâche.

Exécutions parallèlesDevice Farm exécute des tests en parallèle à mesure que les appareils deviennent disponibles.

Définition du délai d'exécutionVous pouvez définir une valeur de durée d'exécution des tests avant d'empêcher chaque appareild'exécuter un test. Par exemple, si vos tests prennent 20 minutes par appareil, vous devez choisir un délaid'exécution de 30 minutes par appareil.

Pour plus d'informations, consultez Définir le délai d'exécution des tests dans AWS Device Farm (p. 34).

Applications d'instrumentationVous n'avez pas besoin d'instrumenter vos applications ou de fournir à Device Farm le code source de vosapplications. Les applications Android peuvent être envoyées non modifiées. Les applications iOS doiventêtre conçues pour la cible iOS Device (Appareil iOS) et non pour le simulateur.

Resignature des applications lors des exécutionsPour les applications iOS, vous n'avez besoin d'ajouter aucun UUID Device Farm à votre profil de miseen service. Device Farm remplace le profil de mise en service intégré par un profil générique, puisresigne l'application. Si vous fournissez des données auxiliaires, Device Farm les ajoute au package del'application avant de l'installer, de sorte que ces données auxiliaires existent dans l'environnement de

Version de l'API 2015-06-2316

Page 26: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurApplications brouillées dans les exécutions

test de votre application. Device Farm La resignature de l'application entraîne la suppression de droitstels que Groupe d'applications, Domaines associés, Game Center, HealthKit, HomeKit, Configuration desaccessoires sans fil, Achats intégrés, Inter-App Audio, Apple Pay, Notifications Push et Configuration etcontrôle du VPN.

Pour les applications Android, Device Farm resigne l'application. Cela peut interrompre les fonctionnalitésreposant sur la signature de l'application, comme l'API Google Maps pour Android, ou cela peut déclencherla détection anti-piratage ou anti-intrusion dans des produits comme DexGuard.

Applications brouillées dans les exécutionsPour les applications Android, si l'application est brouillée, vous pouvez toujours la tester avec DeviceFarm à condition d'utiliser ProGuard. Toutefois, si vous utilisez DexGuard avec des mesures anti-piratage,Device Farm ne peut pas resigner l'application et exécuter des tests dessus.

Publicités dans les exécutionsNous vous recommandons de supprimer les publicités de vos applications avant de les charger dansDevice Farm. Nous ne pouvons pas garantir l'affichage des publicités lors des exécutions.

Multimédia dans les exécutionsVous pouvez fournir du multimédia ou d'autres données pour accompagner votre application. Les donnéessupplémentaires doivent être fournies dans un fichier .zip d'une taille inférieure à 4 Go.

Tâches courantes pour les exécutionsPour plus d'informations, consultez Créer une exécution de test dans AWS Device Farm (p. 23) etUtilisation des exécutions de test (p. 23).

Rapports dans AWS Device FarmLes sections suivantes fournissent des informations sur les rapports de test Device Farm.

Rubriques• Conservation des rapports (p. 17)• Composants des rapports (p. 17)• Exemples de performances dans les rapports (p. 18)• Les journaux dans les rapports (p. 18)• Tâches courantes pour les rapports (p. 18)

Conservation des rapportsDevice Farm stocke vos rapports pendant 400 jours. Ces rapports incluent des métadonnées, desjournaux, des captures d'écran et des données de performance.

Composants des rapportsDans Device Farm, les rapports contiennent des informations sur les succès et les échecs, des rapports deplantage, des journaux sur les tests et les appareils, des captures d'écran et des données de performance.

Version de l'API 2015-06-2317

Page 27: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemples de performances dans les rapports

Les rapports incluent des données détaillées par appareil et des résultats généraux, tels que le nombred'occurrences d'un problème donné.

Exemples de performances dans les rapportsPendant une série de tests, Device Farm capture des exemples de performances toutes les secondes.

Les journaux dans les rapportsLes rapports incluent des captures logcat complètes pour les tests Android et des journaux de consoled'appareil complets pour les tests iOS.

Tâches courantes pour les rapportsPour plus d'informations, consultez Utilisation des rapports de test (p. 43).

Sessions dans AWS Device FarmVous pouvez utiliser Device Farm pour effectuer des tests interactifs sur des applications Android etiOS grâce à des sessions d'accès à distance dans un navigateur Web. Ce type de test interactif permet,lors d'un appel client, d'aider les ingénieurs à résoudre le problème du client, étape par étape. Lesdéveloppeurs peuvent reproduire un problème sur un appareil spécifique pour isoler l'origine du problème.Vous pouvez utiliser des sessions à distance pour effectuer des tests d'utilisation avec vos clients cibles.

Rubriques• Appareils pris en charge pour l'accès à distance (p. 18)• Conservation des fichiers de session (p. 18)• Applications d'instrumentation (p. 18)• Resignature d'applications lors de sessions (p. 19)• Applications brouillées dans les sessions (p. 19)

Appareils pris en charge pour l'accès à distanceDevice Farm prend en charge un certain nombre d'appareils iOS et Android populaires uniques. La listedes appareils disponibles s'accroît à mesure que de nouveaux appareils sont lancés. La console DeviceFarm affiche la liste actuelle des appareils Android et iOS disponibles pour l'accès à distance. Pour plusd'informations, consultez Appareils (p. 13).

Conservation des fichiers de sessionDevice Farm stocke vos applications et fichiers pendant 30 jours, puis les supprime de son système.Toutefois, vous pouvez supprimer vos fichiers à tout moment.

Device Farm stocke les journaux et vidéos capturées de vos sessions pendant 400 jours, puis les supprimede son système.

Applications d'instrumentationVous n'avez pas besoin d'instrumenter vos applications ou de fournir à Device Farm le code source de vosapplications. Les applications Android et iOS peuvent être envoyées non modifiées.

Version de l'API 2015-06-2318

Page 28: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurResignature d'applications lors de sessions

Resignature d'applications lors de sessionsDevice Farm resigne les applications Android et iOS. Cela peut interrompre les fonctionnalités reposant surla signature de l'application. Par exemple, l'API Google Maps pour Android dépend de la signature de votreapplication. La resignature des applications peut également déclencher la détection anti-piratage ou anti-intrusion dans des produits comme DexGuard pour les appareils Android.

Applications brouillées dans les sessionsPour les applications Android, si l'application est brouillée, vous pouvez toujours la tester avec DeviceFarm à condition d'utiliser ProGuard. Toutefois, si vous utilisez DexGuard avec des mesures anti-piratage,Device Farm ne peut pas resigner l'application.

Version de l'API 2015-06-2319

Page 29: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un projet

Utilisation des projets dans AWSDevice Farm

Un projet dans Device Farm représente une instance WorkSpace logique dans Device Farm contenant desexécutions, une par test d'une seule application sur un ou plusieurs appareils. Les projets vous permettentd'organiser les espaces de travail comme vous le souhaitez. Par exemple, il peut y avoir un projet par titred'application ou un projet par plateforme. Vous pouvez créer autant de projets que vous en avez besoin.

Vous pouvez utiliser la console AWS Device Farm, l'AWS Command Line Interface (AWS CLI) ou l'APIAWS Device Farm pour utiliser des projets.

Rubriques• Créer un projet dans AWS Device Farm (p. 20)• Afficher la liste des projets dans AWS Device Farm (p. 21)

Créer un projet dans AWS Device FarmVous pouvez créer un projet à l'aide de la console AWS Device Farm, de l'AWS CLI ou de l'API AWSDevice Farm.

Prérequis• Suivez les étapes de Configuration (p. 3).

Créer un projet (console)1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Sur la console Device Farm, choisissez Create a new project (Créer un nouveau projet).3. Saisissez le nom de votre projet, puis choisissez Create project (Créer un projet).4. Pour spécifier les paramètres pour le projet, choisissez Project settings (Paramètres du projet).

Ces paramètres incluent le délai d'attente par défaut pour les exécutions de test. Une fois que lesparamètres sont appliqués, ils sont utilisés dans toutes les exécutions de test du projet. Pour deplus amples informations, veuillez consulter Définir le délai d'exécution des tests dans AWS DeviceFarm (p. 34).

Créer un projet (AWS CLI)• Exécutez create-project en spécifiant le nom du projet.

Exemple :

aws devicefarm create-project --name MyProjectName

La réponse de l'AWS CLI inclut l'Amazon Resource Name (ARN) du projet.

Version de l'API 2015-06-2320

Page 30: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un projet (API)

{ "project": { "name": "MyProjectName", "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "created": 1535675814.414 }}

Pour plus d'informations, consultez create-project et Référence AWS CLI (p. 175).

Créer un projet (API)• Appelez l'API CreateProject.

Pour plus d'informations sur l'utilisation de l'API Device Farm, consultez Automatisation d'DeviceFarm (p. 177).

Afficher la liste des projets dans AWS Device FarmVous pouvez utiliser la console AWS Device Farm, l'AWS CLI ou l'API AWS Device Farm pour afficher laliste des projets.

Rubriques• Prérequis (p. 21)• Afficher la liste des projets (console) (p. 21)• Afficher la liste des projets (AWS CLI) (p. 21)• Afficher la liste des projets (API) (p. 22)

Prérequis• Créez au moins un projet dans Device Farm. Suivez les instructions fournies dans Créer un projet

dans AWS Device Farm (p. 20), puis revenez à cette page.

Afficher la liste des projets (console)1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si la liste des projets disponibles n'est pas affichée, effectuez l'une des actions suivantes dans la barre

de navigation secondaire :

• Choisissez le bouton d'accueil de la console Device Farm.• Pour Projects (Projets), sélectionnez View all projects (Afficher tous les projets).

Afficher la liste des projets (AWS CLI)• Pour afficher la liste des projets, exécutez la commande list-projects.

Version de l'API 2015-06-2321

Page 31: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAfficher la liste des projets (API)

Pour afficher des informations sur un seule projet, exécutez la commande get-project.

Pour plus d'informations sur l'utilisation de Device Farm avec l'AWS CLI, consultez Référence AWSCLI (p. 175).

Afficher la liste des projets (API)• Pour afficher la liste des projets, appelez l'API ListProjects.

Pour afficher des informations sur un seul projet, appelez l'API GetProject.

Pour de plus amples informations sur l'API AWS Device Farm, veuillez consulter Automatisation d'DeviceFarm (p. 177).

Version de l'API 2015-06-2322

Page 32: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test

Utilisation des exécutions de testdans AWS Device Farm

Une exécution dans Device Farm représente une build (génération) spécifique de votre application, avec unensemble de tests spécifique, à exécuter sur un ensemble d'appareils spécifique. Une exécution génère unrapport contenant des informations sur les résultats de l'exécution. Une exécution contient une ou plusieurstâches. Pour plus d'informations, consultez Exécutions (p. 15).

Vous pouvez utiliser la console AWS Device Farm, l'AWS Command Line Interface (AWS CLI) ou l'APIAWS Device Farm pour les exécutions de tests.

Rubriques• Créer une exécution de test dans AWS Device Farm (p. 23)• Définir le délai d'exécution des tests dans AWS Device Farm (p. 34)• Simuler des connexions et des conditions réseau pour vos exécutions AWS Device Farm (p. 35)• Arrêter une exécution dans AWS Device Farm (p. 37)• Afficher une liste d'exécutions dans AWS Device Farm (p. 40)• Créer un groupe d'appareils dans AWS Device Farm (p. 41)• Analyse des résultats dans AWS Device Farm (p. 42)

Créer une exécution de test dans AWS DeviceFarm

Vous pouvez utiliser la console AWS Device Farm, l'AWS CLI ou l'API AWS Device Farm pour créerune exécution de test. Vous pouvez également utiliser un plug-in pris en charge, tels que les plug-insJenkins ou Gradle pour Device Farm. Pour plus d'informations sur les plug-ins, consultez Outils et plug-ins (p. 273). Pour plus d'informations sur les exécutions, consultez Exécutions (p. 15).

Rubriques• Prérequis (p. 23)• Créer une exécution de test (console) (p. 23)• Créer une exécution de test (AWS CLI) (p. 26)• Créer une exécution de test (API) (p. 33)• Étapes suivantes (p. 33)

PrérequisVous devez disposer d'un projet dans Device Farm. Suivez les instructions fournies dans Créer un projetdans AWS Device Farm (p. 20), puis revenez à cette page.

Créer une exécution de test (console)1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.

Version de l'API 2015-06-2323

Page 33: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (console)

2. Si vous voyez la page d'accueil de la console AWS Device Farm, entrez le nom de votre projet, puischoisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.

3. Si vous disposez déjà d'un projet, vous pouvez charger vos tests dans celui-ci. Sinon, choisissezCreate a new project (Créer un nouveau projet) et saisissez un nom pour le projet.

4. Ouvrez votre projet, puis choisissez Create a new run (Créer une exécution).5. Sur la page Choose your application (Choisir votre application), choisissez l'application native ( )

ou l'application web ( ).

6. Chargez votre fichier d'application. Vous pouvez également faire glisser et déposer votre fichierou choisir un chargement récent. Si vous chargez une application iOS, veillez à choisir iOS device(Appareil iOS) et non un simulateur.

7. (Facultatif) Dans Run name (Nom de l'exécution), entrez un nom. Si vous ne spécifiez aucun nomd'exécution, Device Farm utilise le nom de fichier de l'application.

8. Choisissez Next step.9. Sur la page Configure (Configurer), choisissez l'une des suites de tests disponibles.

Note

Si vous ne disposez d'aucun test disponible, choisissez Built-in: Fuzz (Fuzz intégré) pourexécuter une suite de tests intégrée standard. Si vous choisissez Built-in: Fuzz (Fuzz intégré)et que les zones Event count (Nombre d'événements), Event throttle (Limitation d'événement)et Randomizer seed (Valeur initiale de générateur aléatoire) s'affichent, vous pouvez modifierou conserver les valeurs.

Pour plus d'informations sur les suites de tests disponibles, consultez Utilisation de types de tests dansAWS Device Farm (p. 55).

10. Si vous n'avez pas choisi Built-in: Fuzz (Fuzz intégré), choisissez Upload (Charger), puis recherchez etchoisissez le fichier contenant vos tests.

11. Pour votre environnement d'exécution, choisissez Run test in our standard environment (Exécuter letest dans notre environnement standard) ou Customize your test environment (Personnaliser votreenvironnement de test). Pour plus d'informations, consultez Environnements de test (p. 14).

12. Si vous utilisez l'environnement de test standard, passez à l'étape 13. Si vous utilisez unenvironnement de test personnalisé avec le fichier YAML de spécification de test par défaut, passez àl'étape 13.

a. Si vous souhaitez modifier la spécification de test par défaut dans un environnement de testpersonnalisé, choisissez Edit (Modifier) pour mettre à jour la spécification YAML par défaut.

b. Si vous avez apporté des modifications à la spécification de test, choisissez Save as New(Enregistrer comme nouvelle version) pour mettre à jour la spécification de test.

13. Si vous souhaitez configurer les options d'enregistrement vidéo ou de capture des données deperformance, choisissez Advanced Configuration (Configuration avancée).

Version de l'API 2015-06-2324

Page 34: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (console)

a. Sélectionnez Enable Video Recording (Activer l'enregistrement vidéo) pour activerl'enregistrement vidéo pendant l'exécution du test.

b. Sélectionnez Enable App Performance Data Capture (Activer la capture des données deperformance de l'application) pour activer la capture des données de performance à partir del'appareil.

Note

Si vous disposez d'appareils privés, l'option Configuration for Private Devices (Configurationdes appareils privés) s'affiche également.

14. Choisissez Next step (Étape suivante).15. Sur la page Select devices (Sélectionner les appareils), effectuez l'une des opérations suivantes :

• Pour choisir un groupe d'appareils intégré sur lequel exécuter les tests, pour Device pool (Grouped'appareils), choisissez Top Devices (Principaux appareils).

• Pour créer votre propre groupe d'appareils sur lequel exécuter les tests, suivez les instructionsfournies dans Créer un groupe d'appareils (p. 41), puis revenez à cette page.

• Si vous avez créé votre propre groupe d'appareils précédemment, pour Device pool (Grouped'appareils), choisissez votre groupe d'appareils.

Pour plus d'informations, consultez Appareils (p. 13).16. Choisissez Next step (Étape suivante).17. Sur la page Specify device state (Spécifier l'état de l'appareil) :

• Pour fournir d'autres données qui seront utilisées par Device Farm lors de l'exécution, en regardde Add extra data (Ajouter des données supplémentaires), choisissez Upload (Charger), puisrecherchez et choisissez le fichier .zip qui contient les données.

• Pour installer une application supplémentaire qui sera utilisée par Device Farm lors de l'exécution,en regard de Install other apps (Installer d'autres applications), choisissez Upload (Charger), puisrecherchez et choisissez le fichier .apk ou .ipa contenant l'application. Répétez cette procédurepour les autres applications que vous voulez installer. Vous pouvez modifier l'ordre d'installation enfaisant glisser et en déposant les applications après les avoir chargées.

• Pour spécifier si le Wi-Fi, le Bluetooth, le GPS ou le NFC doivent être activés pendant l'exécution, enregard de Set radio states (Définir les états radio), cochez les cases appropriées.

• Pour prédéfinir la latitude et la longitude de l'appareil pour l'exécution, saisissez les coordonnées enregard de Device location (Emplacement de l'appareil).

• Pour prédéfinir les paramètres régionaux de l'appareil pour l'exécution, choisissez-les dans DeviceLocale (Paramètres régionaux de l'appareil).

18. Choisissez Review and start run (Vérifier et démarrer l'exécution).19. Sur cette page, vous pouvez spécifier le délai d'exécution de votre exécution de test. Si vous utilisez

des emplacements de test illimités, vérifiez que l'option Run on unmetered slots (Exécuter sur desemplacements illimités) est sélectionnée.

20. Entrez une valeur ou utilisez la barre du curseur pour modifier le délai d'exécution. Pour de plusamples informations, veuillez consulter Définir le délai d'exécution des tests dans AWS DeviceFarm (p. 34).

21. Choisissez Confirm and start run (Confirmer et démarrer l'exécution).

Device Farm démarre l'exécution dès que les appareils sont disponibles, en général au bout de quelques

minutes. Jusqu'au démarrage de l'exécution, Device Farm affiche une icône de calendrier . Après

Version de l'API 2015-06-2325

Page 35: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (AWS CLI)

le démarrage de l'exécution, les résultats s'affichent lorsque les tests sont terminés. Pendant ce temps,

Device Farm affiche une icône de progression .

Si vous avez besoin d'arrêter l'exécution, consultez la section Arrêter une exécution dans AWS DeviceFarm (p. 37).

Créer une exécution de test (AWS CLI)Vous pouvez utiliser l'AWS CLI pour créer une exécution de test.

Rubriques• Étape 1 : Choisir un projet (p. 26)• Étape 2 : Choisir un groupe d'appareils (p. 26)• Étape 3 : Charger votre fichier d'application (p. 27)• Étape 4 : Charger votre package de scripts de test (p. 28)• Étape 5 : Charger votre spécification de test personnalisée (facultatif) (p. 29)• Étape 6 : Planifier une série de tests (p. 31)

Étape 1 : Choisir un projetVous devez associer votre exécution de test à un projet Device Farm.

1. Pour répertorier vos projets Device Farm, exécutez list-projects. Si vous n'avez aucun projet, consultezCréer un projet dans AWS Device Farm (p. 20).

Exemple :

aws devicefarm list-projects

La réponse inclut la liste de vos projets Device Farm.

{ "projects": [ { "name": "MyProject", "arn": "arn:aws:devicefarm:us-west-2:123456789101:project:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "created": 1503612890.057 } ]}

2. Choisissez un projet à associer à votre exécution de test et notez son Amazon Resource Name (ARN).

Étape 2 : Choisir un groupe d'appareilsVous devez choisir un groupe d'appareils à associer à votre exécution de test.

1. Pour afficher vos groupes d'appareils, exécutez la commande list-device-pools en spécifiant l'ARN devotre projet.

Exemple :

Version de l'API 2015-06-2326

Page 36: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (AWS CLI)

aws devicefarm list-device-pools --arn arn:MyProjectARN

La réponse inclut les groupes d'appareils Device Farm intégrés, tels que Top Devices, et tous lesgroupes d'appareils précédemment créés pour ce projet :

{ "devicePools": [ { "rules": [ { "attribute": "ARN", "operator": "IN", "value": "[\"arn:aws:devicefarm:us-west-2::device:example1\",\"arn:aws:devicefarm:us-west-2::device:example2\",\"arn:aws:devicefarm:us-west-2::device:example3\"]" } ], "type": "CURATED", "name": "Top Devices", "arn": "arn:aws:devicefarm:us-west-2::devicepool:example", "description": "Top devices" }, { "rules": [ { "attribute": "PLATFORM", "operator": "EQUALS", "value": "\"ANDROID\"" } ], "type": "PRIVATE", "name": "MyAndroidDevices", "arn": "arn:aws:devicefarm:us-west-2:605403973111:devicepool:example2" } ]}

2. Choisissez un groupe d'appareils et notez son ARN.

Vous pouvez également créer un groupe d'appareils, puis revenir à cette étape. Pour plusd'informations, consultez Créer un groupe d'appareils (AWS CLI) (p. 42).

Étape 3 : Charger votre fichier d'applicationPour créer votre demande de chargement et obtenir une URL de chargement Amazon S3 présignée, vousavez besoin des éléments suivants :

• Votre ARN de projet.• Le nom de votre fichier d'application• Le type de chargement

Pour plus d'informations, consultez create-upload.

1. Pour charger un fichier, exécutez la commande create-upload avec les paramètres –-project-arn,--name et --type.

Cet exemple crée un chargement pour une application Android :

Version de l'API 2015-06-2327

Page 37: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (AWS CLI)

aws devicefarm create-upload -–project-arn arn:MyProjectArn -–name MyAndroid.apk -–type ANDROID_APP

La réponse inclut l'ARN de chargement de l'application et une URL présignée.

{ "upload": { "status": "INITIALIZED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" }}

2. Notez l'ARN de chargement de l'application et l'URL présignée.3. Chargez votre fichier d'application à l'aide de l'URL Amazon S3 présignée. Cet exemple utilise curl

pour charger un fichier .apk Android :

curl -T MyAndroid.apk "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"

Pour de plus amples informations, veuillez consulter Téléchargement d'objets à l'aide d'URL pré-signées dans le Amazon Simple Storage Service Manuel du développeur.

4. Pour vérifier l'état de votre chargement d'application, exécutez get-upload et spécifiez l'ARN dechargement de l'application.

aws devicefarm get-upload –-arn arn:MyAppUploadARN

Attendez que l'état de la réponse soit SUCCEEDED avant de charger votre package de scripts de test.

{ "upload": { "status": "SUCCEEDED", "name": "MyAndroid.apk", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "ANDROID_APP", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" }}

Étape 4 : Charger votre package de scripts de testEnsuite, chargez votre package de scripts de test.

1. Pour créer votre demande de chargement et obtenir une URL de chargement Amazon S3 présignée,exécutez la commande create-upload avec les paramètres –-project-arn, --name et --type.

Cet exemple crée un chargement de package de test Appium Java TestNG :

Version de l'API 2015-06-2328

Page 38: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (AWS CLI)

aws devicefarm create-upload –-project-arn arn:MyProjectARN -–name MyTests.zip –-type APPIUM_JAVA_TESTNG_TEST_PACKAGE

La réponse inclut l'ARN de chargement de votre package de test et une URL présignée.

{ "upload": { "status": "INITIALIZED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } }

2. Notez l'ARN de chargement du package de test et l'URL présignée.3. Chargez le fichier de votre package de scripts de test à l'aide de l'URL Amazon S3 présignée. Cet

exemple utilise curl pour charger un fichier compressé de scripts Appium TestNG :

curl -T MyTests.zip "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"

4. Pour vérifier l'état du chargement de votre package de scripts de test, exécutez get-upload et spécifiezl'ARN de chargement du package de test, obtenu à l'étape 1.

aws devicefarm get-upload –-arn arn:MyTestsUploadARN

Attendez que l'état de la réponse soit SUCCEEDED avant de passer à l'étape suivante, facultative.

{ "upload": { "status": "SUCCEEDED", "name": "MyTests.zip", "created": 1535738627.195, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_PACKAGE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" }}

Étape 5 : Charger votre spécification de test personnalisée(facultatif)Si vous exécutez vos tests dans un environnement de test standard, ignorez cette étape.

Device Farm conserve un fichier de spécification de test par défaut pour chaque type de test prisen charge. Ensuite, téléchargez votre spécification de test par défaut et utilisez-la pour créer unchargement de spécification de test personnalisée afin d'exécuter vos tests dans un environnement de testpersonnalisé. Pour plus d'informations, consultez Environnements de test (p. 14).

1. Pour trouver l'ARN de chargement de votre spécification de test par défaut, exécutez la commandelist-uploads et spécifiez l'ARN de votre projet.

Version de l'API 2015-06-2329

Page 39: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (AWS CLI)

aws devicefarm list-uploads --arn arn:MyProjectARN

La réponse contient une entrée pour chaque spécification de test par défaut :

{ "uploads": [ {

{ "status": "SUCCEEDED", "name": "Default TestSpec for Android Appium Java TestNG", "created": 1529498177.474, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" } } ]}

2. Choisissez votre spécification de test par défaut dans la liste. Notez son ARN de chargement.3. Pour télécharger votre spécification de test par défaut, exécutez la commande get-upload et spécifiez

l'ARN de chargement.

Exemple :

aws devicefarm get-upload –-arn arn:MyDefaultTestSpecARN

La réponse contient une URL présignée à laquelle vous pouvez télécharger votre spécification de testpar défaut.

4. Cet exemple utilise curl pour télécharger la spécification de test par défaut et l'enregistrer sousMyTestSpec.yml :

curl "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL" > MyTestSpec.yml

5. Vous pouvez modifier la spécification de test par défaut pour qu'elle réponde à vos exigences enmatière de test, puis utiliser votre spécification de test modifiée lors des futures exécutions de test.Ignorez cette étape pour utiliser la spécification de test par défaut en l'état dans un environnement detest personnalisé.

6. Pour créer un chargement de votre spécification de test personnalisée, exécutez la commande create-upload en spécifiant le nom de votre spécification de test, le type de spécification de test et l'ARN duprojet.

Cet exemple crée un chargement pour une spécification de test personnalisée Appium Java TestNG :

aws devicefarm create-upload --name MyTestSpec.yml --type APPIUM_JAVA_TESTNG_TEST_SPEC --project-arn arn:MyProjectARN

La réponse inclut l'ARN de chargement de la spécification de test et une URL présignée :

{ "upload": { "status": "INITIALIZED",

Version de l'API 2015-06-2330

Page 40: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (AWS CLI)

"category": "PRIVATE", "name": "MyTestSpec.yml", "created": 1535751101.221, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE" }}

7. Notez l'ARN de chargement de la spécification de test et l'URL présignée.8. Chargez votre fichier de spécification de test à l'aide de l'URL Amazon S3 présignée. Cet exemple

utilise curl pour charger une spécification de test Appium Java TestNG :

curl -T MyTestSpec.yml "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL"

9. Pour vérifier l'état de votre chargement de spécification de test, exécutez get-upload et spécifiez l'ARNde chargement.

aws devicefarm get-upload –-arn arn:MyTestSpecUploadARN

Attendez que l'état de la réponse soit SUCCEEDED avant de planifier l'exécution de votre test.

{ "upload": { "status": "SUCCEEDED", "name": "MyTestSpec.yml", "created": 1535732625.964, "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "type": "APPIUM_JAVA_TESTNG_TEST_SPEC", "arn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "metadata": "{"valid": true}" }}

Pour mettre à jour votre spécification de test personnalisée, exécutez la commande update-upload enspécifiant l'ARN de chargement de la spécification de test. Pour plus d'informations, consultez update-upload.

Étape 6 : Planifier une série de testsPour planifier une exécution de test avec l'AWS CLI, exécutez schedule-run en spécifiant :

• L'ARN du projet, obtenu à l'étape 1 (p. 26)• L'ARN du groupe d'appareils, obtenu à l'étape 2 (p. 26)• L'ARN de chargement de l'application, obtenu à l'étape 3 (p. 27)• L'ARN de chargement du package de test, obtenu à l'étape 4 (p. 28)

Si vous exécutez des tests dans un environnement de test personnalisé, vous avez également besoin del'ARN de votre spécification de test, obtenu à l'étape 5 (p. 29).

Version de l'API 2015-06-2331

Page 41: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (AWS CLI)

Pour planifier une exécution dans un environnement de test standard

• Exécutez la commande schedule-run en spécifiant l'ARN de votre projet, l'ARN du groupe d'appareils,l'ARN de chargement de l'application et les informations sur le package de test.

Exemple :

aws devicefarm schedule-run --project-arn arn:MyProjectARN --app-arn arn:MyAppUploadARN --device-pool-arn arn:MyDevicePoolARN --name MyTestRun --test type=APPIUM_JAVA_TESTNG,testPackageArn=arn:MyTestPackageARN

La réponse contient un ARN d'exécution que vous pouvez utiliser pour vérifier l'état de votre exécutionde test.

{ "run": { "status": "SCHEDULING", "appUpload": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345appEXAMPLE", "name": "MyTestRun", "radios": { "gps": true, "wifi": true, "nfc": true, "bluetooth": true }, "created": 1535756712.946, "totalJobs": 179, "completedJobs": 0, "platform": "ANDROID_APP", "result": "PENDING", "devicePoolArn": "arn:aws:devicefarm:us-west-2:123456789101:devicepool:5e01a8c7-c861-4c0a-b1d5-12345devicepoolEXAMPLE", "jobTimeoutMinutes": 150, "billingMethod": "METERED", "type": "APPIUM_JAVA_TESTNG", "testSpecArn": "arn:aws:devicefarm:us-west-2:123456789101:upload:5e01a8c7-c861-4c0a-b1d5-12345specEXAMPLE", "arn": "arn:aws:devicefarm:us-west-2:123456789101:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } }}

Pour plus d'informations, consultez schedule-run.

Pour planifier une exécution dans un environnement de test personnalisé

• Les étapes sont presque identiques à celles à suivre pour l'environnement de test standard, avec unattribut supplémentaire testSpecArn inclus dans le paramètre --test.

Exemple :

Version de l'API 2015-06-2332

Page 42: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une exécution de test (API)

aws devicefarm schedule-run --project-arn arn:MyProjectARN --app-arn arn:MyAppUploadARN --device-pool-arn arn:MyDevicePoolARN --name MyTestRun --test testSpecArn=arn:MyTestSpecUploadARN,type=APPIUM_JAVA_TESTNG,testPackageArn=arn:MyTestPackageARN

Pour vérifier l'état de votre exécution de test

• Utilisez la commande get-run et spécifiez l'ARN d'exécution :

aws devicefarm get-run --arn arn:aws:devicefarm:us-west-2:111122223333:run:5e01a8c7-c861-4c0a-b1d5-12345runEXAMPLE

Pour plus d'informations, consultez get-run. Pour plus d'informations sur l'utilisation de Device Farm avecl'AWS CLI, consultez Référence AWS CLI (p. 175).

Créer une exécution de test (API)Les étapes sont les mêmes que celles décrites dans la section relative à l'AWS CLI. Voir Créer uneexécution de test (AWS CLI) (p. 26).

Vous avez besoin des informations suivantes pour appeler l'API ScheduleRun :

• L'ARN d'un projet. Consultez Créer un projet (API) (p. 21) et CreateProject.• L'ARN de chargement d'une application. Consultez CreateUpload.• L'ARN de chargement d'un package de test. Consultez CreateUpload.• L'ARN d'un groupe d'appareils. Consultez Créer un groupe d'appareils (p. 41) etCreateDevicePool.

Note

Si vous exécutez des tests dans un environnement de test personnalisé, vous avez égalementbesoin de l'ARN de chargement de votre spécification de test. Pour plus d'informations,consultez Étape 5 : Charger votre spécification de test personnalisée (facultatif) (p. 29) etCreateUpload.

Pour plus d'informations sur l'utilisation de l'API Device Farm, consultez Automatisation d'DeviceFarm (p. 177).

Étapes suivantes

Dans la console Device Farm, l'icône de progression devient une icône de résultat, telle que l'icône de

réussite , lorsque l'exécution est terminée. Un rapport sur l'exécution s'affiche dès que les tests sontterminés. Pour plus d'informations, consultez Rapports (p. 17).

Pour utiliser ce rapport, suivez les instructions fournies dans Utilisation des rapports de test (p. 43).

Version de l'API 2015-06-2333

Page 43: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurDéfinir le délai d'exécution

Définir le délai d'exécution des tests dans AWSDevice Farm

Vous pouvez définir une valeur de durée d'exécution des tests avant d'empêcher chaque appareild'exécuter un test. Le délai d'exécution par défaut est de 150 minutes par appareil, mais vous pouvezdéfinir une valeur de seulement 5 minutes. Vous pouvez utiliser la console AWS Device Farm, l'AWS CLIou l'API AWS Device Farm pour définir le délai d'exécution.

Important

L'option de délai d'exécution doit être définie sur la durée maximale d'une exécution de test, plusun tampon. Par exemple, si vos tests prennent 20 minutes par appareil, vous devez choisir undélai d'exécution de 30 minutes par appareil.

Si l'exécution dépasse le délai, elle est arrêtée de force sur l'appareil concerné. Des résultats partiels sontdisponibles, si possible. Vous êtes facturé à hauteur de la durée d'exécution si vous avez choisi le mode defacturation limité. Pour de plus amples informations sur la tarification, veuillez consulter Tarification DeviceFarm.

Vous souhaiterez peut-être utiliser cette fonction si vous savez combien de temps l'exécution de test doitprendre sur chaque appareil. La définition d'un délai d'exécution pour une exécution de test vous permetd'éviter de vous retrouver avec une exécution de test bloquée pour une raison quelconque et d'être facturépour des minutes passées sur l'appareil pendant lesquelles aucun test n'est exécuté. Autrement dit, lafonction de délai d'exécution vous permet d'arrêter l'exécution si elle prend plus de temps que prévu.

Vous pouvez définir le délai d'exécution à deux niveaux : celui du projet et celui de l'exécution de test.

Prérequis1. Suivez les étapes de Configuration (p. 3).2. Créer un projet dans Device Farm. Suivez les instructions fournies dans Créer un projet dans AWS

Device Farm (p. 20), puis revenez à cette page.

Définir le délai d'exécution pour un projet1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous disposez déjà d'un projet, choisissez-le dans la page Your projects (Vos projets). Sinon,

choisissez Create a new project (Créer un nouveau projet) et entrez le nom de votre projet.3. Choisissez Project settings (Paramètres du projet).4. Sous l'onglet General (Général), pour Execution timeout (Délai d'exécution), entrez une valeur ou

utilisez la barre du curseur.5. Sélectionnez Save Changes.

Toutes les exécutions de test de votre projet utilisent désormais la valeur de délai d'exécution quevous avez spécifiée, sauf si vous la remplacez lorsque vous planifiez une exécution.

Définir le délai d'exécution d'une exécution de test1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous disposez déjà d'un projet, choisissez-le dans la page Your projects (Vos projets). Sinon,

choisissez Create a new project (Créer un nouveau projet) et entrez le nom de votre projet.

Version de l'API 2015-06-2334

Page 44: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurSimuler des connexions et des conditions réseau

3. Choisissez Create a new run (Créer une exécution).4. Suivez les étapes ci-dessous pour choisir une application, configurer votre test, sélectionner vos

appareils et spécifier un état d'appareil.5. Sur la page Review and start run (Réviser et démarrer l'exécution), pour Execution timeout (Délai

d'exécution), entrez une valeur ou utilisez la barre du curseur.6. Choisissez Confirm and start run (Confirmer et démarrer l'exécution).

Simuler des connexions et des conditions réseaupour vos exécutions AWS Device Farm

Vous pouvez utiliser la mise en forme réseau pour simuler des connexions et des conditions réseau tout entestant vos applications Android, iOS, FireOS et Web dans Device Farm. Par exemple, vous pouvez testervotre application dans des conditions réseau qui ne sont pas parfaites.

Lorsque vous créez une exécution en utilisant les paramètres réseau par défaut, chaque appareil disposed'une connexion Wi-Fi complète, intègre, avec une connectivité Internet. Lorsque vous utilisez la mise enforme réseau, vous pouvez modifier la connexion Wi-Fi pour spécifier un profil réseau comme 3G ou LossyWiFi, qui contrôle le débit, le retard, l'instabilité et les pertes de trafic entrant et sortant.

Rubriques• Configurer la mise en forme réseau lors de la planification d'une exécution de test (p. 35)• Créer un profil réseau (p. 36)• Modifier les conditions réseau pendant votre test (p. 37)

Configurer la mise en forme réseau lors de laplanification d'une exécution de testLorsque vous programmez une exécution, vous pouvez choisir n'importe quel profil organisé par DeviceFarm, ou vous pouvez créer et gérer le vôtre.

1. À partir de n'importe quel projet Device Farm, choisissez Create a new run (Créer une exécution).

Si vous n'avez pas encore de projet, consultez Créer un projet dans AWS Device Farm (p. 20).2. Choisissez votre application, puis Next step (Étape suivante).3. Configurez votre test, puis choisissez Next step (Étape suivante).4. Sélectionnez vos appareils, puis choisissez Next step (Étape suivante).5. Choisissez un profil réseau ou choisissez Create a new network profile (Créer un profil réseau) pour

créer le vôtre.

Version de l'API 2015-06-2335

Page 45: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un profil réseau

6. Choisissez Next step (Étape suivante).7. Vérifiez et démarrez votre exécution de test.

Créer un profil réseauLorsque vous créez une exécution de test, vous pouvez créer un profil réseau.

1. Choisissez Create a new network profile (Créer un profil réseau).

2. Entrez le nom et les paramètres de votre profil réseau.3. Choisissez Save network profile (Enregistrer le profil réseau).

Version de l'API 2015-06-2336

Page 46: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurModifier les conditions réseau pendant votre test

4. Terminez la création de votre exécution de test et démarrez l'exécution.

Après avoir créé un profil réseau, vous pourrez le voir et le gérer sur la page Project settings (Paramètresdu projet).

Modifier les conditions réseau pendant votre testVous pouvez appeler une API à partir de l'hôte de l'appareil en utilisant un framework comme Appium ouCalabash pour simuler des conditions de réseau dynamique telles qu'une bande passante réduite pendantl'exécution de votre test. Pour plus d'informations, consultez CreateNetworkProfile.

Arrêter une exécution dans AWS Device FarmVous voudrez peut-être arrêter une exécution après l'avoir démarrée. Par exemple, si vous remarquez unproblème pendant que vos tests s'exécutent, vous voudrez peut-être redémarrer l'exécution avec un scriptde test mis à jour.

Vous pouvez utiliser la console Device Farm, l'AWS CLI ou l'API pour arrêter une exécution.

Rubriques• Arrêter une exécution (console) (p. 37)• Arrêter une exécution (AWS CLI) (p. 38)• Arrêter une exécution (API) (p. 40)

Arrêter une exécution (console)1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Sur la page d'accueil de la console Device Farm, choisissez le projet dans lequel vous disposez d'une

exécution de test active.3. Sur la page Run results (Résultats de l'exécution), choisissez l'exécution de test.

L'icône En attente ou En cours doit apparaître à gauche du nom de l'appareil.

Version de l'API 2015-06-2337

Page 47: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurArrêter une exécution (AWS CLI)

4. Choisissez Stop run (Arrêter l'exécution).

Après quelques instants, une icône représentant un cercle orange clignotant contenant un carrés'affiche en regard du nom de l'appareil. Lorsque l'exécution a été arrêtée, l'icône devient un carréorange.

Important

Si un test a déjà été exécuté, Device Farm ne peut pas l'arrêter. Si un test est en cours,Device Farm l'arrête. Le nombre total de minutes qui vous sera facturé s'affiche dans lasection Devices (Appareils). De plus, vous serez également facturé pour le nombre total deminutes nécessaire à Device Farm pour exécuter les suites Setup et Teardown. Pour plusd'informations, consultez Tarification Device Farm.

L'image suivante montre un exemple de la section Devices (Appareils) après l'arrêt réussi d'uneexécution de test.

Arrêter une exécution (AWS CLI)Vous pouvez exécuter la commande suivante pour arrêter l'exécution de test spécifiée, où myARNcorrespond à l'ARN (Amazon Resource Name) de l'exécution de test.

$ aws devicefarm stop-run --arn myARN

Vous devez visualiser des résultats similaires à ce qui suit :

{ "run": {

Version de l'API 2015-06-2338

Page 48: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurArrêter une exécution (AWS CLI)

"status": "STOPPING", "name": "Name of your run", "created": 1458329687.951, "totalJobs": 7, "completedJobs": 5, "deviceMinutes": { "unmetered": 0.0, "total": 0.0, "metered": 0.0 }, "platform": "ANDROID_APP", "result": "PENDING", "billingMethod": "METERED", "type": "BUILTIN_EXPLORER", "arn": "myARN", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } }}

Pour obtenir l'ARN de votre exécution, utilisez la commande list-runs. La sortie doit ressembler à ce quisuit :

{ "runs": [ { "status": "RUNNING", "name": "Name of your run", "created": 1458329687.951, "totalJobs": 7, "completedJobs": 5, "deviceMinutes": { "unmetered": 0.0, "total": 0.0, "metered": 0.0 }, "platform": "ANDROID_APP", "result": "PENDING", "billingMethod": "METERED", "type": "BUILTIN_EXPLORER", "arn": "Your ARN will be here", "counters": { "skipped": 0, "warned": 0, "failed": 0, "stopped": 0, "passed": 0, "errored": 0, "total": 0 } } ]}

Pour plus d'informations sur l'utilisation de Device Farm avec l'AWS CLI, consultez Référence AWSCLI (p. 175).

Version de l'API 2015-06-2339

Page 49: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurArrêter une exécution (API)

Arrêter une exécution (API)• Appelez l'opération StopRun pour arrêter l'exécution de test.

Pour plus d'informations sur l'utilisation de l'API Device Farm, consultez Automatisation d'DeviceFarm (p. 177).

Afficher une liste d'exécutions dans AWS DeviceFarm

Vous pouvez utiliser la console Device Farm, l'AWS CLI ou l'API pour afficher une liste d'exécutions pourun projet.

Rubriques• Afficher une liste d'exécutions (console) (p. 40)• Afficher une liste d'exécutions (AWS CLI) (p. 40)• Afficher une liste d'exécutions (API) (p. 40)

Afficher une liste d'exécutions (console)1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez le projet correspondant à la liste d'exécutions que vous souhaitez

afficher.

Si la liste des projets disponibles n'est pas affichée, dans la barre de navigation secondaire, effectuezl'une des actions suivantes :

• Cliquez sur le bouton d'accueil de la console Device Farm, puis choisissez le projet.• Pour Projects (Projets), sélectionnez View all projects (Afficher tous les projets), puis choisissez le

projet.

Afficher une liste d'exécutions (AWS CLI)• Exécutez la commande list-runs.

Pour afficher des informations sur une seule exécution, exécutez la commande get-run.

Pour plus d'informations sur l'utilisation de Device Farm avec l'AWS CLI, consultez Référence AWSCLI (p. 175).

Afficher une liste d'exécutions (API)• Appelez l'API ListRuns.

Pour afficher des informations sur une seule exécution, appelez l'API GetRun.

Pour plus d'informations sur l'API Device Farm, consultez Automatisation d'Device Farm (p. 177).

Version de l'API 2015-06-2340

Page 50: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un groupe d'appareils

Créer un groupe d'appareils dans AWS DeviceFarm

Vous pouvez utiliser la console Device Farm, l'AWS CLI ou l'API pour créer un groupe d'appareils.

Rubriques• Prérequis (p. 41)• Créer un groupe d'appareils (console) (p. 41)• Créer un groupe d'appareils (AWS CLI) (p. 42)• Créer un groupe d'appareils (API) (p. 42)

Prérequis• Créez une exécution dans la console Device Farm. Suivez les instructions fournies dans Créer une

exécution de test dans AWS Device Farm (p. 23). Lorsque vous accédez à la page Select devices(Sélectionner les appareils), suivez les instructions fournies dans cette section.

Créer un groupe d'appareils (console)1. Sur la page Select devices (Sélectionner les appareils), choisissez Create new device pool (Créer un

groupe d'appareils).2. Pour Name (Nom), saisissez un nom permettant d'identifier facilement ce groupe d'appareils.3. Pour Description, saisissez une description permettant d'identifier facilement ce groupe d'appareils.4. Si vous souhaitez utiliser un ou plusieurs critères de sélection pour les appareils de ce groupe,

procédez comme suit :

a. Choisissez Add rule.b. Pour Field (Champ), choisissez l'une des options suivantes :

• Pour inclure les appareils en fonction du nom de leur fabricant, choisissez Manufacturer(Fabricant).

• Pour inclure les appareils en fonction de leur type, choisissez Type.c. Pour Operator (Opérateur), choisissez EQUALS pour inclure les appareils dont la valeur de Field

(Champ) est égale à la valeur d'Operand (Opérande).d. Pour Operand (Opérande), entrez ou choisissez la valeur que vous souhaitez spécifier pour

les valeurs de Field (Champ) et Operator (Opérateur). Si vous choisissez Platform (Plateforme)pour Field (Champ), les seules sélections disponibles sont ANDROID et IOS. De même, si vouschoisissez Type pour Field (Champ), les seules sélections disponibles sont PHONE (Téléphone)et TABLET (Tablette).

e. Pour ajouter une autre règle, choisissez Add rule (Ajouter une règle).f. Pour supprimer une règle, choisissez l'icône X en regard de la règle.

Une fois que vous avez créé la première règle, dans la liste des appareils, la case en regard dechaque appareil correspondant à cette règle est activée. Une fois que vous avez créé ou modifiédes règles, dans la liste des appareils, la case en regard de chaque appareil correspondant à cesrègles combinées est activée. Les appareils dont les cases sont activées sont inclus dans le grouped'appareils. Les appareils dont les cases sont désactivées sont exclus.

Version de l'API 2015-06-2341

Page 51: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un groupe d'appareils (AWS CLI)

5. Si vous souhaitez inclure ou exclure manuellement des appareils individuels, activez ou désactivez lacase en regard de chaque appareil. Vous ne pouvez activer ou désactiver les cases que si vous n'avezaucune règle spécifiée.

6. Si vous souhaitez inclure ou exclure tous les appareils affichés, activez ou désactivez la case dans laligne d'en-tête de colonne de la liste.

Important

Bien que vous puissiez utiliser les cases de la ligne d'en-tête de colonne pour modifier la listedes appareils affichés, cela ne signifie pas que les autres appareils affichés sont les seuls àêtre inclus ou exclus. Pour vérifier quels appareils sont inclus ou exclus, veillez à effacer lecontenu de toutes les cases dans la ligne d'en-tête de colonne, puis à parcourir les cases.

7. Choisissez Save device pool (Enregistrer le groupe d'appareils).

Créer un groupe d'appareils (AWS CLI)• Exécutez la commande create-device-pool.

Note

Pour les tests Appium, vous pouvez utiliser APPIUM_VERSION dans le champ rules.

Pour plus d'informations sur l'utilisation de Device Farm avec l'AWS CLI, consultez Référence AWSCLI (p. 175).

Créer un groupe d'appareils (API)• Appelez l'API CreateDevicePool.

Note

Pour les tests Appium, vous pouvez utiliser APPIUM_VERSION dans le champ rules.

Pour plus d'informations sur l'utilisation de l'API Device Farm, consultez Automatisation d'DeviceFarm (p. 177).

Analyse des résultats dans AWS Device FarmDans l'environnement de test standard, vous pouvez utiliser la console Device Farm pour afficher desrapports pour chaque test de votre série de tests.

Device Farm collecte également d'autres artefacts, tels que les fichiers, les journaux et les images quevous pouvez télécharger lorsque votre série de tests est terminée.

Rubriques• Utilisation des rapports de test dans AWS Device Farm (p. 43)• Utilisation des artefacts dans Device Farm (p. 49)

Version de l'API 2015-06-2342

Page 52: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des rapports de test

Utilisation des rapports de test dans AWS DeviceFarmUtilisez la console Device Farm pour afficher vos rapports de test. Pour plus d'informations, consultezRapports (p. 17).

Rubriques• Prérequis (p. 43)• Présentation des résultats de test (p. 43)• Affichage des rapports (p. 44)

PrérequisConfigurez une exécution de test et vérifiez qu'elle est terminée.

1. Pour créer une exécution, consultez Créer une exécution de test dans AWS Device Farm (p. 23),puis revenez à cette page.

2. Vérifiez que l'exécution est terminée. Pendant l'exécution de test, Device Farm affiche une icône de

progression dans la console. Cette icône de progression devient une icône de résultat de testlorsque l'exécution est terminée. Pour plus d'informations, consultez Présentation des résultats detest (p. 43).

Présentation des résultats de testLa console Device Farm affiche des icônes et des graphiques qui vous permettent d'évaluer rapidementl'état de l'exécution de test terminée.

Rubriques• Présentation des résultats d'un test individuel (p. 43)• Présentation des résultats pour plusieurs tests (p. 44)

Présentation des résultats d'un test individuelPour les rapports qui décrivent un test individuel, Device Farm affiche une icône et une barre de résultat detest :

Description Icône Résultat du test

Le test a abouti.

Le test a échoué.

Le test a été ignoré.

Le test a été arrêté.

Device Farm a renvoyé unavertissement.

Version de l'API 2015-06-2343

Page 53: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des rapports de test

Description Icône Résultat du test

Device Farm a renvoyé uneerreur.

Présentation des résultats pour plusieurs testsPour les rapports qui récapitulent plusieurs tests, Device Farm affiche une barre récapitulative des résultatsde test.

Par exemple, cette barre de résultats de test montre que l'exécution comportait 1 test qui a été arrêté,12 tests qui ont échoué, 4 tests qui ont été ignorés et 93 tests qui ont abouti.

Les icônes affichées pour le résultat de plusieurs tests, par exemple dans un rapport par suite de tests,apparaissent dans l'ordre suivant :

Icône Description

Il y a au moins un test qui a été arrêté.

Il y a au moins un test qui comportait des erreurs.

Il y a au moins un test qui a échoué.

Il y a au moins un test qui comportait des avertissements.

Tous les tests ont abouti.

Affichage des rapportsVous pouvez afficher les résultats de votre test dans la console Device Farm.

Rubriques• Afficher la page récapitulative de l'exécution de test (p. 44)• Afficher les rapports sur les problèmes uniques (p. 45)• Afficher les rapports sur les appareils (p. 45)• Afficher les rapports sur les suites de tests (p. 46)• Afficher les rapports de test (p. 47)• Afficher les données de performance pour un problème, un appareil, une suite ou un test dans un

rapport (p. 47)• Afficher les informations de journal pour un problème, un appareil, une suite ou un test dans un

rapport (p. 48)

Afficher la page récapitulative de l'exécution de test

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.

Version de l'API 2015-06-2344

Page 54: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des rapports de test

2. Dans la liste des projets, choisissez le projet pour l'exécution.

Tip

Si la liste des projets ne s'affiche pas, sur la barre de navigation secondaire, cliquez sur lebouton d'accueil de la console Device Farm, puis choisissez le projet.

3. Choisissez une exécution terminée pour afficher la page de son rapport récapitulatif.4. La page récapitulative de l'exécution de test affiche une présentation de vos résultats de test.

• La section Unique problems (Problèmes uniques) répertorie les avertissements et échecs uniques.Pour afficher les problèmes uniques, suivez les instructions fournies dans Afficher les rapports surles problèmes uniques (p. 45).

• La section Devices (Appareils) affiche le nombre total de tests, par résultat, pour chaque appareil.

Dans cet exemple, l'appareil Google Pixel exécutant Android version 7.1.2 signale 11 tests réussisdont l'exécution a pris 15:25 minutes.

Pour afficher les résultats par appareil, suivez les instructions fournies dans Afficher les rapports surles appareils (p. 45).

• La section Screenshots (Captures d'écran) affiche une liste de toutes les captures d'écran effectuéespar Device Farm pendant l'exécution, regroupées par appareil.

Afficher les rapports sur les problèmes uniques

1. Dans Unique problems (Problèmes uniques), choisissez le problème que vous souhaitez afficher.2. Choisissez l'appareil. Le rapport affiche des informations sur le problème.

La section Video (Vidéo) affiche un enregistrement vidéo téléchargeable du test.

La section Logs (Journaux) affiche les informations consignées par Device Farm pendant le test. Pourafficher ces informations, suivez les instructions fournies dans Afficher les informations de journal pourun problème, un appareil, une suite ou un test dans un rapport (p. 48).

La section Performance affiche les informations sur les données de performance générées par DeviceFarm pendant le test. Pour afficher ces données de performance, suivez les instructions fournies dansAfficher les données de performance pour un problème, un appareil, une suite ou un test dans unrapport (p. 47).

La section Files (Fichiers) affiche une liste des tests de la suite et de tous les fichiers associés (commeles fichiers journaux) qui peuvent être téléchargés. Pour télécharger un fichier, cliquez sur le lien dufichier dans la liste.

La section Screenshots (Captures d'écran) affiche une liste de toutes les captures d'écran effectuéespar Device Farm pendant le test.

Afficher les rapports sur les appareils

• Dans la section Devices (Appareils), choisissez l'appareil.Version de l'API 2015-06-2345

Page 55: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des rapports de test

Video (Vidéo) affiche un enregistrement vidéo téléchargeable du test.

Suites affiche les informations sur les suites de l'appareil.

Test results (Résultats de test) récapitule le nombre de tests, par résultat, pour chacune des suitesde tests exécutées sur l'appareil. Pour plus d'informations, consultez Présentation des résultats pourplusieurs tests (p. 44).

Pour afficher les résultats par suite, suivez les instructions fournies dans Afficher les rapports sur lessuites de tests (p. 46).

La section Logs (Journaux) affiche les informations consignées par Device Farm concernant l'appareilpendant l'exécution. Pour afficher ces informations, suivez les instructions fournies dans Afficher lesinformations de journal pour un problème, un appareil, une suite ou un test dans un rapport (p. 48).

La section Performance affiche les informations sur les données de performance générées par DeviceFarm concernant l'appareil pendant l'exécution. Pour afficher ces données de performance, suivez lesinstructions fournies dans Afficher les données de performance pour un problème, un appareil, unesuite ou un test dans un rapport (p. 47).

La section Files (Fichiers) affiche une liste des suites de l'appareil et de tous les fichiers associés(comme les fichiers journaux) qui peuvent être téléchargés. Pour télécharger un fichier, cliquez sur lelien du fichier dans la liste.

La section Screenshots (Captures d'écran) affiche une liste de toutes les captures d'écran effectuéespar Device Farm pendant l'exécution concernant l'appareil, regroupées par suite.

Afficher les rapports sur les suites de tests

1. Dans la section Devices (Appareils), choisissez l'appareil.2. Dans la section Suites, choisissez la suite.

La page des résultats de la suite affiche des informations sur les tests de la suite. Pour plusd'informations, consultez Présentation des résultats pour plusieurs tests (p. 44).

Pour afficher les résultats par test, suivez les instructions fournies dans Afficher les rapports detest (p. 47).

La section Logs (Journaux) affiche les informations consignées par Device Farm concernant la suitependant l'exécution. Pour afficher ces informations, suivez les instructions fournies dans Afficher lesinformations de journal pour un problème, un appareil, une suite ou un test dans un rapport (p. 48).

La section Performance affiche les informations sur les données de performance générées par DeviceFarm concernant la suite pendant l'exécution. Pour afficher ces données de performance, suivez lesinstructions fournies dans Afficher les données de performance pour un problème, un appareil, unesuite ou un test dans un rapport (p. 47).

La section Files (Fichiers) affiche une liste des tests de la suite et de tous les fichiers associés (commeles fichiers journaux) qui peuvent être téléchargés. Pour télécharger un fichier, cliquez sur le lien dufichier dans la liste.

La section Screenshots (Captures d'écran) affiche une liste de toutes les captures d'écran effectuéespar Device Farm pendant l'exécution concernant la suite, regroupées par test.

Version de l'API 2015-06-2346

Page 56: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des rapports de test

Afficher les rapports de test

1. Dans la section Devices (Appareils), choisissez l'appareil.2. Dans la section Suites, choisissez la suite.

L'onglet Tests affiche les informations sur le test, notamment une icône de résultat. Pour plusd'informations, consultez Présentation des résultats d'un test individuel (p. 43).

La section Logs (Journaux) affiche les informations consignées par Device Farm pendant le test. Pourafficher ces informations, suivez les instructions fournies dans Afficher les informations de journal pourun problème, un appareil, une suite ou un test dans un rapport (p. 48).

L'onglet Performance affiche les informations sur les données de performance générées par DeviceFarm pendant le test. Pour afficher ces données de performance, suivez les instructions fournies dansAfficher les données de performance pour un problème, un appareil, une suite ou un test dans unrapport (p. 47).

L'onglet Files (Fichiers) affiche une liste des fichiers associés au test (comme les fichiers journaux) quipeuvent être téléchargés. Pour télécharger un fichier, cliquez sur le lien du fichier dans la liste.

L'onglet Screenshots (Captures d'écran) affiche une liste de toutes les captures d'écran effectuées parDevice Farm pendant le test.

Afficher les données de performance pour un problème, un appareil, une suite ouun test dans un rapport

• Les informations suivantes sont affichées sous l'onglet Performance :

• Le graphique CPU (UC) affiche le pourcentage d'UC utilisé par l'application sur un seul cœurpendant le problème, l'appareil, la suite ou le test sélectionné (axe vertical) au fil du temps (axehorizontal).

L'axe vertical est exprimé en pourcentage, de 0 % jusqu'au pourcentage maximal enregistré.

Ce pourcentage peut dépasser 100 % si l'application a utilisé plusieurs cœurs. Par exemple, si troiscœurs sont à 60 % d'utilisation, le pourcentage affiché est 180 %.

• Le graphique FPS affiche la fréquence d'image en images par seconde pendant le problème,l'appareil, la suite ou le test sélectionné (axe vertical) au fil du temps (axe horizontal).

L'axe vertical est exprimé en images par seconde, de 0 image par seconde jusqu'au nombremaximal d'images par seconde enregistré.

• Le graphique Memory (Mémoire) affiche le nombre de Mo utilisé par l'application pendant leproblème, l'appareil, la suite ou le test sélectionné (axe vertical) au fil du temps (axe horizontal).

L'axe vertical est exprimé en Mo, de 0 Mo jusqu'au nombre maximal de Mo enregistrés.• Le graphique Threads affiche le nombre de threads utilisés pendant le problème, l'appareil, la suite

ou le test sélectionné (axe vertical) au fil du temps (axe horizontal).

L'axe vertical est exprimé en nombre de threads, de 0 thread jusqu'au nombre maximal de threadsenregistrés.

Dans tous les cas, l'axe horizontal est représenté, en secondes, du début à la fin de l'exécution duproblème, appareil, suite ou test sélectionné.

Pour afficher des informations concernant un point de données spécifique, suspendez le graphiquesouhaité à la seconde souhaitée sur l'axe horizontal.Version de l'API 2015-06-23

47

Page 57: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des rapports de test

Afficher les informations de journal pour un problème, un appareil, une suite ou untest dans un rapport

Les informations suivantes sont affichées dans la section Logs (Journaux) :

• Source représente la source d'une entrée de journal. Les valeurs possibles incluent :• Harness représente une entrée de journal créée par Device Farm. Ces entrées de journal sont

généralement créées lors du démarrage et de l'arrêt d'événements.• Device (Appareil) représente une entrée de journal créée par l'appareil. Pour Android, ces entrées de

journal sont compatibles avec logcat. Pour iOS, ces entrées de journal sont compatibles avec syslog.• Test représente une entrée de journal créée par un test ou son framework de test.

• Time (Temps) représente le temps écoulé entre la première entrée de journal et cette entrée de journal.Le temps est exprimé au format MM:SS.SSS, où M représente les minutes et S représente les secondes.

• PID représente l'identifiant de processus (PID) ayant créé l'entrée de journal. Toutes les entrées dejournal créées par une application sur un appareil ont le même PID.

• Level (Niveau) représente le niveau de journalisation de l'entrée de journal. Par exemple,Logger.debug("This is a message!") consigne un Level (Niveau) Debug. Voici les valeurspossibles :• Alert (Alerte)• Critical (Critique)• Debug (Débogage)• Emergency (Urgence)• Error (Erreur)• Errored (Erroné)• Failed (Échec)• Info (Infos)• Internal (Interne)• Notice (Avis)• Passed (Réussite)• Skipped (Ignoré)• Stopped (Arrêté)• Verbose (Détaillé)• Warned (Averti)• Warning (Avertissement)

• Tag (Balise) représente les métadonnées arbitraires de l'entrée de journal. Par exemple, Androidlogcat peut s'en servir pour décrire la partie du système ayant créé l'entrée de journal (par exemple,ActivityManager).

• Message représente le message ou les données de l'entrée de journal. Par exemple,Logger.debug("Hello, World!") journalise le Message "Hello, World!".

Pour afficher uniquement une partie des informations :

• Pour afficher toutes les entrées de journal correspondant à une valeur dans une colonne spécifique,entrez la valeur dans la zone d'en-tête de la colonne correspondante. Par exemple, pour afficher toutesles entrées de journal dont la valeur de la colonne Source est Harness, entrez Harness dans la zoned'en-tête de la colonne Source.

• Pour afficher toutes les entrées de journal qui contiennent zéro ou plusieurs caractères inconnus dansune colonne spécifique, utilisez le caractère générique (*) pour représenter les caractères inconnus.Par exemple, pour afficher toutes les entrées de journal dont la valeur de la colonne Source contient es(comme Harness et Test), entrez *es* dans la zone d'en-tête de la colonne Source.

Version de l'API 2015-06-2348

Page 58: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des artefacts

• Pour afficher les entrées de journal qui contiennent un choix entre un ou plusieurs caractères connusdans une colonne spécifique, placez l'ensemble des options entre parenthèses (( )) et utilisez la barreverticale (|) pour séparer chaque choix. Par exemple, pour afficher les entrées de journal dont la valeurde la colonne Message contient started ou starting, entrez *start(ed|ing)* dans la zone d'en-tête de la colonne Message.

• Pour supprimer tous les caractères d'une zone d'en-tête de colonne, cliquez sur le X de cette zone d'en-tête de colonne. Supprimer tous les caractères d'une zone d'en-tête de colonne revient à entrer * de lazone d'en-tête de cette colonne.

Pour télécharger toutes les informations de journal concernant l'appareil, notamment l'ensemble des suiteset des tests qui ont été exécutés, choisissez Download logs (Télécharger les journaux).

Utilisation des artefacts dans Device Farm

Device Farm collecte des artefacts tels que les rapports, les fichiers journaux et les images pour chaquetest de la série.

Vous pouvez télécharger les artefacts créés au cours de votre série de tests :

Fichiers

Fichiers générés au cours de la série de tests, notamment les rapports Device Farm. Pour plusd'informations, consultez Utilisation des rapports de test (p. 43).

Journaux

Résultat de chaque test de la série de tests.Captures d'écran

Images d'écran enregistrées pour chaque test de la série de tests.

Utilisation des artefacts (console)1. Sur la page des rapports de test, à partir de Devices (Appareils), choisissez un appareil mobile.2. Pour télécharger un fichier, choisissez-en un dans la liste Files (Fichiers).3. Pour télécharger les journaux de votre série de tests, à partir de Logs (Journaux), choisissez Download

logs (Télécharger les journaux).4. Pour télécharger une capture d'écran, choisissez-en une à partir de Screenshots (Captures d'écran).

Pour plus d'informations sur le téléchargement d'artefacts dans un environnement de test personnalisé,consultez Utilisation des artefacts dans un environnement de test personnalisé (p. 52).

Version de l'API 2015-06-2349

Page 59: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des artefacts

Utilisation des artefacts (AWS CLI)Vous pouvez utiliser l'AWS CLI pour répertorier les artefacts de votre série de tests.

Rubriques• Étape 1 : Obtenir vos ARN (Amazon Resource Names) (p. 50)• Étape 2 : Répertorier vos artefacts (p. 51)• Étape 3 : Télécharger vos artefacts (p. 51)

Étape 1 : Obtenir vos ARN (Amazon Resource Names)

Vous pouvez répertorier vos artefacts par exécution, tâche, série de tests ou test. Vous avez besoin del'ARN correspondant. Ce tableau présente l'ARN d'entrée de chacune des commandes de liste de l'AWSCLI :

Commande de liste AWS CLI ARN requis

list-projects Cette commande renvoie tous les projets et nerequiert aucun ARN.

list-runs project

list-jobs run

list-suites job

list-tests suite

Par exemple, pour trouver l'ARN d'un test, exécutez list-tests en utilisant l'ARN de votre suite de testscomme paramètre d'entrée.

Exemple :

aws devicefarm list-tests –-arn arn:MyTestSuiteARN

La réponse inclut l'ARN de chaque test de la série de tests.

{ "tests": [ { "status": "COMPLETED", "name": "Tests.FixturesTest.testExample", "created": 1537563725.116, "deviceMinutes": { "unmetered": 0.0, "total": 1.89, "metered": 1.89 }, "result": "PASSED", "message": "testExample passed", "arn": "arn:aws:devicefarm:us-west-2:123456789101:test:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", "counters": { "skipped": 0, "warned": 0,

Version de l'API 2015-06-2350

Page 60: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des artefacts

"failed": 0, "stopped": 0, "passed": 1, "errored": 0, "total": 1 } } ]}

Étape 2 : Répertorier vos artefacts

La commande d'AWS CLI list-artifacts renvoie une liste des artefacts, tels que les fichiers, les capturesd'écran et les journaux. Chaque artefact possède une URL vous permettant de télécharger le fichier.

• Appelez la commande list-artifacts en spécifiant un ARN d'exécution, de tâche, de série de tests ou detest. Spécifiez le type FILE, LOG ou SCREENSHOT.

Cet exemple renvoie une URL de téléchargement pour chaque artefact disponible pour un test :

aws devicefarm list-artifacts --arn arn:MyTestARN --type "FILE"

La réponse contient une URL de téléchargement pour chaque artefact.

{ "artifacts": [ { "url": "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL", "extension": "txt", "type": "APPIUM_JAVA_OUTPUT", "name": "Appium Java Output", "arn": "arn:aws:devicefarm:us-west-2:123456789101:artifact:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE", } ]}

Étape 3 : Télécharger vos artefacts

• Téléchargez votre artefact à l'aide de l'URL de l'étape précédente. Cet exemple utilise curl pourtélécharger un fichier de sortie Appium Java Android :

curl "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/ExampleURL" > MyArtifactName.txt

Utilisation des artefacts (API)La méthode ListArtifacts de l'API Device Farm renvoie une liste d'artefacts, tels que des fichiers, descaptures d'écran et des journaux. Chaque artefact possède une URL vous permettant de télécharger lefichier.

Version de l'API 2015-06-2351

Page 61: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des artefacts

Utilisation des artefacts dans un environnement de testpersonnalisé

Dans un environnement de test personnalité, Device Farm collecte des artefacts tels que des rapportspersonnalisés, des fichiers journaux et des images. Ces artefacts sont disponibles pour chaque appareil dela série de tests.

Vous pouvez télécharger les artefacts suivants créés au cours de votre série de tests :

Résultat de spécification de test

Résultat de l'exécution des commandes du fichier YAML de spécification de test.Artefacts client

Fichier compressé qui contient les artefacts de la série de tests. Il est configuré dans la sectionartifacts: de votre fichier YAML de spécification de test.

Script shell de spécification de test

Fichier de script shell intermédiaire créé à partir de votre fichier YAML. Étant donné qu'il est utilisédans la série de tests, le fichier de script shell peut être utilisé pour déboguer le fichier YAML.

Fichier de spécification de test

Fichier YAML utilisé dans la série de tests.

Pour plus d'informations, consultez Utilisation des artefacts dans Device Farm (p. 49).

Version de l'API 2015-06-2352

Page 62: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurBalisage des ressources

Balisage des ressources AWS DeviceFarm

AWS Device Farm fonctionne avec l'API de balisage des groupes de ressources AWS. Cette API vouspermet de gérer les ressources de votre compte AWS avec des balises. Vous pouvez ajouter des balisesaux ressources, telles que des projets et des tests.

Vous pouvez utiliser des balises pour :

• Organiser votre facture AWS afin de refléter votre propre structure de coût. Pour ce faire, inscrivez-vouspour obtenir votre facture de compte AWS avec les valeurs de clé de balise incluses. Ensuite, pour voir lecoût de vos ressources combinées, organisez vos informations de facturation en fonction des ressourcespossédant les mêmes valeurs de clé de balise. Par exemple, vous pouvez baliser plusieurs ressourcesavec un nom d'application, puis organiser vos informations de facturation pour afficher le coût total decette application dans plusieurs services. Pour de plus amples informations, veuillez consulter Répartitionet balisage des coûts dans À propos de la facturation et de la gestion des coûts AWS.

• Contrôler l'accès via des stratégies IAM. Pour ce faire, créez une stratégie qui permet d'accéder à uneressource ou à un ensemble de ressources à en utilisant une condition de valeur de balise.

• Identifier et gérer les exécutions ayant certaines propriétés en tant que balises, telles que la brancheutilisée pour les tests.

Pour plus d'informations sur les ressources de balisage, consultez le livre blanc sur les bonnes pratiquesde balisage .

Rubriques• Balisage des ressources (p. 53)• Recherche de ressources par balises (p. 54)• Suppression de balises de ressources (p. 54)

Balisage des ressourcesL'API de balisage de groupes de ressources AWS vous permet d'ajouter, de supprimer ou de modifier desbalises sur les ressources. Pour plus d'informations, consultez le document AWS Resource Group TaggingAPI Reference.

Pour baliser une ressource, utilisez l’opération TagResources à partir du point de terminaisonresourcegroupstaggingapi. Cette opération prend une liste d'ARN des services pris en charge etune liste de paires clé-valeur. La valeur est facultative. Une chaîne vide indique qu'il ne doit pas y avoir devaleur pour cette balise. Ainsi, dans l'exemple Python suivant, une série d'ARN de projet est balisée à l’aidede la balise build-config ayant la valeur release :

import boto3

client = boto3.client('resourcegroupstaggingapi')

client.tag_resources(ResourceARNList=["arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655440000", "arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655441111",

Version de l'API 2015-06-2353

Page 63: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurRecherche de ressources par balises

"arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655442222"] Tags={"build-config":"release", "git-commit":"8fe28cb"})

La valeur de balise n'est pas requise. Pour définir une balise sans valeur, utilisez une chaîne vide ("")lorsque vous spécifiez une valeur. Une balise ne peut avoir qu'une seule valeur. Toute valeur de baliseantérieure correspondant à une ressource sera remplacée par la nouvelle valeur.

Recherche de ressources par balisesPour rechercher des ressources par leurs balises, utilisez l’opération GetResources à partir du point determinaison resourcegrouptaggingapi. Cette opération prend une série de filtres, dont aucun n'estrequis, et renvoie les ressources qui correspondent aux critères donnés. Sans filtres, toutes les ressourcesbalisées sont renvoyées. L’opération GetResources vous permet de filtrer les ressources en fonction de

• Valeur de balise• Type de ressource (par exemple, devicefarm:run)

Pour plus d'informations, consultez le document AWS Resource Group Tagging API Reference.

Dans l’exemple suivant, on recherche des sessions Device Farm desktop browser testing (ressourcesdevicefarm:testgrid-session) à l’aide de la balise stack ayant la valeur production :

import boto3client = boto3.client('resourcegroupstaggingapi')sessions = client.get_resources(ResourceTypeFilters=['devicefarm:testgrid-session'], TagFilters=[ {"Key":"stack","Values":["production"]} ])

Suppression de balises de ressourcesPour supprimer une balise, utilisez l’opération UntagResources, en spécifiant une liste de ressources etles balises à supprimer :

import boto3client = boto3.client('resourcegroupstaggingapi')client.UntagResources(ResourceARNList=["arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655440000"], TagKeys=["RunCI"])

Version de l'API 2015-06-2354

Page 64: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurFrameworks de test

Utilisation de types de tests dansAWS Device Farm

Cette section décrit la prise en charge par Device Farm de cadres de test, ainsi que de deux types de testintégrés.

Frameworks de testDevice Farm prend en charge les frameworks de test d'automatisation mobile suivants :

Frameworks de test d'applications Android• Appium Java TestNG (p. 57)• Appium Java JUnit (p. 62)• Appium Node.js (p. 67)• Appium Python (p. 70)• Appium Ruby (p. 75)• Calabash (p. 79)• Utilisation d'Instrumentation pour Android et AWS Device Farm (p. 81)• UI Automator (p. 82)

Frameworks de test d'applications iOS• Appium Java TestNG (p. 84)• Appium Java JUnit (p. 89)• Appium Node.js (p. 95)• Appium Python (p. 98)• Appium Ruby (p. 102)• Calabash (p. 107)• UI Automation (p. 108)• Utiliser XCTest pour iOS et AWS Device Farm (p. 109)• XCTest UI (p. 111)

Frameworks de test d'applications Web• Appium Java TestNG (p. 113)• Appium Java JUnit (p. 118)• Appium Node.js (p. 123)• Appium Python (p. 126)

Version de l'API 2015-06-2355

Page 65: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurTypes de tests intégrés

• Appium Ruby (p. 131)

Cadres dans un environnement de test personnaliséDevice Farm ne prend pas en charge la personnalisation de l'environnement de test pour lesframeworks de test Calabash, XCTests et UI Automator. Pour plus d'informations, consultez Utilisationd'environnements de test personnalisés (p. 137).

Prise en charge des versions d'AppiumPour les tests exécutés dans un environnement personnalisé, Device Farm prend en charge Appiumversion 1.8.1. Pour les tests exécutés dans l'environnement standard, Device Farm prend en charge laversion 1.7.2. Pour plus d'informations, consultez Environnements de test (p. 14).

Types de tests intégrésAvec les tests intégrés, vous pouvez tester votre application sur plusieurs appareils, sans avoir à écrire ni àgérer de scripts d'automatisation de test. Device Farm propose deux types de tests intégrés :

• Explorateur intégré (Android) (p. 134)• Fuzz intégré (Android et iOS) (p. 135)

Utilisation de tests Android dans AWS Device FarmDevice Farm prend en charge plusieurs types de test d'automatisation pour appareils Android et deux typesde tests intégrés.

Frameworks de test d'applications AndroidLes tests suivants sont disponibles pour les appareils Android.

• Appium Java TestNG (p. 57)• Appium Java JUnit (p. 62)• Appium Node.js (p. 67)• Appium Python (p. 70)• Appium Ruby (p. 75)• Calabash (p. 79)• Utilisation d'Instrumentation pour Android et AWS Device Farm (p. 81)• UI Automator (p. 82)

Types de tests intégrés pour AndroidIl existe deux types de tests intégrés disponibles pour les appareils Android.

• Explorateur intégré (Android) (p. 134)• Fuzz intégré (Android et iOS) (p. 135)

Version de l'API 2015-06-2356

Page 66: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

Utilisation d'Appium Java TestNG pour Android etAWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Java TestNG pourAndroid sur Device Farm. Appium est un outil open source pour l'automatisation d'applications Web nativeset mobiles. Pour plus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Pour obtenir un exemple d'application et des liens vers des tests d'utilisation, consultez Device FarmSample App for Android sur GitHub.

Vous pouvez également utiliser des outils de développement orientés par le comportement, commeCuncumber avec vos tests Appium Java. Pour obtenir un exemple de test, consultez Appium Java TestNGand Cucumber Tests for the Device Farm Android Sample App sur GitHub.

Informations sur la version

• Actuellement, Device Farm prend en charge Java 8 pour l'exécution de tests Appium Java.• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvez

sélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Étape 1 : Configurer votre package de test Appium (p. 57)• Étape 2 : Configurer vos tests pour exécution avec Cucumber (facultatif) (p. 58)• Étape 3 : Créer un fichier zippé du package de test (p. 59)• Étape 4 : Charger votre package de test sur Device Farm (p. 61)• Étape 5 : Effectuer des captures d'écran de vos tests Appium Java TestNG Android

(facultatif) (p. 61)

Étape 1 : Configurer votre package de test AppiumUtilisez les instructions suivantes pour configurer votre package de test. Les tests Appium Java TestNGpour votre application Android doivent être contenus dans un fichier .zip.

Version de l'API 2015-06-2357

Page 67: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

Mettre à jour vos paramètres Maven

1. Modifier pom.xml pour définir le package en tant que fichier JAR :

<groupId>com.acme</groupId><artifactId>acme-android-appium</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>

2. Modifiez pom.xml pour utiliser maven-jar-plugin afin de créer vos tests dans un fichier JAR.

Le plug-in suivant crée votre code source de test (tout ce qui se trouve dans le répertoire src/test)dans un fichier JAR :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions></plugin>

3. Modifiez pom.xml pour utiliser maven-dependency-plugin afin de créer des dépendances en tantque fichiers JAR.

Le plug-in suivant copie vos dépendances dans le répertoire dependency-jars :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions></plugin>

Étape 2 : Configurer vos tests pour exécution avec Cucumber(facultatif)• Si vous utilisez Cucumber avec vos tests Appium Java TestNG pour Android, utilisez cette étape pour

configurer Maven avec vos paramètres Cucumber. Sinon, passez à l'étape suivante.

Version de l'API 2015-06-2358

Page 68: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

Note

Vous devez exécuter vos tests dans un environnement de test personnalisé pour utiliserCucumber avec vos tests Appium.

a. Modifiez pom.xml pour ajouter cucumber-java en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version></dependency>

b. Modifiez pom.xml pour ajouter cucumber-testng en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>4.0.0</version></dependency>

Étape 3 : Créer un fichier zippé du package de test1. Enregistrez l'assemblage XML suivant dans src/main/assembly/zip.xml.

Le fichier XML suivant est une définition d'assemblage qui, une fois configurée, demande à Maven decréer un fichier .zip qui contient tout ce qui est à la racine du répertoire de sortie de votre build et durépertoire dependency-jars :

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets></assembly>

Version de l'API 2015-06-2359

Page 69: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

2. Modifiez le fichier pom.xml pour utiliser maven-assembly-plugin afin de compresser tous les testset les dépendances en un seul fichier .zip.

Le plug-in suivant utilise l'assemblage précédant pour créer un fichier .zip nommé zip-with-dependencies dans le répertoire de sortie de build à chaque fois que la commande mvn package estexécutée :

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions></plugin>

3. Créez, compressez dans un package et vérifiez. Par exemple :

$ mvn clean package -DskipTests=true$ tree target.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (and so on...)

4. Utilisez la console Device Farm pour charger le package de test.

Note

Si un message d'erreur indique que l'annotation n'est pas prise en charge dans la version 1.3,ajoutez les éléments suivants au fichier pom.xml :

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Version de l'API 2015-06-2360

Page 70: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

Étape 4 : Charger votre package de test sur Device FarmVous pouvez utiliser la console Device Farm pour charger votre Appium Java TestNG pour test Android.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, entrez le nom de votre projet, puis

choisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.3. Si vous disposez déjà d'un projet, vous pouvez charger vos tests dans celui-ci.4. Ouvrez votre projet, puis choisissez Create a new run (Créer une exécution).5. Sur la page Choose your application (Choisir votre application), choisissez application Android native

( ), puis choisissez Upload (Charger).

6. Recherchez et sélectionnez votre fichier d'application Android. Le fichier doit être au format .apk.7. Choisissez Next step.8. Sur la page Configure a test (Configurer un test), choisissez Appium Java TestNG, puis Upload

(Charger).9. Recherchez et choisissez le fichier .zip contenant vos tests. Le fichier .zip doit respecter le format

décrit dans Étape 1 : Configurer votre package de test Appium (p. 57).10. Choisissez la version d'Appium que vous utilisez.11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Java TestNG Android.

Étape 5 : Effectuer des captures d'écran de vos tests AppiumJava TestNG Android (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Lorsque Device Farm exécute votre test Appium Java TestNG, le service définit les propriétés systèmesuivantes qui décrivent la configuration du serveur Appium avec lequel vous communiquez :

• appium.screenshots.dir : chemin de l'emplacement d'enregistrement des captures d'écran.• appium.server.address : adresse d'hôte du serveur Appium.• appium.server.port : port sur lequel le serveur Appium écoute.

Version de l'API 2015-06-2361

Page 71: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal où Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoire spécifiqueau test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les captures d'écransont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran, dans laconsole Device Farm, choisissez la section Screenshots (Captures d'écran).

L'exemple suivant montre comment utiliser et consommer la propriété appium.screenshots.dir afind'effectuer une capture d'écran Appium qui est importée dans votre rapport Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name)));}

Utilisation d'Appium Java JUnit pour Android et AWSDevice FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Java JUnit pourAndroid sur Device Farm. Appium est un outil open source pour l'automatisation d'applications Web nativeset mobiles. Pour plus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Vous pouvez également utiliser des outils de développement orientés par le comportement, commeCuncumber avec vos tests Appium Java.

Informations sur la version

• Actuellement, Device Farm prend en charge Java 8 pour l'exécution de tests Appium Java.• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvez

sélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Étape 1 : Configurer votre package de test Appium (p. 63)• Étape 2 : Configurer vos tests pour exécution avec Cucumber (facultatif) (p. 64)

Version de l'API 2015-06-2362

Page 72: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

• Étape 3 : Créer un fichier zippé du package de test (p. 64)• Étape 4 : Charger votre package de test sur Device Farm (p. 66)• Étape 5 : Effectuer des captures d'écran de vos tests Appium Java JUnit Android (facultatif) (p. 66)

Étape 1 : Configurer votre package de test AppiumUtilisez les instructions suivantes pour configurer votre package de test.

Mettre à jour vos paramètres Maven

1. Modifier pom.xml pour définir le package en tant que fichier JAR :

<groupId>com.acme</groupId><artifactId>acme-android-appium</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>

2. Modifiez pom.xml pour utiliser maven-jar-plugin afin de créer vos tests dans un fichier JAR.

Le plug-in suivant crée votre code source de test (tout ce qui se trouve dans le répertoire src/test)dans un fichier JAR :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions></plugin>

3. Modifiez pom.xml pour utiliser maven-dependency-plugin afin de créer des dépendances en tantque fichiers JAR.

Le plug-in suivant copie vos dépendances dans le répertoire dependency-jars :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions></plugin>

Version de l'API 2015-06-2363

Page 73: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

Étape 2 : Configurer vos tests pour exécution avec Cucumber(facultatif)• Si vous utilisez Cucumber avec vos tests Appium Java JUnit pour Android, utilisez cette étape pour

configurer Maven avec vos paramètres Cucumber. Sinon, passez à l'étape suivante.

Note

Vous devez exécuter vos tests dans un environnement de test personnalisé pour utiliserCucumber avec vos tests Appium.

a. Modifiez pom.xml pour ajouter cucumber-java en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version></dependency>

b. Modifiez pom.xml pour ajouter cucumber-junit en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>4.0.0</version> <scope>test</scope></dependency>

Étape 3 : Créer un fichier zippé du package de test1. Enregistrez l'assemblage XML suivant dans src/main/assembly/zip.xml.

Le fichier XML suivant est une définition d'assemblage qui, une fois configurée, demande à Maven decréer un fichier .zip qui contient tout ce qui est à la racine du répertoire de sortie de votre build et durépertoire dependency-jars :

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory>

Version de l'API 2015-06-2364

Page 74: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

<includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets></assembly>

2. Modifiez le fichier pom.xml pour utiliser maven-assembly-plugin afin de compresser tous les testset les dépendances en un seul fichier .zip.

Le plug-in suivant utilise l'assemblage précédant pour créer un fichier .zip nommé zip-with-dependencies dans le répertoire de sortie de build à chaque fois que la commande mvn package estexécutée :

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions></plugin>

3. Créez, compressez dans un package et vérifiez. Par exemple :

$ mvn clean package -DskipTests=true$ tree target.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (and so on...)

4. Utilisez la console Device Farm pour charger le package de test.

Note

Si un message d'erreur indique que l'annotation n'est pas prise en charge dans la version 1.3,ajoutez les éléments suivants au fichier pom.xml :

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration>

Version de l'API 2015-06-2365

Page 75: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

<source>1.7</source> <target>1.7</target> </configuration></plugin>

Étape 4 : Charger votre package de test sur Device FarmVous pouvez utiliser la console Device Farm pour charger votre Appium Java JUnit pour test Android.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, entrez le nom de votre projet, puis

choisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.3. Si vous disposez déjà d'un projet, vous pouvez charger vos tests dans celui-ci.4. Ouvrez votre projet, puis choisissez Create a new run (Créer une exécution).5. Sur la page Choose your application (Choisir votre application), choisissez application Android native

( ), puis choisissez Upload (Charger).

6. Recherchez et sélectionnez votre fichier d'application Android. Le fichier doit être au format .apk.7. Choisissez Next step.8. Sur la page Configure a test (Configurer un test), choisissez Appium Java JUnit, puis Upload

(Charger).9. Recherchez et choisissez le fichier .zip contenant vos tests. Le fichier .zip doit respecter le format

décrit dans Étape 1 : Configurer votre package de test Appium (p. 63).10. Choisissez la version d'Appium que vous utilisez.11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Java JUnit Android.

Étape 5 : Effectuer des captures d'écran de vos tests AppiumJava JUnit Android (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Lorsque Device Farm exécute votre test Appium Java JUnit, le service définit les propriétés systèmesuivantes qui décrivent la configuration du serveur Appium avec lequel vous communiquez :

• appium.screenshots.dir : chemin de l'emplacement d'enregistrement des captures d'écran.

Version de l'API 2015-06-2366

Page 76: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

• appium.server.address : adresse d'hôte du serveur Appium.• appium.server.port : port sur lequel le serveur Appium écoute.

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal où Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoire spécifiqueau test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les captures d'écransont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran, dans laconsole Device Farm, choisissez la section Screenshots (Captures d'écran).

L'exemple suivant montre comment utiliser et consommer la propriété appium.screenshots.dir afind'effectuer une capture d'écran Appium qui est importée dans votre rapport Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name)));}

Utilisation d'Appium Node.js pour les applicationsAndroid et AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Node.js surDevice Farm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles.Pour plus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Informations sur la version

• Vous pouvez utiliser n'importe quelle version de Node.js lorsque vous effectuez des tests AppiumNode.js sur Device Farm. Spécifiez la version de Node.js dans le fichier YAML des spécifications de test.

• Device Farm prend en charge les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Prérequis pour créer vos packages de test (p. 68)• Étape 1 : Créer un fichier zippé du package de test (p. 68)• Étape 2 : Charger votre package de test sur Device Farm (p. 69)

Version de l'API 2015-06-2367

Page 77: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

Prérequis pour créer vos packages de testPour créer vos packages de test Appium Node.js et les charger sur Device Farm, vous devez installer leséléments suivants sur votre machine locale :

• Node Version Manager (nvm)

Utilisez cet outil pour développer et créer vos packages de test afin qu'aucune dépendance inutile n'y soitincluse.

• Node.js• npm-bundle (installé globalement)

Pour installer les éléments prérequis sous macOS ou Linux

1. Pour installer nvm, exécutez la commande suivante :

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Une fois l'installation terminée, rechargez votre terminal. Pour cela, déconnectez-vous puisreconnectez-vous.

Note

nvm est chargé en tant que fonction pour le shell bash uniquement.2. Exécutez cette commande dans le shell bash afin de vérifier que nvm est installé correctement. Vous

pouvez basculer vers le shell bash en utilisant /bin/bash.

command -v nvm

Vous devez voir nvm en tant que sortie.

Pour plus d'informations, consultez la page nvm sur GitHub.3. Pour installer Node.js, exécutez la commande suivante :

nvm install node

Vous pouvez spécifier une version particulière de Node.js, comme illustré ici :

nvm install 11.4.0

4. Pour vérifier que vous utilisez la version spécifiée, exécutez la commande suivante :

node -v

5. Pour installer npm-bundle de façon globale, exécutez la commande suivante :

npm install -g npm-bundle

Étape 1 : Créer un fichier zippé du package de testLes packages de test Appium écrits en Node.js que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

Version de l'API 2015-06-2368

Page 78: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

1. Vérifiez votre projet.

Assurez-vous d'être dans le répertoire racine de votre projet. Vous pouvez voir package.json dansle répertoire racine.

2. Pour installer vos dépendances locales, exécutez la commande suivante.

npm install

Cette commande crée également un dossier node_modules au sein de votre répertoire actuel.

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local.3. Exécutez cette commande pour regrouper les fichiers de votre dossier actif dans un package *.tgz. Le

fichier créé est nommé en fonction de la propriété name indiquée dans votre fichier package.json.

npm-bundle

Ce fichier tarball (.tgz) contient votre code et toutes les dépendances.4. Exécutez cette commande pour inclure le fichier tarball (*.tgz) généré à l'étape précédente dans une

seule archive compressée :

zip -r MyTests.zip *.tgz

Il s'agit du fichier MyTests.zip que vous chargerez sur Device Farm dans la procédure suivante.

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application Android native

( ).

Version de l'API 2015-06-2369

Page 79: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

6. Choisissez Upload (Charger) pour charger votre fichier .apk.

Device Farm traite votre fichier .apk avant de continuer.7. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

8. Choisissez Appium Node.js pour configurer votre test.9. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).10. Choisissez le fichier MyTests.zip que vous avez créé dans la procédure précédente.11. Suivez les instructions pour sélectionner une spécification de test.

Si vous utilisez la spécification de test par défaut, modifiez la commande d'exécution de test dans lasection test du fichier YAML de spécification de test.

12. Choisissez les appareils et lancez l'exécution.

Pour plus d'informations, consultez Créer une exécution de test dans AWS Device Farm (p. 23).

Note

Device Farm ne modifie pas les tests Appium écrits en Node.js sous Android.

Utilisation d'Appium Python pour les applicationsAndroid et AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Python sur DeviceFarm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles. Pourplus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Pour obtenir un exemple d'application, consultez Device Farm Sample App for Android sur GitHub.

Pour obtenir un exemple de test Device Farm, consultez Appium Python Sample Tests for the Device FarmSample Android App sur GitHub.

Informations sur la version

• En mode standard, Device Farm prend en charge Python version 2.7 pour l'exécution de tests. En modepersonnalisé, Python 2.7 et Python 3 (3.7) sont disponibles.

Version de l'API 2015-06-2370

Page 80: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Étape 1 : Créer un fichier zippé du package de testLes packages de tests Appium écrits en Python que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

Note

Les instructions suivantes sont basées sur Linux x86_64 et macOS. Dans le schéma actuellementpris en charge, Device Farm exige que vous mettiez en package vos tests Appium écritsen Python sur Linux x86_64 si vos tests contiennent des dépendances wheels Python nonuniverselles. Pour la plateforme sur laquelle vous exécutez une commande, les outils wheelscollectent vos fichiers dépendants .whl dans le dossier wheelhouse/. Lorsque vous exécutez lacommande wheel Python sur une autre plateforme que Linux x86_64, vous collectez la versiond'une dépendance wheel non universelle pour cette plateforme, ce qui peut entraîner des erreurslors de l'exécution des tests sur Device Farm.

1. Nous vous recommandons vivement de configurer virtualenv Python pour le développement et lacréation d'un package de tests afin qu'aucune dépendance inutile ne soit incluse dans votre packaged'application.

$ virtualenv workspace$ cd workspace$ source bin/activate

Tip

• Ne créez pas d'environnement virtualenv Python avec l'option --system-site-packages, car il hérite des packages de votre répertoire site-packages global. Cela peutentraîner l'inclusion dans votre environnement virtuel de dépendances qui ne sont pasrequises par vos tests.

• Vous devez également vérifier que vos tests n'utilisent pas de dépendances auxbibliothèques natives. En effet, il est possible que ces bibliothèques natives ne soient pasprésentes sur l'instance sur laquelle ces tests sont exécutés.

2. Installez py.test dans votre environnement virtuel.Version de l'API 2015-06-23

71

Page 81: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

$ pip install pytest

3. Installez le client Appium Python dans votre environnement virtuel.

$ pip install Appium-Python-Client

4. Device Farm considère que vos tests seront stockés dans tests/, sauf si vous spécifiez un chemindifférent en mode personnalisé. Vous pouvez utiliser find pour afficher tous les fichiers dans undossier :

$ find tests/

Confirmez que ces fichiers contiennent des suites de test que vous souhaitez exécuter sur DeviceFarm

tests/tests/my-first-tests.pytests/my-second-tests/py

5. Exécutez cette commande à partir du dossier workspace de votre environnement virtuel pour afficherune liste de vos tests sans les exécuter.

$ py.test --collect-only tests/

Vérifiez que la sortie affiche les tests que vous voulez exécuter sur Device Farm.6. Nettoyez tous les fichiers mis en cache sous votre dossier tests/ :

$ find . -name '__pycache__' -type d -exec rm -r {} +$ find . -name '*.pyc' -exec rm -f {} +$ find . -name '*.pyo' -exec rm -f {} +$ find . -name '*~' -exec rm -f {} +

7. Exécutez la commande suivante dans votre espace de travail pour générer le fichier requirements.txt :

$ pip freeze > requirements.txt

8. Regroupez maintenant vos tests pour Device Farm.

Python 2

1. Générez une archive des packages Python requis (appelé dossier wheelhouse) en utilisantpip :

$ pip wheel --wheel-dir wheelhouse -r requirements.txt

2. Regroupez votre dossier wheelhouse, vos tests et vos exigences concernant pip dans unearchive zip pour Device Farm :

$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt

Python 3

Regroupez vos tests et vos exigences concernant pip dans un fichier zip :

Version de l'API 2015-06-2372

Page 82: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

$ zip -r test_bundle.zip tests/ requirements.txt

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application Android native

( ).

6. Choisissez Upload (Charger) pour charger votre fichier .apk.

Device Farm traite votre fichier .apk avant de continuer.7. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

8. Choisissez Appium Python pour configurer votre test.9. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).10. Configurez votre test pour le mode standard (ce qui active les tests plus précis et les rapports) ou pour

le mode personnalisé (ce qui améliore la flexibilité).

Version de l'API 2015-06-2373

Page 83: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

Python 2

Si vous utilisez le mode standard

Choisissez la version d'Appium que vous utilisez.Si vous utilisez le mode personnalisé

Dans votre fichier YAML des spécifications de test, veillez à exporter et à configurer la versiond'Appium que vous utilisez :

phases: install: commands: # ... - export APPIUM_VERSION=1.14.2 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Python 3

Les tests Python 3 doivent utiliser le mode personnalisé. Pour choisir Python 3 comme versionpython, mettez à jour votre fichier YAML des spécifications de test :

phases: install: commands: - export PYTHON_VERSION=3 # ... - export APPIUM_VERSION=1.14.2 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils etlancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium écrits en Python Android.

Étape 3 : Effectuer des captures d'écran de vos tests AppiumPython Android (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal, sur lequel Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoirespécifique au test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les capturesd'écran sont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran,dans la console Device Farm, choisissez la section Screenshots (Captures d'écran).

Pour effectuer une capture d'écran, utilisez la méthode get_screenshot_as_file. L'exemple suivantenregistre une capture d'écran lors d'un test :

import os

Version de l'API 2015-06-2374

Page 84: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

# with a given Appium WebDriver and filename, save the filedef take_screenshot(driver, name): if not driver.get_screenshot_as_file(os.path.join(os.getenv("SCREENSHOT_PATH", os.getcwd()), name)): assert 0 # Fail the test if a screenshot cannot be saved.

Utilisation d'Appium Ruby pour les applicationsAndroid et AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Ruby sur DeviceFarm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles. Pourplus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Informations sur la version

• Vous pouvez utiliser n'importe quelle version de Ruby lorsque vous effectuez des tests Appium Ruby surDevice Farm. Spécifiez la version de Ruby (par exemple, 2.5.1) dans le fichier YAML des spécificationsde test.

• Device Farm prend en charge les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Prérequis pour créer vos packages de test (p. 75)• Étape 1 : Créer un fichier zippé du package de test (p. 76)• Étape 2 : Charger votre package de test sur Device Farm (p. 77)• Conseils pour accélérer vos tests Appium (p. 78)

Prérequis pour créer vos packages de testPour créer vos packages de test Appium Ruby et les charger sur Device Farm, vous devez installer leséléments suivants sur votre machine locale :

• Ruby Version Manager (RVM)

Utilisez cet outil de ligne de commande pour développer et créer vos packages de test afin qu'aucunedépendance inutile n'y soit incluse.

• Ruby• Bundler (Cette gem est généralement installée avec Ruby.)

Version de l'API 2015-06-2375

Page 85: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

1. Installez les clés nécessaires, RVM et Ruby. Pour plus d'informations, consultez la section relative àl'installation de RVM sur le site Web RVM.

# The following command is for reference only. Go to rvm website and look for the complete command.gpg --keyserver hkp://keys.gnupg.net --recv-keys $keys

# install rvm along with ruby\curl -sSL https://get.rvm.io | bash -s stable --ruby

Une fois l'installation terminée, rechargez votre terminal. Pour cela, déconnectez-vous puisreconnectez-vous.

Note

RVM est chargé en tant que fonction pour le shell bash uniquement.2. Exécutez cette commande dans le shell bash afin de vérifier que RVM est installé correctement. Vous

pouvez basculer vers le shell bash en utilisant /bin/bash.

command -v rvm

Vous devez voir rvm en tant que sortie.3. Si vous souhaitez installer une version spécifique de Ruby (par exemple, la 2.5.1), exécutez la

commande suivante :

rvm install ruby 2.5.1 --autolibs=0

Pour vérifier que vous utilisez la version spécifiée, exécutez la commande suivante :

ruby -v

4. Même si l'installation de Ruby inclut généralement Bundler, exécutez cette commande si vous devezl'installer :

gem install bundler

Étape 1 : Créer un fichier zippé du package de testLes packages de test Appium écrits en Ruby que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

1. Pour créer un environnement Ruby virtuel, exécutez cette commande :

# myGemset is the name of your virtual Ruby environmentrvm gemset create myGemset

2. Pour utiliser l'environnement que vous venez de créer, exécutez cette commande :

rvm gemset use myGemset

3. Vérifiez votre code source.

Assurez-vous d'être dans le répertoire racine de votre projet. Vous pouvez voir Gemfile dans lerépertoire racine. Version de l'API 2015-06-23

76

Page 86: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

4. Pour installer vos dépendances locales et toutes les gems à partir du fichier Gemfile, exécutez cettecommande :

bundle install

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local. Pour exécuter un testen local, utilisez cette commande :

bundle exec $test_command

5. Regroupez vos gems dans le dossier vendor/cache.

# This will copy all the .gem files needed to run your tests into the vendor/cache directorybundle package

6. Exécutez la commande suivante pour regrouper votre code source, ainsi que toutes vos dépendances,dans une seule archive compressée :

zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)

Il s'agit du fichier MyTests.zip que vous chargerez sur Device Farm dans la procédure suivante.

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application Android native

( ).

Version de l'API 2015-06-2377

Page 87: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

6. Choisissez Upload (Charger) pour charger votre fichier .apk.

Device Farm traite votre fichier .apk avant de continuer.7. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

8. Pour configurer votre test, choisissez Appium Ruby.9. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).10. Choisissez le fichier MyTests.zip que vous avez créé dans la procédure précédente.11. Suivez les instructions pour sélectionner une spécification de test.

Si vous utilisez la spécification de test par défaut, modifiez la commande d'exécution de test dans lasection test du fichier YAML de spécification de test.

12. Choisissez les appareils et lancez l'exécution.

Pour plus d'informations, consultez Créer une exécution de test dans AWS Device Farm (p. 23).

Note

Device Farm ne modifie pas les tests Appium écrits en Ruby sous Android.

Conseils pour accélérer vos tests AppiumDans les instructions de création des packages à l'étape 1, vous créez un package pour les gems, maisles gems sont toujours installées sur l'hôte Device Farm lors de l'exécution. Les gems avec des extensions(par exemple, Nokogiri) prennent beaucoup de temps à installer sur l'hôte.

Pour accélérer vos tests, vous pouvez compresser le répertoire d'installation des gems au lieu deregrouper les gems elles-mêmes dans un package. Dans la mesure où les gems avec des extensions sontspécifiques à la plate-forme, vous devez générer le répertoire d'installation des gems sur la même plate-forme que celle utilisée par Device Farm pour exécuter vos tests.

Device Farm exécute vos tests Android sur les machines Ubuntu (Ubuntu LTS 14.04.5). Étant donnéque les gems sont spécifiques à la plate-forme, nous vous recommandons d'utiliser la même versionUbuntu lorsque vous créez vos packages de test. Si vous n'avez pas de machine Ubuntu exécutant cetteversion, vous pouvez utiliser Amazon EC2 pour créer une instance qui l'exécute. Comme type d'instance,choisissez Ubuntu Server 14.04 LTS (HVM). Comme type volume, sélectionnez SSD.

1. Pour créer un environnement Ruby virtuel, exécutez cette commande :

Version de l'API 2015-06-2378

Page 88: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCalabash

# myGemset is the name of your virtual ruby environmentrvm gemset create myGemset

2. Pour utiliser l'environnement que vous venez de créer, exécutez cette commande :

rvm gemset use myGemset

3. Vérifiez votre code source.

Assurez-vous d'être dans le répertoire racine de votre projet. Vous pouvez voir Gemfile dans lerépertoire racine.

4. Pour installer vos dépendances locales et toutes les gems à partir du fichier Gemfile, exécutez cettecommande :

bundle install --path=vendor/bundle

Le commutateur --path installe les gems dans le répertoire vendor/bundle (et non àl'emplacement du système), puis définit ce répertoire comme chemin d'accès par défaut pour lesfutures installations en créant un fichier .bundle/config.

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local. Pour exécuter un testen local, utilisez cette commande :

bundle exec $test_command

5. Pour regrouper votre code source, le fichier Gemfile, le répertoire d'installation gem et le répertoire.bundle dans une seule archive compressée, exécutez cette commande :

zip -r MyTests.zip Gemfile .bundle/ vendor/ $(any other source code directory files)

Utiliser Calabash pour Android et AWS Device FarmDevice Farm fournit la prise en charge de Calabash pour Android.

Device Farm fournit également un exemple d'application Android et des liens vers des tests d'utilisationdans trois frameworks d'automatisation Android, notamment Calabash. L'exemple d'application DeviceFarm pour Android est disponible en téléchargement sur GitHub.

En quoi consiste Calabash ?Calabash est un framework de test mobile que vous pouvez utiliser pour exécuter des tests automatisésd'acceptation d'interface utilisateur écrits dans Cucumber pour les applications Android. Pour plusd'informations, consultez le référentiel Welcome to Calabash for Android sur GitHub.

Informations sur la versionActuellement, Device Farm prend en charge Calabash version 0.9.0.

Préparer vos tests Calabash AndroidVos tests Calabash Android doivent être contenus dans un fichier .zip ayant la structure suivante :

Version de l'API 2015-06-2379

Page 89: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCalabash

my-zip-file-name.zip `-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Charger vos tests Calabash AndroidUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

charger vos tests.

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).5. Recherchez et sélectionnez votre fichier d'application Android. Le fichier doit être au format .apk.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez Calabash, puis Upload (Charger).8. Recherchez et choisissez le fichier .zip contenant vos tests.9. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution.

Captures d'écran des tests Calabash AndroidVous pouvez effectuer des captures d'écran dans le cadre de vos tests Calabash Android.

Calabash Android fournit un ensemble d'étapes prédéfini permettant d'effectuer des captures d'écran. Pourplus d'informations, consultez la section relative aux captures d'écran de la page Canned Steps dans leréférentiel Calabash Android sur GitHub.

Sinon, vous pouvez définir une étape personnalisée à l'intérieur d'un fichier Ruby (.rb) pour appeler lafonction screenshot_embed, qui crée une capture d'écran et l'enregistre dans un répertoire que vousdéfinissez. Par exemple, l'exemple de code suivant permet de créer une capture d'écran et de l'enregistrerdans le répertoire /my/custom/path avec un nom de fichier de screenshot_seconds-since-Epoch :

screenshot_embed(:prefix => "/my/custom/path", :name => "screenshot_#{Time.now.to_i}")

Considérations supplémentaires pour les tests Calabash AndroidDevice Farm remplace certains hooks Calabash afin que les tests Calabash Android puissent s'exécutersur les appareils dans Device Farm, mais il ne modifie pas les tests Calabash Android.

Version de l'API 2015-06-2380

Page 90: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurInstrumentation

Utilisation d'Instrumentation pour Android et AWSDevice FarmDevice Farm fournit la prise en charge d'Instrumentation (JUnit, Espresso, Robotium et tous les tests baséssur Instrumentation) pour Android.

Device Farm fournit également un exemple d'application Android et des liens vers des tests d'utilisationdans trois frameworks d'automatisation Android, notamment Instrumentation (Espresso). L'exempled'application Device Farm pour Android est disponible en téléchargement sur GitHub.

Rubriques• En quoi consiste Instrumentation ? (p. 81)• Charger vos tests Instrumentation Android (p. 81)• Captures d'écran des tests Instrumentation Android (p. 81)• Considérations supplémentaires pour les tests Instrumentation Android (p. 82)

En quoi consiste Instrumentation ?Instrumentation Android vous permet d'appeler des méthodes de rappel dans votre code de test, afinque vous puissiez parcourir le cycle de vie d'un composant étape par étape, comme si vous déboguiezle composant. Pour plus d'informations, consultez Instrumentation dans la section relative aux notionsfondamentales de test de la documentation sur les outils pour développeurs Android.

Charger vos tests Instrumentation AndroidUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

charger vos tests.

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).5. Recherchez et sélectionnez votre fichier d'application Android. Le fichier doit être au format .apk.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez Instrumentation, puis Upload (Charger).8. Recherchez et choisissez le fichier .apk contenant vos tests.9. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution.

Captures d'écran des tests Instrumentation AndroidVous pouvez effectuer des captures d'écran dans le cadre de vos tests Instrumentation Android.

Version de l'API 2015-06-2381

Page 91: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUI Automator

Pour effectuer des captures d'écran, appelez l'une des méthodes suivantes :

• Pour Robotium, appelez la méthode takeScreenShot (par exemple, solo.takeScreenShot();).• Pour Spoon, appelez la méthode screenshot, par exemple :

Spoon.screenshot(activity, "initial_state");/* Normal test code... */Spoon.screenshot(activity, "after_login");

Lors d'une exécution de test, Device Farm obtient des captures d'écran à partir des emplacements suivantsdes appareils, s'ils existent, puis les ajoute aux rapports de tests :

• /sdcard/robotium-screenshots

• /sdcard/test-screenshots

• /sdcard/Download/spoon-screenshots/test-class-name/test-method-name

• /data/data/application-package-name/app_spoon-screenshots/test-class-name/test-method-name

Considérations supplémentaires pour les tests InstrumentationAndroidSystem Animations (Animations système)

Selon la documentation Android relative aux tests Espresso, il est recommandé de désactiverles animations système lors de l'exécution de tests sur des appareils réels. Device Farmdésactive automatiquement les paramètres Window Animation Scale, Transition Animation Scaleet Animator Duration Scale lors de son exécution avec l'exécuteur de test d'instrumentationandroid.support.test.runner.AndroidJUnitRunner.

Test Recorders (Enregistreurs de test)

Device Farm prend en charge des infrastructures comme Robotium, qui disposent d'outils d'écriture descript d'enregistrement et de lecture.

Utilisation d'UI Automator pour Android et AWS DeviceFarmDevice Farm prend en charge UI Automator pour Android.

Note

Ce framework est actuellement en version préliminaire. Il est possible qu'il ne fonctionne pas avectous les scripts et applications.

Rubriques• En quoi consiste UI Automator ? (p. 83)• Préparer vos tests UI Automator Android. (p. 83)• Charger vos tests UI Automator Android (p. 83)• Captures d'écran des tests UI Automator Android (p. 83)• Considérations supplémentaires pour les tests UI Automator Android (p. 84)

Version de l'API 2015-06-2382

Page 92: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUI Automator

En quoi consiste UI Automator ?Le cadre de test UI Automator fournit un ensemble d'API permettant de créer des tests d'interfaceutilisateur qui effectuent des interactions sur des applications utilisateur et système pour Android. LesAPI UI Automator vous permettent d'effectuer des opérations telles que l'ouverture du menu Settings(Paramètres) ou du lanceur d'applications sur un appareil de test. Pour plus d'informations, consultez UIAutomator dans la section relative à la bibliothèque de support de test de la documentation sur les outilspour développeurs Android.

Préparer vos tests UI Automator Android.Les tests UI Automator Android doivent être contenus dans un fichier JAR unique. Le nom du packagedans ce fichier doit correspondre au nom du package utilisé par l'application Android. Par exemple, sile nom du package de l'application Android est com.my.android.app.MyMobileApp, les tests UIAutomator Android doivent se trouver dans un package nommé com.my.android.app.

Charger vos tests UI Automator AndroidUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

charger vos tests.

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).5. Recherchez et sélectionnez votre fichier d'application Android. Le fichier doit être au format .apk.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez uiautomator, puis Upload (Charger).8. Recherchez et choisissez le fichier JAR contenant vos tests.9. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution.

Captures d'écran des tests UI Automator AndroidVous pouvez effectuer des captures d'écran dans le cadre de vos tests UI Automator Android.

Pour effectuer une capture d'écran, appelez la méthode takeScreenshot (par exemple,takeScreenshot("/sdcard/uiautomator-screenshots/home-screen-1234.png");).

Note

Toutes les captures d'écran doivent être stockées dans le répertoire /sdcard/uiautomator-screenshots. Vous devez spécifier le chemin d'accès complet (y compris le nom du fichier) de lacapture d'écran à stocker.La méthode takeScreenshot fonctionne pour les API de niveau 17 et versions ultérieuresuniquement. Pour les API de niveau 16, UI Automator est pris en charge, mais des capturesd'écran ne sont pas prises en charge.

Version de l'API 2015-06-2383

Page 93: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurTests iOS

Considérations supplémentaires pour les tests UI AutomatorAndroidDevice Farm resigne les packages de test UI d'Automator Android, mais ne modifie pas les tests UIAutomator Android.

Utilisation de tests iOS dans AWS Device FarmDevice Farm prend en charge plusieurs types de test d'automatisation pour appareils iOS et un test intégré.

Frameworks de test d'applications iOSLes tests suivants sont disponibles pour les appareils iOS.

• Appium Java TestNG (p. 84)• Appium Java JUnit (p. 89)• Appium Node.js (p. 95)• Appium Python (p. 98)• Appium Ruby (p. 102)• Calabash (p. 107)• UI Automation (p. 108)• Utiliser XCTest pour iOS et AWS Device Farm (p. 109)• XCTest UI (p. 111)

Types de tests intégrés pour iOSActuellement, il n'existe qu'un type de test intégré disponible pour les appareils iOS.

• Fuzz intégré (Android et iOS) (p. 135)

Utilisation d'Appium Java TestNG pour iOS et AWSDevice FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Java TestNG pouriOS sur Device Farm. Appium est un outil open source pour l'automatisation d'applications Web natives etmobiles. Pour plus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Pour obtenir un exemple d'application et des liens vers des tests d'utilisation, consultez Device FarmSample App for iOS sur GitHub.

Informations sur la version

• Actuellement, Device Farm prend en charge Java 8 pour l'exécution de tests Appium Java.• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvez

sélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser la

Version de l'API 2015-06-2384

Page 94: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

version 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Étape 1 : Configurer votre package de test Appium (p. 85)• Étape 2 : Configurer vos tests pour exécution avec Cucumber (facultatif) (p. 86)• Étape 3 : Créer un fichier zippé du package de test (p. 87)• Étape 4 : Charger votre package de test sur Device Farm (p. 88)• Étape 5 : Effectuer des captures d'écran de vos tests Appium Java TestNG iOS (facultatif) (p. 89)

Étape 1 : Configurer votre package de test AppiumUtilisez les instructions suivantes pour configurer votre package de test. Les tests Appium Java TestNGpour votre application iOS doivent être contenus dans un fichier .zip.

Mettre à jour vos paramètres Maven

1. Modifier pom.xml pour définir le package en tant que fichier JAR :

<groupId>com.acme</groupId><artifactId>acme-android-appium</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>

2. Modifiez pom.xml pour utiliser maven-jar-plugin afin de créer vos tests dans un fichier JAR.

Le plug-in suivant crée votre code source de test (tout ce qui se trouve dans le répertoire src/test)dans un fichier JAR :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals>

Version de l'API 2015-06-2385

Page 95: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

</execution> </executions></plugin>

3. Modifiez pom.xml pour utiliser maven-dependency-plugin afin de créer des dépendances en tantque fichiers JAR.

Le plug-in suivant copie vos dépendances dans le répertoire dependency-jars :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions></plugin>

Étape 2 : Configurer vos tests pour exécution avec Cucumber(facultatif)• Si vous utilisez Cucumber avec vos tests Appium Java TestNG pour iOS, utilisez cette étape pour

configurer Maven avec vos paramètres Cucumber. Sinon, passez à l'étape suivante.

Note

Vous devez exécuter vos tests dans un environnement de test personnalisé pour utiliserCucumber avec vos tests Appium.

a. Modifiez pom.xml pour ajouter cucumber-java en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version></dependency>

b. Modifiez pom.xml pour ajouter cucumber-testng en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>4.0.0</version></dependency>

Version de l'API 2015-06-2386

Page 96: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

Étape 3 : Créer un fichier zippé du package de test1. Enregistrez l'assemblage XML suivant dans src/main/assembly/zip.xml.

Le fichier XML suivant est une définition d'assemblage qui, une fois configurée, demande à Maven decréer un fichier .zip qui contient tout ce qui est à la racine du répertoire de sortie de votre build et durépertoire dependency-jars :

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets></assembly>

2. Modifiez le fichier pom.xml pour utiliser maven-assembly-plugin afin de compresser tous les testset les dépendances en un seul fichier .zip.

Le plug-in suivant utilise l'assemblage précédant pour créer un fichier .zip nommé zip-with-dependencies dans le répertoire de sortie de build à chaque fois que la commande mvn package estexécutée :

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions></plugin>

Version de l'API 2015-06-2387

Page 97: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

3. Créez, compressez dans un package et vérifiez. Par exemple :

$ mvn clean package -DskipTests=true$ tree target.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (and so on...)

4. Utilisez la console Device Farm pour charger le package de test.

Note

Si un message d'erreur indique que l'annotation n'est pas prise en charge dans la version 1.3,ajoutez les éléments suivants au fichier pom.xml :

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Étape 4 : Charger votre package de test sur Device FarmVous pouvez utiliser la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, entrez le nom de votre projet, puis

choisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.3. Si vous disposez déjà d'un projet, vous pouvez charger vos tests dans celui-ci.4. Ouvrez votre projet, puis choisissez Create a new run (Créer une exécution).5. Sur la page Choose your application (Choisir votre application), choisissez application iOS native ( ),

puis choisissez Upload (Charger).

Version de l'API 2015-06-2388

Page 98: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

6. Recherchez et sélectionnez votre fichier d'application iOS. Le fichier doit être au format .ipa.7. Choisissez Next step.8. Sur la page Configure a test (Configurer un test), choisissez Appium Java TestNG, puis Upload

(Charger).9. Recherchez et choisissez le fichier .zip contenant vos tests. Le fichier .zip doit respecter le format

décrit dans Étape 1 : Configurer votre package de test Appium (p. 85).10. Choisissez la version d'Appium que vous utilisez.11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Java TestNG iOS.

Étape 5 : Effectuer des captures d'écran de vos tests AppiumJava TestNG iOS (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Lorsque Device Farm exécute votre test Appium Java TestNG, le service définit les propriétés systèmesuivantes qui décrivent la configuration du serveur Appium avec lequel vous communiquez :

• appium.screenshots.dir : chemin de l'emplacement d'enregistrement des captures d'écran.• appium.server.address : adresse d'hôte du serveur Appium.• appium.server.port : port sur lequel le serveur Appium écoute.

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal où Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoire spécifiqueau test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les captures d'écransont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran, dans laconsole Device Farm, choisissez la section Screenshots (Captures d'écran).

L'exemple suivant montre comment utiliser et consommer la propriété appium.screenshots.dir afind'effectuer une capture d'écran Appium qui est importée dans votre rapport Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name)));}

Utilisation d'Appium Java JUnit pour iOS et AWSDevice FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Java JUnit pouriOS sur Device Farm. Appium est un outil open source pour l'automatisation d'applications Web natives etmobiles. Pour plus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Version de l'API 2015-06-2389

Page 99: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

Vous pouvez également utiliser des outils de développement orientés par le comportement, commeCuncumber avec vos tests Appium Java.

Informations sur la version

• Actuellement, Device Farm prend en charge Java 8 pour l'exécution de tests Appium Java.• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvez

sélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Étape 1 : Configurer votre package de test Appium (p. 90)• Étape 2 : Configurer vos tests pour exécution avec Cucumber (facultatif) (p. 91)• Étape 3 : Créer un fichier zippé du package de test (p. 92)• Étape 4 : Charger votre package de test sur Device Farm (p. 93)• Étape 5 : Effectuer des captures d'écran de vos tests Appium Java JUnit iOS (facultatif) (p. 94)

Étape 1 : Configurer votre package de test AppiumUtilisez les instructions suivantes pour configurer votre package de test.

Mettre à jour vos paramètres Maven

1. Modifier pom.xml pour définir le package en tant que fichier JAR :

<groupId>com.acme</groupId><artifactId>acme-android-appium</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>

2. Modifiez pom.xml pour utiliser maven-jar-plugin afin de créer vos tests dans un fichier JAR.

Le plug-in suivant crée votre code source de test (tout ce qui se trouve dans le répertoire src/test)dans un fichier JAR :

<plugin> <groupId>org.apache.maven.plugins</groupId>

Version de l'API 2015-06-2390

Page 100: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

<artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions></plugin>

3. Modifiez pom.xml pour utiliser maven-dependency-plugin afin de créer des dépendances en tantque fichiers JAR.

Le plug-in suivant copie vos dépendances dans le répertoire dependency-jars :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions></plugin>

Étape 2 : Configurer vos tests pour exécution avec Cucumber(facultatif)• Si vous utilisez Cucumber avec vos tests Appium Java JUnit pour iOS, utilisez cette étape pour

configurer Maven avec vos paramètres Cucumber. Sinon, passez à l'étape suivante.

Note

Vous devez exécuter vos tests dans un environnement de test personnalisé pour utiliserCucumber avec vos tests Appium.

a. Modifiez pom.xml pour ajouter cucumber-java en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version></dependency>

b. Modifiez pom.xml pour ajouter cucumber-junit en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId>

Version de l'API 2015-06-2391

Page 101: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

<version>4.0.0</version> <scope>test</scope></dependency>

Étape 3 : Créer un fichier zippé du package de test1. Enregistrez l'assemblage XML suivant dans src/main/assembly/zip.xml.

Le fichier XML suivant est une définition d'assemblage qui, une fois configurée, demande à Maven decréer un fichier .zip qui contient tout ce qui est à la racine du répertoire de sortie de votre build et durépertoire dependency-jars :

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets></assembly>

2. Modifiez le fichier pom.xml pour utiliser maven-assembly-plugin afin de compresser tous les testset les dépendances en un seul fichier .zip.

Le plug-in suivant utilise l'assemblage précédant pour créer un fichier .zip nommé zip-with-dependencies dans le répertoire de sortie de build à chaque fois que la commande mvn package estexécutée :

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor>

Version de l'API 2015-06-2392

Page 102: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

</descriptors> </configuration> </execution> </executions></plugin>

3. Créez, compressez dans un package et vérifiez. Par exemple :

$ mvn clean package -DskipTests=true$ tree target.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (and so on...)

4. Utilisez la console Device Farm pour charger le package de test.

Note

Si un message d'erreur indique que l'annotation n'est pas prise en charge dans la version 1.3,ajoutez les éléments suivants au fichier pom.xml :

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Étape 4 : Charger votre package de test sur Device FarmVous pouvez utiliser la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, entrez le nom de votre projet, puis

choisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.3. Si vous disposez déjà d'un projet, vous pouvez charger vos tests dans celui-ci.4. Ouvrez votre projet, puis choisissez Create a new run (Créer une exécution).5. Sur la page Choose your application (Choisir votre application), choisissez application iOS native ( ),

puis choisissez Upload (Charger).

Version de l'API 2015-06-2393

Page 103: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

6. Recherchez et sélectionnez votre fichier d'application iOS. Le fichier doit être au format .ipa.7. Choisissez Next step.8. Sur la page Configure a test (Configurer un test), choisissez Appium Java JUnit, puis Upload

(Charger).9. Recherchez et choisissez le fichier .zip contenant vos tests. Le fichier .zip doit respecter le format

décrit dans Étape 1 : Configurer votre package de test Appium (p. 90).10. Choisissez la version d'Appium que vous utilisez.11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Java JUnit iOS.

Étape 5 : Effectuer des captures d'écran de vos tests AppiumJava JUnit iOS (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Lorsque Device Farm exécute votre test Appium Java JUnit, le service définit les propriétés systèmesuivantes qui décrivent la configuration du serveur Appium avec lequel vous communiquez :

• appium.screenshots.dir : chemin de l'emplacement d'enregistrement des captures d'écran.• appium.server.address : adresse d'hôte du serveur Appium.• appium.server.port : port sur lequel le serveur Appium écoute.

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal où Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoire spécifiqueau test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les captures d'écransont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran, dans laconsole Device Farm, choisissez la section Screenshots (Captures d'écran).

L'exemple suivant montre comment utiliser et consommer la propriété appium.screenshots.dir afind'effectuer une capture d'écran Appium qui est importée dans votre rapport Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

Version de l'API 2015-06-2394

Page 104: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name)));}

Utilisation d'Appium Node.js pour les applications iOSet AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Node.js surDevice Farm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles.Pour plus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Informations sur la version

• Vous pouvez utiliser n'importe quelle version de Node.js lorsque vous effectuez des tests AppiumNode.js sur Device Farm. Spécifiez la version de Node.js dans le fichier YAML des spécifications de test.

• Device Farm prend en charge les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Prérequis pour créer vos packages de test (p. 95)• Étape 1 : Créer un fichier zippé du package de test (p. 96)• Étape 2 : Charger votre package de test sur Device Farm (p. 97)

Prérequis pour créer vos packages de testPour créer vos packages de test Appium Node.js et les charger sur Device Farm, vous devez installer leséléments suivants sur votre machine locale :

• Node Version Manager (nvm)

Utilisez cet outil pour développer et créer vos packages de test afin qu'aucune dépendance inutile n'y soitincluse.

• Node.js• npm-bundle (installé globalement)

Pour installer les éléments prérequis sous macOS ou Linux

1. Pour installer nvm, exécutez la commande suivante :

Version de l'API 2015-06-2395

Page 105: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Une fois l'installation terminée, rechargez votre terminal. Pour cela, déconnectez-vous puisreconnectez-vous.

Note

nvm est chargé en tant que fonction pour le shell bash uniquement.2. Exécutez cette commande dans le shell bash afin de vérifier que nvm est installé correctement. Vous

pouvez basculer vers le shell bash en utilisant /bin/bash.

command -v nvm

Vous devez voir nvm en tant que sortie.

Pour plus d'informations, consultez la page nvm sur GitHub.3. Pour installer Node.js, exécutez la commande suivante :

nvm install node

Vous pouvez spécifier une version particulière de Node.js, comme illustré ici :

nvm install 11.4.0

4. Pour vérifier que vous utilisez la version spécifiée, exécutez la commande suivante :

node -v

5. Pour installer npm-bundle de façon globale, exécutez la commande suivante :

npm install -g npm-bundle

Étape 1 : Créer un fichier zippé du package de testLes packages de test Appium écrits en Node.js que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

1. Vérifiez votre projet.

Assurez-vous d'être dans le répertoire racine de votre projet. Vous pouvez voir package.json dansle répertoire racine.

2. Pour installer vos dépendances locales, exécutez la commande suivante.

npm install

Cette commande crée également un dossier node_modules au sein de votre répertoire actuel.

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local.3. Exécutez cette commande pour regrouper les fichiers de votre dossier actif dans un package *.tgz. Le

fichier créé est nommé en fonction de la propriété name indiquée dans votre fichier package.json.Version de l'API 2015-06-23

96

Page 106: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

npm-bundle

Ce fichier tarball (.tgz) contient votre code et toutes les dépendances.4. Exécutez cette commande pour inclure le fichier tarball (*.tgz) généré à l'étape précédente dans une

seule archive compressée :

zip -r MyTests.zip *.tgz

Il s'agit du fichier MyTests.zip que vous chargerez sur Device Farm dans la procédure suivante.

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application iOS native ( ).

6. Choisissez Upload (Charger) pour charger votre fichier .ipa.

Device Farm traite votre fichier .ipa avant de continuer.7. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

8. Choisissez Appium Node.js pour configurer votre test.

Version de l'API 2015-06-2397

Page 107: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

9. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).10. Choisissez le fichier MyTests.zip que vous avez créé dans la procédure précédente.11. Suivez les instructions pour sélectionner une spécification de test.

Si vous utilisez la spécification de test par défaut, modifiez la commande d'exécution de test dans lasection test du fichier YAML de spécification de test.

12. Choisissez les appareils et lancez l'exécution.

Pour plus d'informations, consultez Créer une exécution de test dans AWS Device Farm (p. 23).

Note

Device Farm ne modifie pas les tests Appium écrits en Node.js sous iOS.

Utilisation d'Appium Python pour les applications iOSet AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Python sur DeviceFarm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles. Pourplus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Pour obtenir un exemple d'application, consultez Device Farm Sample App for iOS sur GitHub.

Pour obtenir un exemple de test Device Farm, consultez Appium Python Sample Tests for the Device FarmSample iOS App sur GitHub.

Informations sur la version

• En mode standard, Device Farm prend en charge Python version 2.7 pour l'exécution de tests. En modepersonnalisé, Python 2.7 et Python 3 (3.7) sont disponibles.

• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Étape 1 : Créer un fichier zippé du package de test (p. 99)• Étape 2 : Charger votre package de test sur Device Farm (p. 100)

Version de l'API 2015-06-2398

Page 108: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

• Étape 3 : Effectuer des captures d'écran de vos tests Appium Python iOS (facultatif) (p. 102)

Étape 1 : Créer un fichier zippé du package de testLes packages de tests Appium écrits en Python que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

Note

Les instructions suivantes sont basées sur Linux x86_64 et macOS. Dans le schéma actuellementpris en charge, Device Farm exige que vous mettiez en package vos tests Appium écritsen Python sur Linux x86_64 si vos tests contiennent des dépendances wheels Python nonuniverselles. Pour la plateforme sur laquelle vous exécutez une commande, les outils wheelscollectent vos fichiers dépendants .whl dans le dossier wheelhouse/. Lorsque vous exécutez lacommande wheel Python sur une autre plateforme que Linux x86_64, vous collectez la versiond'une dépendance wheel non universelle pour cette plateforme, ce qui peut entraîner des erreurslors de l'exécution des tests sur Device Farm.

1. Nous vous recommandons vivement de configurer virtualenv Python pour le développement et lacréation d'un package de tests afin qu'aucune dépendance inutile ne soit incluse dans votre packaged'application.

$ virtualenv workspace$ cd workspace$ source bin/activate

Tip

• Ne créez pas d'environnement virtualenv Python avec l'option --system-site-packages, car il hérite des packages de /usr/lib/pythonx.x/site-packages ou del'emplacement de votre répertoire site-packages global. Cela peut entraîner l'inclusion dansvotre environnement virtuel de dépendances qui ne sont pas requises par vos tests.

• Vous devez également vérifier que vos tests n'utilisent pas de dépendances auxbibliothèques natives. En effet, il est possible que ces bibliothèques natives ne soient pasprésentes sur l'instance sur laquelle ces tests sont exécutés.

2. Installez py.test dans votre environnement virtuel.

$ pip install pytest

3. Installez le client Appium Python dans votre environnement virtuel.

$ pip install Appium-Python-Client

4. Device Farm considère que vos tests seront stockés dans tests/, sauf si vous spécifiez un chemindifférent en mode personnalisé. Vous pouvez utiliser find pour afficher tous les fichiers dans undossier :

$ find tests/

Confirmez que ces fichiers contiennent des suites de test que vous souhaitez exécuter sur DeviceFarm

tests/tests/my-first-tests.pytests/my-second-tests/py

Version de l'API 2015-06-2399

Page 109: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

5. Exécutez cette commande à partir du dossier workspace de votre environnement virtuel pour afficherune liste de vos tests sans les exécuter.

$ py.test --collect-only tests/

Vérifiez que la sortie affiche les tests que vous voulez exécuter sur Device Farm.6. Vous pouvez utiliser les commandes suivantes pour nettoyer tous les fichiers mis en cache dans votre

dossier tests/ :

$ find . -name '__pycache__' -type d -exec rm -r {} +$ find . -name '*.pyc' -exec rm -f {} +$ find . -name '*.pyo' -exec rm -f {} +$ find . -name '*~' -exec rm -f {} +

7. Exécutez la commande suivante dans votre espace de travail pour générer le fichier requirements.txt :

$ pip freeze > requirements.txt

8. Regroupez maintenant vos tests pour Device Farm.

Python 2

1. Générez une archive des packages Python requis (appelé dossier wheelhouse) en utilisantpip :

$ pip wheel --wheel-dir wheelhouse -r requirements.txt

2. Regroupez votre dossier wheelhouse, vos tests et vos exigences concernant pip dans unearchive zip pour Device Farm :

$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt

Python 3

Regroupez vos tests et vos exigences concernant pip dans un fichier zip :

$ zip -r test_bundle.zip tests/ requirements.txt

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

Version de l'API 2015-06-23100

Page 110: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application iOS native ( ).

6. Choisissez Upload (Charger) pour charger votre fichier .ipa.

Device Farm traite votre fichier .ipa avant de continuer.7. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

8. Choisissez Appium Python pour configurer votre test.9. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).10. Configurez votre test pour le mode standard (ce qui active les tests plus précis et les rapports) ou pour

le mode personnalisé (ce qui améliore la flexibilité).

Python 2

Si vous utilisez le mode standard

Choisissez la version d'Appium que vous utilisez.Si vous utilisez le mode personnalisé

Dans votre fichier YAML des spécifications de test, veillez à exporter et à configurer la versiond'Appium que vous utilisez :

phases: install: commands: # ... - export APPIUM_VERSION=1.14.2 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Python 3

Les tests Python 3 doivent utiliser le mode personnalisé. Pour choisir Python 3 comme versionpython, mettez à jour votre fichier YAML des spécifications de test :

phases:Version de l'API 2015-06-23

101

Page 111: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

install: commands: - export PYTHON_VERSION=3 # ... - export APPIUM_VERSION=1.14.2 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils etlancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Python iOS.

Étape 3 : Effectuer des captures d'écran de vos tests AppiumPython iOS (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal, sur lequel Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoirespécifique au test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les capturesd'écran sont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran,dans la console Device Farm, choisissez la section Screenshots (Captures d'écran).

Pour effectuer une capture d'écran, utilisez la méthode get_screenshot_as_file. L'exemple suivantenregistre une capture d'écran lors d'un test :

import os# with a given Appium WebDriver and filename, save the filedef take_screenshot(driver, name): if not driver.get_screenshot_as_file(os.path.join(os.getenv("SCREENSHOT_PATH", os.getcwd()), name)): assert 0 # Fail the test if a screenshot cannot be saved.

Utilisation d'Appium Ruby pour les applications iOS etAWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Ruby sur DeviceFarm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles. Pourplus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Informations sur la version

• Vous pouvez utiliser n'importe quelle version de Ruby lorsque vous effectuez des tests Appium Ruby surDevice Farm. Spécifiez la version de Ruby (par exemple, 2.5.1) dans le fichier YAML des spécificationsde test.

• Device Farm prend en charge les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install:

Version de l'API 2015-06-23102

Page 112: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Prérequis pour créer vos packages de test (p. 103)• Étape 1 : Créer un fichier zippé du package de test (p. 104)• Étape 2 : Charger votre package de test sur Device Farm (p. 105)• Conseils pour accélérer vos tests Appium (p. 106)

Prérequis pour créer vos packages de testPour créer vos packages de test Appium Ruby et les charger sur Device Farm, vous devez installer leséléments suivants sur votre machine locale :

• Ruby Version Manager (RVM)

Utilisez cet outil de ligne de commande pour développer et créer vos packages de test afin qu'aucunedépendance inutile n'y soit incluse.

• Ruby• Bundler (Cette gem est généralement installée avec Ruby.)

1. Installez les clés nécessaires, RVM et Ruby. Pour plus d'informations, consultez la section relative àl'installation de RVM sur le site Web RVM.

# The following command is for reference only. Go to rvm website and look for the complete command.gpg --keyserver hkp://keys.gnupg.net --recv-keys $keys

# install rvm along with ruby\curl -sSL https://get.rvm.io | bash -s stable --ruby

Une fois l'installation terminée, rechargez votre terminal. Pour cela, déconnectez-vous puisreconnectez-vous.

Note

RVM est chargé en tant que fonction pour le shell bash uniquement.2. Exécutez cette commande dans le shell bash afin de vérifier que RVM est installé correctement. Vous

pouvez basculer vers le shell bash en utilisant /bin/bash.

command -v rvm

Vous devez voir rvm en tant que sortie.3. Si vous souhaitez installer une version spécifique de Ruby (par exemple, la 2.5.1), exécutez la

commande suivante :

Version de l'API 2015-06-23103

Page 113: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

rvm install ruby 2.5.1 --autolibs=0

Pour vérifier que vous utilisez la version spécifiée, exécutez la commande suivante :

ruby -v

4. Même si l'installation de Ruby inclut généralement Bundler, exécutez cette commande si vous devezl'installer :

gem install bundler

Étape 1 : Créer un fichier zippé du package de testLes packages de test Appium écrits en Ruby que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

1. Pour créer un environnement Ruby virtuel, exécutez cette commande :

# myGemset is the name of your virtual Ruby environmentrvm gemset create myGemset

2. Pour utiliser l'environnement que vous venez de créer, exécutez cette commande :

rvm gemset use myGemset

3. Vérifiez votre code source.

Assurez-vous d'être dans le répertoire racine de votre projet. Vous pouvez voir Gemfile dans lerépertoire racine.

4. Pour installer vos dépendances locales et toutes les gems à partir du fichier Gemfile, exécutez cettecommande :

bundle install

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local. Pour exécuter un testen local, utilisez cette commande :

bundle exec $test_command

5. Regroupez vos gems dans le dossier vendor/cache.

# This will copy all the .gem files needed to run your tests into the vendor/cache directorybundle package

6. Exécutez la commande suivante pour regrouper votre code source, ainsi que toutes vos dépendances,dans une seule archive compressée :

zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)

Il s'agit du fichier MyTests.zip que vous chargerez sur Device Farm dans la procédure suivante.

Version de l'API 2015-06-23104

Page 114: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application iOS native ( ).

6. Choisissez Upload (Charger) pour charger votre fichier .ipa.

Device Farm traite votre fichier .ipa avant de continuer.7. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

8. Pour configurer votre test, choisissez Appium Ruby.9. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).10. Choisissez le fichier MyTests.zip que vous avez créé dans la procédure précédente.11. Suivez les instructions pour sélectionner une spécification de test.

Si vous utilisez la spécification de test par défaut, modifiez la commande d'exécution de test dans lasection test du fichier YAML de spécification de test.

12. Choisissez les appareils et lancez l'exécution.

Pour plus d'informations, consultez Créer une exécution de test dans AWS Device Farm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Ruby iOS.

Version de l'API 2015-06-23105

Page 115: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

Conseils pour accélérer vos tests AppiumDans les instructions de création des packages à l'étape 1, vous créez un package pour les gems, maisles gems sont toujours installées sur l'hôte Device Farm lors de l'exécution. Les gems avec des extensions(par exemple, Nokogiri) prennent beaucoup de temps à installer sur l'hôte.

Pour accélérer vos tests, vous pouvez compresser le répertoire d'installation des gems au lieu deregrouper les gems elles-mêmes dans un package. Dans la mesure où les gems avec des extensions sontspécifiques à la plate-forme, vous devez générer le répertoire d'installation des gems sur la même plate-forme que celle utilisée par Device Farm pour exécuter vos tests.

Device Farm exécute vos tests iOS sur un ordinateur macOS. Pour les appareils iOS, vous pouvez utiliserl'infrastructure Device Farm afin de créer le répertoire d'installation des gems.

Note

Device Farm met à jour régulièrement la version macOS en cours d'exécution sur les hôtesDevice Farm. Les étapes de création de package suivantes peuvent ne plus fonctionner en casde changement de version macOS si les extensions des gems ne sont pas compatibles entre lesdifférentes versions macOS.

1. Créez vos packages de tests selon les instructions fournies à la section Étape 1 : Créer un fichier zippédu package de test.

2. Modifiez les commandes suivantes dans le fichier YAML de votre spécification de test lorsque vousplanifiez une exécution du test dans Device Farm

>> bundle install --localbundle install --local --path=$DEVICEFARMLOGDIRECTORY/vendor/bundle

>> bundle install Bundle install --path=$DEVICEFARMLOGDIRECTORY/vendor/bundle

Le commutateur --path installe les gems dans le répertoire $DEVICEFARMLOGDIRECTORY/vendor/bundle et non à l'emplacement du système.

Une fois l'exécution du test terminée, vous pouvez télécharger le répertoire vendor/bundle à partirde l'artefact de test.

3. Copiez le répertoire vendor/bundle dans le répertoire racine de votre projet.4. Pour définir vendor/bundle comme répertoire d'installation des gems, exécutez la commande

suivante :

bundle config --local path vendor/bundle

La commande ci-dessus crée un nouveau fichier .bundle/config.

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local. Pour exécuter un testen local, utilisez cette commande :

bundle exec $test_command

5. Pour regrouper votre code source, le fichier Gemfile, le répertoire d'installation gem et le répertoire.bundle dans une seule archive compressée, exécutez cette commande :

zip -r MyTests.zip Gemfile .bundle/ vendor/ $(any other source code directory files)

Version de l'API 2015-06-23106

Page 116: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCalabash

Utiliser Calabash pour iOS et AWS Device FarmDevice Farm fournit la prise en charge de Calabash pour iOS. Les informations suivantes décriventcomment utiliser ce cadre de test avec des types de tests Device Farm.

Rubriques• En quoi consiste Calabash ? (p. 107)• Informations sur la version (p. 107)• Préparer vos tests Calabash iOS (p. 107)• Charger vos tests Calabash iOS (p. 107)• Captures d'écran des tests Calabash iOS (p. 108)• Considérations supplémentaires pour les tests Calabash iOS (p. 108)

En quoi consiste Calabash ?Calabash est un framework de test mobile que vous pouvez utiliser pour exécuter des tests automatisésd'acceptation d'interface utilisateur qui sont écrits dans Cucumber pour les applications iOS. Pour plusd'informations, consultez le référentiel Welcome to Calabash iOS sur GitHub.

Informations sur la versionActuellement, Device Farm prend en charge Calabash version 0.20.5.

Préparer vos tests Calabash iOSVos tests Calabash iOS doivent être contenus dans un fichier .zip ayant la structure suivante :

my-zip-file-name.zip `-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Charger vos tests Calabash iOSUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

charger vos tests.Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).

Version de l'API 2015-06-23107

Page 117: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUI Automation

5. Recherchez et sélectionnez votre fichier d'application iOS. Le fichier doit être au format .ipa.

Note

Assurez-vous que votre fichier .ipa est conçu pour un appareil iOS et non pour un simulateur.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez Calabash, puis Upload (Charger).8. Recherchez et choisissez le fichier .zip contenant vos tests.9. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils sur

lesquels exécuter vos tests et lancer l'exécution.

Captures d'écran des tests Calabash iOSVous pouvez effectuer des captures d'écran dans le cadre de vos tests Calabash iOS.

Calabash iOS fournit une étape prédéfinie permettant d'effectuer des captures d'écran. Pour plusd'informations, consultez la section relative aux captures d'écran de la page consacrée aux étapesprédéfinies dans le référentiel Calabash iOS sur GitHub.

Sinon, vous pouvez définir une étape personnalisée à l'intérieur d'un fichier Ruby (.rb) pour appeler lafonction screenshot_embed, qui crée une capture d'écran et l'enregistre dans un répertoire que vousdéfinissez. Par exemple, l'exemple de code suivant permet de créer une capture d'écran au format PNG etde l'enregistrer dans le répertoire /my/custom/path avec un nom de fichier de screenshot_seconds-since-Epoch :

screenshot_embed(:prefix => "/my/custom/path", :name => "screenshot_#{Time.now.to_i}")

Considérations supplémentaires pour les tests Calabash iOSDevice Farm remplace certains hooks Calabash afin que les tests Calabash iOS puissent être exécutés surdes appareils dans Device Farm, mais Device Farm ne modifie pas les tests Calabash iOS proprement dit.

Utilisation d'UI Automation pour iOS et AWS DeviceFarmDevice Farm fournit la prise en charge d'UI Automation pour iOS.

Rubriques• En quoi consiste UI Automation ? (p. 108)• Charger vos tests UI Automation iOS (p. 109)• Captures d'écran des tests UI Automation iOS (p. 109)• Considérations supplémentaires pour les tests UI Automation iOS (p. 109)

En quoi consiste UI Automation ?Vous pouvez utiliser l'instrument Automation pour automatiser des tests d'interface utilisateur dans votreapplication iOS par le biais de scripts de test que vous écrivez. Ces scripts s'exécutent en dehors devotre application et simulent une interaction utilisateur en appelant l'API UI Automation. Cette API est uneinterface de programmation JavaScript qui spécifie les actions à effectuer dans votre application à mesurequ'elle s'exécute dans le simulateur ou sur un appareil connecté. Pour plus d'informations, consultez AboutInstruments dans le manuel Instruments User Guide de la bibliothèque pour les développeurs iOS.

Version de l'API 2015-06-23108

Page 118: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTest

Charger vos tests UI Automation iOSUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

charger vos tests.Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).5. Recherchez et sélectionnez votre fichier d'application iOS. Le fichier doit être au format .ipa.

Note

Assurez-vous que votre fichier .ipa est conçu pour un appareil iOS et non pour un simulateur.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez UI Automation, puis Upload (Charger).8. Recherchez et choisissez le fichier .js pour un seul test.9. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils sur

lesquels exécuter vos tests et lancer l'exécution.

Captures d'écran des tests UI Automation iOSVous pouvez effectuer des captures d'écran dans le cadre de vos tests UI Automation iOS.

Pour effectuer une capture d'écran, appelez la fonction captureScreenWithName (par exemple,target.captureScreenWithName(lang + "_home");, où lang est le nom de la langue actuelle).

Considérations supplémentaires pour les tests UI Automation iOSDevice Farm ajoute des hooks de journalisation afin de pouvoir surveiller le flux d'exécution des tests UIAutomation iOS, mais Device Farm ne modifie pas les tests UI Automation iOS proprement dit.

Utiliser XCTest pour iOS et AWS Device FarmAvec Device Farm, vous pouvez utiliser l'infrastructure XCTest pour tester votre application sur desappareils réels. Pour plus d'informations sur XCTest, consultez Testing Basics dans Testing with Xcode.

Pour exécuter un test, créez les packages pour votre exécution de test et chargez-les dans Device Farm.

Rubriques• Création des packages pour votre exécution de test XCTest (p. 109)• Chargement des packages pour votre exécution de test XCTest dans Device Farm (p. 110)

Création des packages pour votre exécution de test XCTestPour tester votre application à l'aide de l'infrastructure XCTest, Device Farm a besoin des élémentssuivants :

Version de l'API 2015-06-23109

Page 119: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTest

• Votre package d'application en tant que fichier .ipa.• Votre package XCTest en tant que fichier .zip.

Vous créez ces packages en utilisant la sortie de build générée par Xcode. Effectuez les étapes suivantesafin de créer les packages pour pouvoir les charger dans Device Farm.

Pour générer la sortie de build pour votre application.

1. Ouvrez votre projet d'application dans Xcode.2. Dans le menu déroulant de méthode de la barre d'outils Xcode, choisissez Generic iOS Device

(Appareil iOS générique) comme destination.3. Dans le menu Product (Produit), choisissez Build For (Build pour), puis Testing (Test).

Pour créer le package d'application

1. Dans le navigateur de projet dans Xcode, sous Products (Produits), ouvrez le menu contextuel pourle fichier nommé app-project-name.app. Choisissez ensuite Show in Finder (Afficher dans l'outilde recherche). L'outil de recherche s'ouvre dans un dossier nommé Debug-iphoneos, qui contient lasortie générée par Xcode pour votre build de test. Ce dossier inclut votre fichier .app.

2. Dans l'outil de recherche, créez un nouveau dossier et nommez-le Payload.3. Copiez le fichier app-project-name.app et collez-le dans le dossier Payload.4. Ouvrez le menu contextuel pour le dossier Payload et choisissez Compress "Payload" (Compresser

« Payload »). Un fichier nommé Payload.zip est créé.5. Remplacez le nom de fichier et l'extension de Payload.zip par app-project-name.ipa.

Dans une étape ultérieure, vous fournirez ce fichier à Device Farm. Pour rendre le fichier plus facile àtrouver, vous pouvez le déplacer vers un autre emplacement, tel que votre bureau.

6. Le cas échéant, vous pouvez supprimer le dossier Payload et le fichier .app dans celui-ci.

Pour créer le package XCTest

1. Dans l'outil de recherche, dans le répertoire Debug-iphoneos, ouvrez le menu contextuel pour lefichier app-project-name.app. Ensuite, choisissez Show Package Contents (Afficher le contenu dupackage).

2. Dans le contenu du package, ouvrez le dossier Plugins. Ce dossier contient un fichier nommé app-project-name.xctest.

3. Ouvrez le menu contextuel pour ce fichier et choisissez Compress (Compresser) "app-project-name.xctest". Un fichier nommé app-project-name.xctest.zip est créé.

Dans une étape ultérieure, vous fournirez ce fichier à Device Farm. Pour rendre le fichier plus facile àtrouver, vous pouvez le déplacer vers un autre emplacement, tel que votre bureau.

Chargement des packages pour votre exécution de test XCTestdans Device FarmUtilisez la console Device Farm afin de charger les packages pour votre test.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous n'en possédez pas déjà un, créez un projet. Pour connaître les étapes de création d'un projet,

consultez Créer un projet dans AWS Device Farm (p. 20).

Version de l'API 2015-06-23110

Page 120: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTest UI

Sinon, choisissez le projet que vous souhaitez utiliser pour exécuter le test.3. Choisissez Create a new run (Créer une exécution).4. Sur la page Choose your application (Choisir votre application), choisissez l'option Test a native

application on Android or iOS devices (Tester une application native sur des appareils Android ou iOS).5. Choisissez Upload.6. Accédez au fichier .ipa pour votre application et chargez-le.

Note

Votre package .ipa doit être conçu pour les tests.7. Une fois le chargement est terminé, choisissez Next step (Étape suivante).8. Sur la page Configure your test (Configurer votre test), pour Test, choisissez XCTest. Choisissez

ensuite Upload (Charger).9. Accédez au fichier .zip qui contient le package XCTest pour votre application et chargez-le.10. Une fois le chargement est terminé, choisissez Next step (Étape suivante).11. Effectuez les étapes restantes du processus de création de projet. Vous sélectionnerez les appareils

sur lesquels vous souhaitez exécuter le test et vous spécifierez leur état.12. Une fois que vous avez configuré votre exécution, sur la page Create a new run (Créer une exécution),

choisissez Confirm and start run (Confirmer et démarrer l'exécution).

Device Farm exécute votre test et affiche les résultats dans la console.

Utilisation du cadre de test XCTest UI pour iOS etAWS Device FarmDevice Farm prend en charge le framework de test XCTest UI pour iOS. Plus précisément, Device Farmprend en charge les tests XCTest UI écrits dans les langages Objective-C et Swift.

Rubriques• En quoi consiste le framework de test XCTest UI ? (p. 111)• Préparer vos tests XCTest UI iOS (p. 111)• Charger vos tests XCTest UI iOS (p. 112)• Captures d'écran des tests XCTest UI iOS (p. 112)

En quoi consiste le framework de test XCTest UI ?Le framework XCTest UI est le nouveau framework de test introduit avec Xcode 7. Ce framework étendXCTest avec des fonctionnalités de test d'interface utilisateur. Pour plus d'informations, consultez UserInterface Testing dans la bibliothèque pour les développeurs iOS.

Préparer vos tests XCTest UI iOSVotre solution groupée d'exécuteur de test XCTest UI iOS doit être contenue dans un fichier .ipa au bonformat.

Pour créer un fichier .ipa, placez votre solution groupée my-project-nameUITest-Runner.app dans unrépertoire Payload vide. Ensuite, archivez le répertoire Payload dans un fichier .zip, puis remplacezl'extension du fichier par .ipa. La solution groupée *UITest-Runner.app est générée par Xcode lorsque vouscréez votre projet à des fins de test. Vous pouvez la trouver dans le répertoire Products de votre projet.

Version de l'API 2015-06-23111

Page 121: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurTests d'applications Web

Charger vos tests XCTest UI iOSUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

charger vos tests.

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).5. Recherchez et sélectionnez votre fichier d'application iOS. Le fichier doit être au format .ipa.

Note

Assurez-vous que votre fichier .ipa est conçu pour un appareil iOS et non pour un simulateur.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez XCTest UI, puis Upload (Charger).8. Recherchez et sélectionnez le fichier .ipa contenant votre exécuteur de test XCTest UI iOS.9. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils sur

lesquels exécuter vos tests et lancer l'exécution.

Captures d'écran des tests XCTest UI iOSLes tests XCTest UI effectuent des captures d'écran automatiquement à chacune de leurs étapes. Cescaptures d'écran sont affichées dans votre rapport de test Device Farm. Aucun code supplémentaire n'estrequis.

Utilisation des tests d'applications Web dans AWSDevice Farm

Device Farm prend en charge les types de tests suivants à utiliser avec les applications Web.

• Appium Java TestNG (p. 113)• Appium Java JUnit (p. 118)• Appium Node.js (p. 123)• Appium Python (p. 126)• Appium Ruby (p. 131)

Règles concernant les appareils limités et illimitésLa notion d'appareils limités ou illimités fait référence à la facturation de leur utilisation. Par défaut,l'utilisation des appareils Device Farm est limitée et chaque minute vous est facturée une fois les minutes

Version de l'API 2015-06-23112

Page 122: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

de l'essai gratuit utilisées. Vous pouvez également choisir d'acheter des appareils illimités, ce qui vouspermet d'effectuer des tests de manière illimitée pour un coût mensuel fixe. Pour plus d'informations sur latarification, consultez Tarification AWS Device Farm.

Si vous choisissez de démarrer une exécution avec un groupe d'appareils contenant à la fois desappareils iOS et des appareils Android, certaines règles s'appliquent selon qu'ils sont limités ou illimités.Par exemple, si vous disposez de cinq appareils Android illimités et de cinq appareils iOS illimités, vosexécutions de test Web utilisent vos appareils illimités.

Voici un autre exemple : supposons que vous disposiez de cinq appareils Android illimités et de 0 appareiliOS illimité. Si vous sélectionnez uniquement les appareils Android pour exécuter votre test Web, vosappareils illimités sont utilisés. Si vous sélectionnez à la fois les appareils Android et iOS pour exécutervotre test Web, le mode de facturation est limité et vos appareils illimités ne sont pas utilisés.

Utilisation d'Appium Java TestNG pour les applicationsWeb et AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium TestNG pourapplications web sur Device Farm. Appium est un outil open source pour l'automatisation d'applicationsWeb natives et mobiles. Pour plus d'informations, consultez la page de présentation d'Appium sur le siteweb Appium.

Pour obtenir un exemple de test, consultez How to Test a Web Application Using Device Farm and AppiumJava TestNG sur GitHub.

Informations sur la version

• Actuellement, Device Farm prend en charge Java 8 pour l'exécution de tests Appium Java.• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvez

sélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Étape 1 : Configurer votre package de test Appium (p. 114)• Étape 2 : Configurer vos tests pour exécution avec Cucumber (facultatif) (p. 115)• Étape 3 : Créer un fichier zippé du package de test (p. 115)

Version de l'API 2015-06-23113

Page 123: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

• Étape 4 : Charger votre package de test sur Device Farm (p. 117)• Étape 5 : Effectuer des captures d'écran de vos tests Appium Java TestNG Android

(facultatif) (p. 117)

Étape 1 : Configurer votre package de test AppiumUtilisez les instructions suivantes pour configurer votre package de test. Les tests Appium Java TestNGpour votre application Web doivent être contenus dans un fichier .zip.

Mettre à jour vos paramètres Maven

1. Modifier pom.xml pour définir le package en tant que fichier JAR :

<groupId>com.acme</groupId><artifactId>acme-android-appium</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>

2. Modifiez pom.xml pour utiliser maven-jar-plugin afin de créer vos tests dans un fichier JAR.

Le plug-in suivant crée votre code source de test (tout ce qui se trouve dans le répertoire src/test)dans un fichier JAR :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions></plugin>

3. Modifiez pom.xml pour utiliser maven-dependency-plugin afin de créer des dépendances en tantque fichiers JAR.

Le plug-in suivant copie vos dépendances dans le répertoire dependency-jars :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions></plugin>

Version de l'API 2015-06-23114

Page 124: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

Étape 2 : Configurer vos tests pour exécution avec Cucumber(facultatif)• Si vous utilisez Cucumber avec vos tests Appium Java TestNG pour applications web, utilisez cette

étape pour configurer Maven avec vos paramètres Cucumber. Sinon, passez à l'étape suivante.

Note

Vous devez exécuter vos tests dans un environnement de test personnalisé pour utiliserCucumber avec vos tests Appium.

a. Modifiez pom.xml pour ajouter cucumber-java en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version></dependency>

b. Modifiez pom.xml pour ajouter cucumber-testng en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-testng</artifactId> <version>4.0.0</version></dependency>

Étape 3 : Créer un fichier zippé du package de test1. Enregistrez l'assemblage XML suivant dans src/main/assembly/zip.xml.

Le fichier XML suivant est une définition d'assemblage qui, une fois configurée, demande à Maven decréer un fichier .zip qui contient tout ce qui est à la racine du répertoire de sortie de votre build et durépertoire dependency-jars :

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes>

Version de l'API 2015-06-23115

Page 125: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

<include>/dependency-jars/</include> </includes> </fileSet> </fileSets></assembly>

2. Modifiez le fichier pom.xml pour utiliser maven-assembly-plugin afin de compresser tous les testset les dépendances en un seul fichier .zip.

Le plug-in suivant utilise l'assemblage précédant pour créer un fichier .zip nommé zip-with-dependencies dans le répertoire de sortie de build à chaque fois que la commande mvn package estexécutée :

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions></plugin>

3. Créez, compressez dans un package et vérifiez. Par exemple :

$ mvn clean package -DskipTests=true$ tree target.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (and so on...)

4. Utilisez la console Device Farm pour charger le package de test.

Note

Si un message d'erreur indique que l'annotation n'est pas prise en charge dans la version 1.3,ajoutez les éléments suivants au fichier pom.xml :

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source>

Version de l'API 2015-06-23116

Page 126: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java TestNG

<target>1.7</target> </configuration></plugin>

Étape 4 : Charger votre package de test sur Device FarmVous pouvez utiliser la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, entrez le nom de votre projet, puis

choisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.3. Si vous disposez déjà d'un projet, vous pouvez charger vos tests dans celui-ci.4. Ouvrez votre projet, puis choisissez Create a new run (Créer une exécution).5. Sur la page Choose your application (Choisir votre application), choisissez application web ( ).

6. Dans Run name (Nom d'exécution), acceptez le nom par défaut ou entrez un nom pour votre exécutiontest.

7. Choisissez Next step.8. Sur la page Configure a test (Configurer un test), choisissez Appium Java TestNG, puis Upload

(Charger).9. Recherchez et choisissez le fichier .zip contenant vos tests. Le fichier .zip doit respecter le format

décrit dans Étape 1 : Configurer votre package de test Appium (p. 114).10. Choisissez la version d'Appium que vous utilisez.11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Java TestNG Android.

Étape 5 : Effectuer des captures d'écran de vos tests AppiumJava TestNG Android (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Version de l'API 2015-06-23117

Page 127: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

Lorsque Device Farm exécute votre test Appium Java TestNG, le service définit les propriétés systèmesuivantes qui décrivent la configuration du serveur Appium avec lequel vous communiquez :

• appium.screenshots.dir : chemin de l'emplacement d'enregistrement des captures d'écran.• appium.server.address : adresse d'hôte du serveur Appium.• appium.server.port : port sur lequel le serveur Appium écoute.

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal où Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoire spécifiqueau test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les captures d'écransont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran, dans laconsole Device Farm, choisissez la section Screenshots (Captures d'écran).

L'exemple suivant montre comment utiliser et consommer la propriété appium.screenshots.dir afind'effectuer une capture d'écran Appium qui est importée dans votre rapport Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name)));}

Utilisation d'Appium Java JUnit pour les applicationsWeb et AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Java JUnit pourapplications web sur Device Farm. Appium est un outil open source pour l'automatisation d'applicationsWeb natives et mobiles. Pour plus d'informations, consultez la page de présentation d'Appium sur le siteweb Appium.

Informations sur la version

• Actuellement, Device Farm prend en charge Java 8 pour l'exécution de tests Appium Java.• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvez

sélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Version de l'API 2015-06-23118

Page 128: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

Rubriques• Étape 1 : Configurer votre package de test Appium (p. 119)• Étape 2 : Configurer vos tests pour exécution avec Cucumber (facultatif) (p. 120)• Étape 3 : Créer un fichier zippé du package de test (p. 120)• Étape 4 : Charger votre package de test sur Device Farm (p. 122)• Étape 5 : Effectuer des captures d'écran de vos tests Appium Java JUnit application web

(facultatif) (p. 123)

Étape 1 : Configurer votre package de test AppiumUtilisez les instructions suivantes pour configurer votre package de test.

Mettre à jour vos paramètres Maven

1. Modifier pom.xml pour définir le package en tant que fichier JAR :

<groupId>com.acme</groupId><artifactId>acme-android-appium</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>

2. Modifiez pom.xml pour utiliser maven-jar-plugin afin de créer vos tests dans un fichier JAR.

Le plug-in suivant crée votre code source de test (tout ce qui se trouve dans le répertoire src/test)dans un fichier JAR :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions></plugin>

3. Modifiez pom.xml pour utiliser maven-dependency-plugin afin de créer des dépendances en tantque fichiers JAR.

Le plug-in suivant copie vos dépendances dans le répertoire dependency-jars :

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution>

Version de l'API 2015-06-23119

Page 129: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

</executions></plugin>

Étape 2 : Configurer vos tests pour exécution avec Cucumber(facultatif)• Si vous utilisez Cucumber avec vos tests Appium Java JUnit pour applications web, utilisez cette étape

pour configurer Maven avec vos paramètres Cucumber. Sinon, passez à l'étape suivante.

Note

Vous devez exécuter vos tests dans un environnement de test personnalisé pour utiliserCucumber avec vos tests Appium.

a. Modifiez pom.xml pour ajouter cucumber-java en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.0.0</version></dependency>

b. Modifiez pom.xml pour ajouter cucumber-junit en tant que dépendance.

<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>4.0.0</version> <scope>test</scope></dependency>

Étape 3 : Créer un fichier zippé du package de test1. Enregistrez l'assemblage XML suivant dans src/main/assembly/zip.xml.

Le fichier XML suivant est une définition d'assemblage qui, une fois configurée, demande à Maven decréer un fichier .zip qui contient tout ce qui est à la racine du répertoire de sortie de votre build et durépertoire dependency-jars :

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include>

Version de l'API 2015-06-23120

Page 130: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

</includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets></assembly>

2. Modifiez le fichier pom.xml pour utiliser maven-assembly-plugin afin de compresser tous les testset les dépendances en un seul fichier .zip.

Le plug-in suivant utilise l'assemblage précédant pour créer un fichier .zip nommé zip-with-dependencies dans le répertoire de sortie de build à chaque fois que la commande mvn package estexécutée :

<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions></plugin>

3. Créez, compressez dans un package et vérifiez. Par exemple :

$ mvn clean package -DskipTests=true$ tree target.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar |— log4j-1.2.14.jar |— (and so on...)

4. Utilisez la console Device Farm pour charger le package de test.

Version de l'API 2015-06-23121

Page 131: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

Note

Si un message d'erreur indique que l'annotation n'est pas prise en charge dans la version 1.3,ajoutez les éléments suivants au fichier pom.xml :

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration></plugin>

Étape 4 : Charger votre package de test sur Device FarmVous pouvez utiliser la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, entrez le nom de votre projet, puis

choisissez Create project (Créer un projet). Actualisez la page pour afficher votre nouveau projet.3. Si vous disposez déjà d'un projet, vous pouvez charger vos tests dans celui-ci.4. Ouvrez votre projet, puis choisissez Create a new run (Créer une exécution).5. Sur la page Choose your application (Choisir votre application), choisissez application web ( ).

6. Dans Run name (Nom d'exécution), acceptez le nom par défaut ou entrez un nom.7. Choisissez Next step.8. Sur la page Configure a test (Configurer un test), choisissez Appium Java JUnit, puis Upload

(Charger).9. Recherchez et choisissez le fichier .zip contenant vos tests. Le fichier .zip doit respecter le format

décrit dans Étape 1 : Configurer votre package de test Appium (p. 119).10. Choisissez la version d'Appium que vous utilisez.11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Java JUnit Android.

Version de l'API 2015-06-23122

Page 132: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

Étape 5 : Effectuer des captures d'écran de vos tests AppiumJava JUnit application web (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Lorsque Device Farm exécute votre test Appium Java JUnit, le service définit les propriétés systèmesuivantes qui décrivent la configuration du serveur Appium avec lequel vous communiquez :

• appium.screenshots.dir : chemin de l'emplacement d'enregistrement des captures d'écran.• appium.server.address : adresse d'hôte du serveur Appium.• appium.server.port : port sur lequel le serveur Appium écoute.

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal où Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoire spécifiqueau test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les captures d'écransont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran, dans laconsole Device Farm, choisissez la section Screenshots (Captures d'écran).

L'exemple suivant montre comment utiliser et consommer la propriété appium.screenshots.dir afind'effectuer une capture d'écran Appium qui est importée dans votre rapport Device Farm.

public boolean takeScreenshot(final String name) { String screenshotDirectory = System.getProperty("appium.screenshots.dir", System.getProperty("java.io.tmpdir", "")); File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); return screenshot.renameTo(new File(screenshotDirectory, String.format("%s.png", name)));}

Utilisation d'Appium Node.js pour les applications Webet AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Node.js surDevice Farm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles.Pour plus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Informations sur la version

• Vous pouvez utiliser n'importe quelle version de Node.js lorsque vous effectuez des tests AppiumNode.js sur Device Farm. Spécifiez la version de Node.js dans le fichier YAML des spécifications de test.

• Device Farm prend en charge les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Version de l'API 2015-06-23123

Page 133: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Prérequis pour créer vos packages de test (p. 124)• Étape 1 : Créer un fichier zippé du package de test (p. 125)• Étape 2 : Charger votre package de test sur Device Farm (p. 125)

Prérequis pour créer vos packages de testPour créer vos packages de test Appium Node.js et les charger sur Device Farm, vous devez installer leséléments suivants sur votre machine locale :

• Node Version Manager (nvm)

Utilisez cet outil pour développer et créer vos packages de test afin qu'aucune dépendance inutile n'y soitincluse.

• Node.js• npm-bundle (installé globalement)

Pour installer les éléments prérequis sous macOS ou Linux

1. Pour installer nvm, exécutez la commande suivante :

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Une fois l'installation terminée, rechargez votre terminal. Pour cela, déconnectez-vous puisreconnectez-vous.

Note

nvm est chargé en tant que fonction pour le shell bash uniquement.2. Exécutez cette commande dans le shell bash afin de vérifier que nvm est installé correctement. Vous

pouvez basculer vers le shell bash en utilisant /bin/bash.

command -v nvm

Vous devez voir nvm en tant que sortie.

Pour plus d'informations, consultez la page nvm sur GitHub.3. Pour installer Node.js, exécutez la commande suivante :

nvm install node

Vous pouvez spécifier une version particulière de Node.js, comme illustré ici :

nvm install 11.4.0

4. Pour vérifier que vous utilisez la version spécifiée, exécutez la commande suivante :Version de l'API 2015-06-23

124

Page 134: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Node.js

node -v

5. Pour installer npm-bundle de façon globale, exécutez la commande suivante :

npm install -g npm-bundle

Étape 1 : Créer un fichier zippé du package de testLes packages de test Appium écrits en Node.js que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

1. Vérifiez votre projet.

Assurez-vous d'être dans le répertoire racine de votre projet. Vous pouvez voir package.json dansle répertoire racine.

2. Pour installer vos dépendances locales, exécutez la commande suivante.

npm install

Cette commande crée également un dossier node_modules au sein de votre répertoire actuel.

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local.3. Exécutez cette commande pour regrouper les fichiers de votre dossier actif dans un package *.tgz. Le

fichier créé est nommé en fonction de la propriété name indiquée dans votre fichier package.json.

npm-bundle

Ce fichier tarball (.tgz) contient votre code et toutes les dépendances.4. Exécutez cette commande pour inclure le fichier tarball (*.tgz) généré à l'étape précédente dans une

seule archive compressée :

zip -r MyTests.zip *.tgz

Il s'agit du fichier MyTests.zip que vous chargerez sur Device Farm dans la procédure suivante.

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.

Version de l'API 2015-06-23125

Page 135: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application web ( ).

6. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

7. Choisissez Appium Node.js pour configurer votre test.8. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).9. Choisissez le fichier MyTests.zip que vous avez créé dans la procédure précédente.10. Suivez les instructions pour sélectionner une spécification de test.

Si vous utilisez la spécification de test par défaut, modifiez la commande d'exécution de test dans lasection test du fichier YAML de spécification de test.

11. Choisissez les appareils et lancez l'exécution.

Pour plus d'informations, consultez Créer une exécution de test dans AWS Device Farm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Node.js d'applications Web.

Utilisation d'Appium Python pour les applications Webet AWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Python sur DeviceFarm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles. Pourplus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Pour obtenir un exemple de test Device Farm, consultez How to Test a Web Application Using Device Farmand Appium Python sur GitHub.

Informations sur la version

• En mode standard, Device Farm prend en charge Python version 2.7 pour l'exécution de tests. En modepersonnalisé, Python 2.7 et Python 3 (3.7) sont disponibles.

Version de l'API 2015-06-23126

Page 136: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

• Device Farm prend en charge toutes les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pout utiliser toutes les fonctions de l'infrastructure, comme les annotations, choisissez un environnementde test personnalisé et utilisez l'interface de ligne de commande AWS CLI ou la console Device Farmpour télécharger une spécification de test personnalisée.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Étape 1 : Créer un fichier zippé du package de test (p. 127)• Étape 2 : Charger votre package de test sur Device Farm (p. 129)• Étape 3 : Effectuer des captures d'écran de vos tests Appium Python application web

(facultatif) (p. 130)

Étape 1 : Créer un fichier zippé du package de testLes packages de tests Appium écrits en Python que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.

Note

Les instructions suivantes sont basées sur Linux x86_64 et macOS. Dans le schéma actuellementpris en charge, Device Farm exige que vous mettiez en package vos tests Appium écritsen Python sur Linux x86_64 si vos tests contiennent des dépendances wheels Python nonuniverselles. Pour la plateforme sur laquelle vous exécutez une commande, les outils wheelscollectent vos fichiers dépendants .whl dans le dossier wheelhouse/. Lorsque vous exécutez lacommande wheel Python sur une autre plateforme que Linux x86_64, vous collectez la versiond'une dépendance wheel non universelle pour cette plateforme, ce qui peut entraîner des erreurslors de l'exécution des tests sur Device Farm.

1. Nous vous recommandons vivement de configurer virtualenv Python pour le développement et lacréation d'un package de tests afin qu'aucune dépendance inutile ne soit incluse dans votre packaged'application.

$ virtualenv workspace$ cd workspace$ source bin/activate

Tip

• Ne créez pas d'environnement virtualenv Python avec l'option --system-site-packages, car il hérite des packages de /usr/lib/pythonx.x/site-packages ou de

Version de l'API 2015-06-23127

Page 137: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

l'emplacement de votre répertoire site-packages global. Cela peut entraîner l'inclusion dansvotre environnement virtuel de dépendances qui ne sont pas requises par vos tests.

• Vous devez également vérifier que vos tests n'utilisent pas de dépendances auxbibliothèques natives. En effet, il est possible que ces bibliothèques natives ne soient pasprésentes sur l'instance sur laquelle ces tests sont exécutés.

2. Installez py.test dans votre environnement virtuel.

$ pip install pytest

3. Installez le client Appium Python dans votre environnement virtuel.

$ pip install Appium-Python-Client

4. Device Farm considère que vos tests seront stockés dans tests/, sauf si vous spécifiez un chemindifférent en mode personnalisé. Vous pouvez utiliser find pour afficher tous les fichiers dans undossier :

$ find tests/

Confirmez que ces fichiers contiennent des suites de test que vous souhaitez exécuter sur DeviceFarm

tests/tests/my-first-tests.pytests/my-second-tests/py

5. Exécutez cette commande à partir du dossier workspace de votre environnement virtuel pour afficherune liste de vos tests sans les exécuter.

$ py.test --collect-only tests/

Vérifiez que la sortie affiche les tests que vous voulez exécuter sur Device Farm.6. Vous pouvez utiliser les commandes suivantes pour nettoyer tous les fichiers mis en cache dans votre

dossier tests/ :

$ find . -name '__pycache__' -type d -exec rm -r {} +$ find . -name '*.pyc' -exec rm -f {} +$ find . -name '*.pyo' -exec rm -f {} +$ find . -name '*~' -exec rm -f {} +

7. Exécutez la commande suivante dans votre espace de travail pour générer le fichier requirements.txt :

$ pip freeze > requirements.txt

8. Regroupez maintenant vos tests pour Device Farm.

Python 2

1. Générez une archive des packages Python requis (appelé dossier wheelhouse) en utilisantpip :

$ pip wheel --wheel-dir wheelhouse -r requirements.txt

2. Regroupez votre dossier wheelhouse, vos tests et vos exigences concernant pip dans unearchive zip pour Device Farm :

Version de l'API 2015-06-23128

Page 138: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt

Python 3

Regroupez vos tests et vos exigences concernant pip dans un fichier zip :

$ zip -r test_bundle.zip tests/ requirements.txt

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.5. Sur la page Choose your application (Choisir votre application), choisissez application web ( ).

6. Choisissez Upload (Charger) pour charger votre fichier .apk.

Device Farm traite votre fichier .apk avant de continuer.7. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.

Version de l'API 2015-06-23129

Page 139: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

8. Choisissez Appium Python pour configurer votre test.9. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).10. Configurez votre test pour le mode standard (ce qui active les tests plus précis et les rapports) ou pour

le mode personnalisé (ce qui améliore la flexibilité).

Python 2

Si vous utilisez le mode standard

Choisissez la version d'Appium que vous utilisez.Si vous utilisez le mode personnalisé

Dans votre fichier YAML des spécifications de test, veillez à exporter et à configurer la versiond'Appium que vous utilisez :

phases: install: commands: # ... - export APPIUM_VERSION=1.14.2 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Python 3

Les tests Python 3 doivent utiliser le mode personnalisé. Pour choisir Python 3 comme versionpython, mettez à jour votre fichier YAML des spécifications de test :

phases: install: commands: - export PYTHON_VERSION=3 # ... - export APPIUM_VERSION=1.14.2 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

11. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils etlancer l'exécution. Pour plus d'informations, consultez Créer une exécution de test dans AWS DeviceFarm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Python d'application web.

Étape 3 : Effectuer des captures d'écran de vos tests AppiumPython application web (facultatif)Vous pouvez effectuer des captures d'écran dans le cadre de vos tests.

Version de l'API 2015-06-23130

Page 140: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

Device Farm définit la propriété SCREENSHOT_PATH sur un chemin d'accès complet du système de fichierslocal, sur lequel Device Farm prévoit que les captures d'écran Appium seront enregistrées. Le répertoirespécifique au test dans lequel les captures d'écran sont stockées est défini lors de l'exécution. Les capturesd'écran sont extraites automatiquement dans vos rapports Device Farm. Pour afficher les captures d'écran,dans la console Device Farm, choisissez la section Screenshots (Captures d'écran).

Pour effectuer une capture d'écran, utilisez la méthode get_screenshot_as_file. L'exemple suivantenregistre une capture d'écran lors d'un test :

import os# with a given Appium WebDriver and filename, save the filedef take_screenshot(driver, name): if not driver.get_screenshot_as_file(os.path.join(os.getenv("SCREENSHOT_PATH", os.getcwd()), name)): assert 0 # Fail the test if a screenshot cannot be saved.

Utilisation d'Appium Ruby pour les applications Web etAWS Device FarmCette section décrit comment configurer, mettre en package et charger vos tests Appium Ruby sur DeviceFarm. Appium est un outil open source pour l'automatisation d'applications Web natives et mobiles. Pourplus d'informations, consultez la page de présentation d'Appium sur le site web Appium.

Informations sur la version

• Vous pouvez utiliser n'importe quelle version de Ruby lorsque vous effectuez des tests Appium Ruby surDevice Farm. Spécifiez la version de Ruby (par exemple, 2.5.1) dans le fichier YAML des spécificationsde test.

• Device Farm prend en charge les versions 1.6.5 et ultérieures du serveur Appium. Vous pouvezsélectionner la version Appium de votre choix à l'aide de la commande avm. Par exemple, pour utiliser laversion 1.9.1 du serveur Appium, ajoutez les commandes suivantes à votre fichier YAML de spécificationde test :

phases: install: commands: # To install a newer version of Appium such as version 1.9.1: - export APPIUM_VERSION=1.9.1 - avm $APPIUM_VERSION - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aidede l'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS DeviceFarm (p. 23).

Rubriques• Prérequis pour créer vos packages de test (p. 132)• Étape 1 : Créer un fichier zippé du package de test (p. 132)• Étape 2 : Charger votre package de test sur Device Farm (p. 133)

Version de l'API 2015-06-23131

Page 141: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

Prérequis pour créer vos packages de testPour créer vos packages de test Appium Ruby et les charger sur Device Farm, vous devez installer leséléments suivants sur votre machine locale :

• Ruby Version Manager (RVM)

Utilisez cet outil de ligne de commande pour développer et créer vos packages de test afin qu'aucunedépendance inutile n'y soit incluse.

• Ruby• Bundler (Cette gem est généralement installée avec Ruby.)

1. Installez les clés nécessaires, RVM et Ruby. Pour plus d'informations, consultez la section relative àl'installation de RVM sur le site Web RVM.

# The following command is for reference only. Go to rvm website and look for the complete command.gpg --keyserver hkp://keys.gnupg.net --recv-keys $keys

# install rvm along with ruby\curl -sSL https://get.rvm.io | bash -s stable --ruby

Une fois l'installation terminée, rechargez votre terminal. Pour cela, déconnectez-vous puisreconnectez-vous.

Note

RVM est chargé en tant que fonction pour le shell bash uniquement.2. Exécutez cette commande dans le shell bash afin de vérifier que RVM est installé correctement. Vous

pouvez basculer vers le shell bash en utilisant /bin/bash.

command -v rvm

Vous devez voir rvm en tant que sortie.3. Si vous souhaitez installer une version spécifique de Ruby (par exemple, la 2.5.1), exécutez la

commande suivante :

rvm install ruby 2.5.1 --autolibs=0

Pour vérifier que vous utilisez la version spécifiée, exécutez la commande suivante :

ruby -v

4. Même si l'installation de Ruby inclut généralement Bundler, exécutez cette commande si vous devezl'installer :

gem install bundler

Étape 1 : Créer un fichier zippé du package de testLes packages de test Appium écrits en Ruby que vous chargez dans Device Farm doivent être auformat .zip et contenir toutes les dépendances de votre test.Version de l'API 2015-06-23

132

Page 142: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Ruby

1. Pour créer un environnement Ruby virtuel, exécutez cette commande :

# myGemset is the name of your virtual Ruby environmentrvm gemset create myGemset

2. Pour utiliser l'environnement que vous venez de créer, exécutez cette commande :

rvm gemset use myGemset

3. Vérifiez votre code source.

Assurez-vous d'être dans le répertoire racine de votre projet. Vous pouvez voir Gemfile dans lerépertoire racine.

4. Pour installer vos dépendances locales et toutes les gems à partir du fichier Gemfile, exécutez cettecommande :

bundle install

Note

À ce stade, vous devriez être en mesure d'exécuter vos tests en local. Pour exécuter un testen local, utilisez cette commande :

bundle exec $test_command

5. Regroupez vos gems dans le dossier vendor/cache.

# This will copy all the .gem files needed to run your tests into the vendor/cache directorybundle package

6. Exécutez la commande suivante pour regrouper votre code source, ainsi que toutes vos dépendances,dans une seule archive compressée :

zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)

Il s'agit du fichier MyTests.zip que vous chargerez sur Device Farm dans la procédure suivante.

Étape 2 : Charger votre package de test sur Device FarmUtilisez la console Device Farm pour charger vos tests.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Vous pouvez charger vos tests dans un projet existant ou choisir Create a new project (Créer un

projet).

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel charger vos tests.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

4. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.

Version de l'API 2015-06-23133

Page 143: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurTests intégrés

5. Sur la page Choose your application (Choisir votre application), choisissez application web ( ).

6. Dans le champ Run name (Nom d'exécution), entrez le nom de votre exécution.Tip

Donnez à votre exécution un nom vous permettant d'identifier facilement une build spécifiquede votre application (par exemple, Beta-0.1). Pour plus d'informations, consultez Utilisationdes exécutions de test (p. 23).

7. Pour configurer votre test, choisissez Appium Ruby.8. Pour ajouter vos scripts de test Appium à l'exécution de test, choisissez Upload (Charger).9. Choisissez le fichier MyTests.zip que vous avez créé dans la procédure précédente.10. Suivez les instructions pour sélectionner une spécification de test.

Si vous utilisez la spécification de test par défaut, modifiez la commande d'exécution de test dans lasection test du fichier YAML de spécification de test.

11. Choisissez les appareils et lancez l'exécution.

Pour plus d'informations, consultez Créer une exécution de test dans AWS Device Farm (p. 23).

Note

Device Farm ne modifie pas les tests Appium Ruby d'applications Web.

Utilisation de tests intégrés dans AWS Device FarmDevice Farm prend en charge des types de tests intégrés pour les appareils Android et iOS.

Types de tests intégrésLes tests intégrés vous permettent de tester vos applications sans écrire de scripts.

• Explorateur intégré (Android) (p. 134)• Fuzz intégré (Android et iOS) (p. 135)

Utilisation du test d'explorateur intégré pour DeviceFarmDevice Farm fournit un type de test d'explorateur intégré.

Version de l'API 2015-06-23134

Page 144: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurFuzz intégré (Android et iOS)

En quoi consiste le test d'explorateur intégré ?Le test d'explorateur intégré analyse chaque écran de votre application et interagit avec celle-ci commes'il était un utilisateur final. Il effectue des captures d'écran à mesure de son exploration, et vous pouvezfournir à Device Farm des informations d'identification afin que le test puisse se connecter.

Paramètres

• Username (Facultatif). Spécifie un nom d'utilisateur que l'explorateur doit utiliser s'il rencontre un écrande connexion dans votre application. Si aucun nom d'utilisateur n'est fourni, Device Farm n'en insèreaucun.

• Password (Facultatif). Spécifie un mot de passe que l'explorateur doit utiliser s'il rencontre un écran deconnexion dans votre application. Si aucun mot de passe n'est fourni, Device Farm n'en insère aucun.

Utiliser le type de test d'explorateur intégréUtilisez la console Device Farm pour exécuter le test d'explorateur intégré.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

exécuter le test d'explorateur intégré.Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel exécuter le test d'explorateur intégré.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).5. Recherchez et sélectionnez le fichier d'application dans lequel vous voulez exécuter le test

d'explorateur intégré.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez Built-in: Explorer (Explorateur intégré).8. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils et

lancer l'exécution.

Utilisation du test Fuzz intégré pour Device FarmDevice Farm fournit un type de test Fuzz intégré.

En quoi consiste le test Fuzz intégré ?Le test Fuzz intégré envoie de manière aléatoire des événements d'interface utilisateur aux appareils etfournit ensuite les résultats.

Utiliser le type de test Fuzz intégréUtilisez la console Device Farm pour exécuter le test Fuzz intégré.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Dans la liste des projets, choisissez l'option située en regard du projet dans lequel vous souhaitez

exécuter le test Fuzz intégré.

Version de l'API 2015-06-23135

Page 145: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurFuzz intégré (Android et iOS)

Tip

Si la liste des projets ne s'affiche pas, dans la barre de navigation secondaire, pour Projects(Projets), choisissez le nom du projet dans lequel exécuter le test Fuzz intégré.Pour créer un projet, suivez les instructions fournies dans Créer un projet dans AWS DeviceFarm (p. 20).

3. Si le bouton Create a new run (Créer une exécution) s'affiche, choisissez-le.4. Sur la page Choose your application (Choisir votre application), choisissez Upload (Charger).5. Recherchez et sélectionnez le fichier d'application dans lequel vous voulez exécuter le test Fuzz

intégré.6. Choisissez Next step (Étape suivante).7. Sur la page Configure a test (Configurer un test), choisissez Built-in: Fuzz (Fuzz intégré).8. Si l'un des paramètres suivants s'affiche, vous pouvez accepter les valeurs par défaut ou spécifier vos

propres valeurs :

• Event count (Nombre d'événements) : spécifiez un nombre compris entre 1 et 10 000, qui représentele nombre d'événements d'interface utilisateur que le test Fuzz doit effectuer.

• Event throttle (Limitation d'événement) : spécifiez un nombre compris entre 1 et 1 000, quireprésente le nombre de millisecondes pendant lequel le test Fuzz doit attendre avant de passer auprochain événement d'interface utilisateur.

• Randomizer Seed (Valeur initiale de générateur aléatoire) : spécifiez un nombre que le test Fuzz doitutiliser pour randomiser les événements d'interface utilisateur. Si vous spécifiez le même nombrepour les tests Fuzz suivants, les séquences d'événements seront identiques.

9. Choisissez Next step (Étape suivante), puis suivez les instructions pour sélectionner les appareils etlancer l'exécution.

Version de l'API 2015-06-23136

Page 146: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurSyntaxe de la spécification de test

Utilisation d'environnements de testpersonnalisés dans AWS DeviceFarm

En plus de fournir un environnement de test standard par défaut, AWS Device Farm vous permetégalement de configurer un environnement personnalisé pour vos tests automatisés. Pour plusd'informations, consultez Environnements de test (p. 14).

Vous pouvez installer et configurer votre environnement de test automatisé personnalisé avec un fichier despécification de test au format YAML. Device Farm fournit une spécification de test par défaut pour chaquetype de test pris en charge. Vous pouvez utiliser la spécification de test par défaut en l'état ou la modifiersi vous préférez. Si vous modifiez le fichier de spécification de test, vous pouvez l'enregistrer en vue defutures exécutions.

Pour en savoir plus, consultez Téléchargement d'une spécification de test personnalisée à l'aide del'interface de ligne de commande AWS CLI et Créer une exécution de test dans AWS Device Farm (p. 23).

Rubriques• Syntaxe de la spécification de test (p. 137)• Exemple de spécification de test (p. 139)• Variables d'environnement (p. 140)• Migration des tests d'un environnement de test standard vers un environnement de test

personnalisé (p. 143)

Syntaxe de la spécification de testVoici la structure du fichier de spécification de test YAML :

version: 0.1

phases: install: commands: - command - command pre_test: commands: - command - command test: commands: - command - command post_test: commands: - command - command

Version de l'API 2015-06-23137

Page 147: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurSyntaxe de la spécification de test

artifacts: - location - location

La spécification de test contient les éléments suivants :

version

Reflète la version de spécification de test prise en charge par Device Farm. Le numéro de versionactuel est 0.1.

phases

Cette section contient les groupes de commandes exécutés au cours d'un test.

Les noms de phase de test autorisés sont :install

Facultatif.

Les dépendances par défaut des frameworks de test pris en charge par Device Farm sont déjàinstallées. Cette phase contient des commandes supplémentaires, le cas échéant, que DeviceFarm exécute au cours de l'installation.

pre_test

Facultatif.

Éventuelles commandes qui sont exécutées avant votre test automatisé.test

Facultatif.

Commandes qui sont exécutées pendant votre test automatisé. Si une commande de la phase detest échoue, le test est marqué comme ayant échoué.

post_test

Facultatif.

Éventuelles commandes qui sont exécutées après votre test automatisé.artifacts

Facultatif.

Device Farm collecte des artefacts tels que des rapports personnalisés, des fichiers journaux et desimages à partir de l'emplacement indiqué ici. Les caractères génériques ne sont pas pris en chargedans le cadre d'un emplacement d'artefact. Par conséquent, vous devez spécifier un chemin d'accèsvalide pour chaque emplacement.

Ces artefacts de test sont disponibles pour chaque appareil de votre test. Pour plus d'informations surla récupération de vos artefacts de test, consultez Utilisation des artefacts dans un environnement detest personnalisé (p. 52).

Important

Une spécification de test doit être mise en forme comme un fichier YAML valide. Si la miseen retrait ou l'espacement ne sont pas valides dans votre spécification de test, votre test peut

Version de l'API 2015-06-23138

Page 148: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemple de spécification de test

échouer. Les tabulations ne sont pas autorisées dans les fichiers YAML. Vous pouvez utiliser unvalidateur YAML pour vérifier si votre spécification de test est un fichier YAML valide. Pour plusd'informations, consultez le site web YAML.

Exemple de spécification de testVoici un exemple de spécification de test YAML Device Farm qui configure un test TestNG Appium Java :

version: 0.1

# Phases are a collection of commands that get executed on Device Farm.phases: # The install phase includes commands that install dependencies that your tests use. # Default dependencies for testing frameworks supported on Device Farm are already installed. install: commands: # By default, Appium server version used is 1.7.2. # You can switch to an alternate supported version from 1.6.5, 1.7.1, 1.7.2, 1.8.0 or 1.8.1 by using a command like "avm 1.7.1" # OR # To install a newer version of Appium use the following commands: # - export APPIUM_VERSION=1.8.1 # - avm $APPIUM_VERSION # - ln -s /usr/local/avm/versions/$APPIUM_VERSION/node_modules/.bin/appium /usr/local/avm/versions/$APPIUM_VERSION/node_modules/appium/bin/appium.js

# The pre-test phase includes commands that setup your test environment. pre_test: commands: # Setup environment variables for java - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TESTNG_JAR - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TEST_PACKAGE_PATH/* - export CLASSPATH=$CLASSPATH:$DEVICEFARM_TEST_PACKAGE_PATH/dependency-jars/* # We recommend starting appium server process in the background using the command below. # Appium server log will go to $DEVICEFARM_LOG_DIR directory. # The environment variables below will be auto-populated during run time. - echo "Start appium server" - >- appium --log-timestamp --device-name $DEVICEFARM_DEVICE_NAME --platform-name $DEVICEFARM_DEVICE_PLATFORM_NAME --app $DEVICEFARM_APP_PATH --udid $DEVICEFARM_DEVICE_UDID --chromedriver-executable $DEVICEFARM_CHROMEDRIVER_EXECUTABLE >> $DEVICEFARM_LOG_DIR/appiumlog.txt 2>&1 &

- >- start_appium_timeout=0; while [ true ]; do if [ $start_appium_timeout -gt 30 ]; then echo "appium server never started in 30 seconds. Exiting"; exit 1; fi; grep -i "Appium REST http interface listener started on 0.0.0.0:4723" $DEVICEFARM_LOG_DIR/appiumlog.txt >> /dev/null 2>&1; if [ $? -eq 0 ]; then echo "Appium REST http interface listener started on 0.0.0.0:4723"; break; else echo "Waiting for appium server to start. Sleeping for 1 second";

Version de l'API 2015-06-23139

Page 149: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurVariables d'environnement

sleep 1; start_appium_timeout=$((start_appium_timeout+1)); fi; done;

# The test phase includes commands that start your test suite execution. test: commands: # Your test package is downloaded in $DEVICEFARM_TEST_PACKAGE_PATH so we first change directory to that path. - echo "Navigate to test package directory" - cd $DEVICEFARM_TEST_PACKAGE_PATH

# By default, the following command is used by Device Farm to run your Appium TestNG test. # The goal is to run to your tests jar file with all the dependencies jars in the CLASSPATH. # Alternatively, You may specify your customized command. # Note: For most use cases, the default command works fine. # Please refer "http://testng.org/doc/documentation-main.html#running-testng" for more options on running TestNG tests from the command line. - echo "Start Appium TestNG test" - java -Dappium.screenshots.dir=$DEVICEFARM_SCREENSHOT_PATH org.testng.TestNG -testjar *-tests.jar -d $DEVICEFARM_LOG_DIR/test-output -verbose 10

# To run your tests with testng.xml file, use the following sequence: # Note: you don't have to unzip your test jar unless you have xml file with custom name # 1. Your testng.xml is inside the test jar after packaging step. Unzip it using commands: # - echo "Unzipping TestNG tests jar" # - unzip *-tests.jar # 2. Run your TestSuite by specifying the unzipped testng.xml using commands: # - echo "Start Appium TestNG test" # - java org.testng.TestNG -d $DEVICEFARM_LOG_DIR/test-output testng.xml

# The post test phase includes are commands that are run after your tests are executed. post_test: commands:

# The artifacts phase lets you specify the location where your tests logs, device logs will be stored.# And also let you specify the location of your test logs and artifacts which you want to be collected by Device Farm.# These logs and artifacts will be available through ListArtifacts API in Device Farm.artifacts: # By default, Device Farm will collect your artifacts from following directories - $DEVICEFARM_LOG_DIR

Variables d'environnementLes variables d'environnement représentent les valeurs qui sont utilisées par vos tests automatisés. Vouspouvez utiliser ces variables d'environnement dans vos fichiers YAML et votre code de test. Dans unenvironnement de test, Device Farm renseigne dynamiquement les variables d'environnement au momentde l'exécution.

Rubriques• Variables d'environnement courantes (p. 141)• Variables d'environnement Appium Java JUnit (p. 142)• Variables d'environnement Appium Java TestNG (p. 142)

Version de l'API 2015-06-23140

Page 150: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurVariables d'environnement courantes

• Variables d'environnement XCUITest (p. 142)

Variables d'environnement courantesTests AndroidCette section décrit les variables d'environnement personnalisées courantes pour les tests de la plateformeAndroid pris en charge par Device Farm.

$DEVICEFARM_DEVICE_NAME

Nom de l'appareil sur lequel vous exécutez les tests. Il représente l'identifiant unique (UDID) del'appareil.

$DEVICEFARM_DEVICE_PLATFORM_NAME

Nom de la plateforme de l'appareil. Il s'agit d'Android ou d'iOS.$DEVICEFARM_APP_PATH

Chemin de l'application mobile sur la machine hôte où les tests sont en cours d'exécution. Le cheminde l'application est disponible uniquement pour les applications mobiles.

$DEVICEFARM_DEVICE_UDID

Identifiant unique de l'appareil mobile qui exécute le test automatisé.$DEVICEFARM_LOG_DIR

Chemin des fichiers journaux générés au cours du test.$DEVICEFARM_SCREENSHOT_PATH

Chemin des captures d'écran, le cas échéant, capturées au cours du test.$DEVICEFARM_CHROMEDRIVER_EXECUTABLE

Version du navigateur Chrome.$DEVICEFARM_TEST_PACKAGE_NAME

Nom du package testé (par exemple, com.example.myapp).

Note

Cette option est uniquement disponible lors de l'utilisation de tests d'instrumentation natifsAndroid. Pour plus d'informations, consultez Utilisation d'Instrumentation pour Android et AWSDevice Farm (p. 81).

Tests iOSCette section décrit les variables d'environnement personnalisées courantes pour les tests de la plateformeiOS pris en charge par Device Farm.

$DEVICEFARM_DEVICE_NAME

Nom de l'appareil sur lequel vous exécutez les tests. Il représente l'identifiant unique (UDID) del'appareil.

$DEVICEFARM_DEVICE_PLATFORM_NAME

Nom de la plateforme de l'appareil. Il s'agit d'Android ou d'iOS.

Version de l'API 2015-06-23141

Page 151: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurVariables d'environnement Appium Java JUnit

$DEVICEFARM_APP_PATH

Chemin de l'application mobile sur la machine hôte où les tests sont en cours d'exécution. Le cheminde l'application est disponible uniquement pour les applications mobiles.

$DEVICEFARM_DEVICE_UDID

Identifiant unique de l'appareil mobile qui exécute le test automatisé.$DEVICEFARM_LOG_DIR

Chemin des fichiers journaux générés au cours du test.$DEVICEFARM_SCREENSHOT_PATH

Chemin des captures d'écran, le cas échéant, capturées au cours du test.

Variables d'environnement Appium Java JUnitCette section décrit les variables d'environnement utilisées par les tests Appium Java JUnit dans unenvironnement de test personnalisé.

$DEVICEFARM_TESTNG_JAR

Chemin du fichier TestNG.jar.$DEVICEFARM_TEST_PACKAGE_PATH

Chemin du contenu décompressé du fichier du package de test.

Variables d'environnement Appium Java TestNGCette section décrit les variables d'environnement utilisées par les tests Appium Java TestNG dans unenvironnement de test personnalisé.

$DEVICEFARM_TESTNG_JAR

Chemin du fichier TestNG.jar.$DEVICEFARM_TEST_PACKAGE_PATH

Chemin du contenu décompressé du fichier du package de test.

Variables d'environnement XCUITest$DEVICEFARM_XCUITESTRUN_FILE

Chemin du fichier Device Farm .xctestun. Il est généré à partir de vos packages d'application et detest.

$DEVICEFARM_DERIVED_DATA_PATH

Chemin attendu de sortie de xcodebuild Device Farm.

Version de l'API 2015-06-23142

Page 152: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurMigration des tests

Migration des tests d'un environnement detest standard vers un environnement de testpersonnalisé

L'exécution d'un test dans un environnement personnalisé nécessite que toutes les informations utiliséeslors du test soient incluses dans votre fichier YAML de spécification de test ou dans votre code de test.Voici quelques éléments à prendre en compte lorsque vous déplacez un test vers un environnementpersonnalisé.

Framework AppiumDans un environnement de test personnalisé, Device Farm n'insère ni ne remplace aucune fonctionnalitéAppium dans vos tests de framework Appium. Vous devez spécifier les fonctionnalités Appium de votre testdans le fichier YAML de spécification de test ou dans votre code de test.

Instrumentation AndroidVous n'avez pas besoin d'effectuer de modifications pour déplacer vos tests d'instrumentation Android versun environnement de test personnalisé.

XCUITest iOSVous n'avez pas besoin d'effectuer de modifications pour déplacer vos tests XCUITest iOS vers unenvironnement de test personnalisé.

Version de l'API 2015-06-23143

Page 153: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une session

Utilisation de l'accès à distance dansAWS Device Farm

L'accès à distance vous permet de balayer, d'appuyer et d'interagir avec un appareil par le biais de votrenavigateur Web en temps réel afin de tester les fonctionnalités et de reproduire les problèmes des clients.Vous interagissez avec un appareil spécifique en créant une session d'accès à distance avec celui-ci.

Une session dans Device Farm est une interaction en temps réel avec un appareil physique réel hébergédans un navigateur web. Une session affiche l'appareil que vous sélectionnez au démarrage de la session.Un utilisateur peut démarrer plusieurs sessions à la fois, le nombre total d'appareils simultanés étant limitépar le nombre d'emplacements d'appareils dont vous disposez. Vous pouvez acheter des emplacementsd'appareils en fonction du type d'appareil (appareils Android ou iOS). Pour de plus amples informations,veuillez consulter Tarification Device Farm.

Device Farm propose actuellement un sous-ensemble d'appareils pour tester l'accès à distance. Denouveaux appareils sont constamment ajoutés à ce groupe d'appareils.

Device Farm enregistre des vidéos de chaque session d'accès à distance et génère des journaux d'activitéau cours de la session. Ces résultats incluent toutes les informations que vous fournissez au cours d'unesession.

Note

Pour des raisons de sécurité, nous vous recommandons d'éviter de fournir ou de saisir desinformations sensibles, telles que des numéros de compte, des informations de connexionpersonnelles et autres détails, pendant une session d'accès à distance.

Rubriques• Créer une session d'accès à distance dans AWS Device Farm (p. 144)• Utiliser une session d'accès à distance dans AWS Device Farm (p. 145)• Obtenir les résultats d'une session d'accès à distance dans AWS Device Farm (p. 147)

Créer une session d'accès à distance dans AWSDevice Farm

Pour plus d'informations sur les sessions d'accès à distance, consultez Sessions (p. 18).

• Prérequis (p. 144)• Créer une exécution de test (console) (p. 145)• Étapes suivantes (p. 145)

Prérequis• Créer un projet dans Device Farm. Suivez les instructions fournies dans Créer un projet dans AWS

Device Farm (p. 20), puis revenez à cette page.

Version de l'API 2015-06-23144

Page 154: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréation d'une session à l'aide de la console Device Farm

Création d'une session à l'aide de la console DeviceFarm1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. Si vous voyez la page d'accueil de la console AWS Device Farm, choisissez Get started (Mise en

route).3. Choisissez un projet dans la liste Projects (Projets) ou choisissez Create a new project (Créer un

projet).4. Sous l'onglet Remote access (Accès à distance), choisissez Start a new session (Démarrer une

nouvelle session).5. Choisissez un appareil pour votre session. Vous pouvez choisir dans la liste des appareils disponibles

ou rechercher un appareil en utilisant les champs situés en haut de la liste. Vous pouvez effectuer unerecherche par :

• Nom• Plateforme• Système d'exploitation• Format

6. Dans Session name (Nom de session), entrez le nom de la session.7. Choisissez Confirm and start session (Confirmer et démarrer la session).

Étapes suivantesDevice Farm démarre la session dès que l'appareil demandé est disponible, en général au bout dequelques minutes. La boîte de dialogue Device requested (Appareil demandé) s'affiche jusqu'à ce quela session commence. Pour annuler la demande de session, choisissez Cancel request (Annuler lademande).

Après le démarrage d'une session, si vous fermez le navigateur ou l'onglet du navigateur sans arrêterla session, ou si la connexion entre le navigateur et Internet est perdue, la session reste active pendantcinq minutes. Après ce délai, Device Farm met fin à la session. Votre compte est facturé pour le tempsd'inactivité.

Après le démarrage de la session, vous pouvez interagir avec l'appareil dans le navigateur Web.

Utiliser une session d'accès à distance dans AWSDevice Farm

Pour de plus amples informations sur l'exécution des tests interactifs sur des applications Android et iOSgrâce à des sessions d'accès à distance, veuillez consulter Sessions (p. 18).

• Prérequis (p. 146)• Utiliser une session dans la console Device Farm (p. 146)• Étapes suivantes (p. 146)• Trucs et astuces (p. 146)

Version de l'API 2015-06-23145

Page 155: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPrérequis

Prérequis• Créez une session. Suivez les instructions fournies dans Créer une session (p. 144), puis revenez à

cette page.

Utiliser une session dans la console Device FarmDès que l'appareil que vous avez demandé pour une session d'accès à distance devient disponible, laconsole affiche son écran. La durée maximale de la session est de 150 minutes. Le temps restant dans lasession s'affiche sous la barre de menu située à droite de la console.

Installation d'une applicationPour installer une application sur l'appareil de la session, dans Install applications (Installer desapplications), choisissez Upload (Charger), puis choisissez le fichier .apk (Android) ou le fichier .ipa (iOS)que vous souhaitez installer. Les applications que vous exécutez lors d'une session d'accès à distance nenécessitent aucune instrumentation de test, ni aucune mise en service.

Note

AWS Device Farm n'affiche pas de confirmation après l'installation d'une application. Essayezd'interagir avec l'icône de l'application pour voir si l'application est prête à l'emploi.Lorsque vous chargez une application, l'application devient parfois disponible après un certaindélai. Consultez la barre d'état système pour déterminer si l'application est disponible.

Contrôle de l'appareilVous pouvez interagir avec l'appareil affiché dans la console comme vous le feriez avec l'appareil physiqueréel, en utilisant votre souris ou tout autre appareil équivalent pour la fonction tactile et le clavier à l'écrande l'appareil. Pour les appareils Android, il y a des boutons View controls (Commandes d'affichage) quifonctionnent de la même manière que les boutons Accueil et Retour sur un appareil Android. Pour lesappareils iOS, il existe un bouton Home (Accueil) qui fonctionne comme le bouton d'accueil sur un appareiliOS. Vous pouvez également basculer entre les applications s'exécutant sur l'appareil en choisissantRecent apps (Applications récentes).

Basculement entre le mode portrait et le mode paysageVous pouvez également basculer entre le mode portrait (vertical) et le mode paysage (horizontal) pour lesappareils que vous utilisez.

Étapes suivantesDevice Farm poursuit la session jusqu'à ce que vous l'arrêtiez manuellement ou jusqu'à ce que la limitede temps de 150 minutes soit atteinte. Pour mettre fin à la session, choisissez Stop session (Arrêter lasession). Lorsque la session s'arrête, vous pouvez accéder à la vidéo qui a été capturée et aux journauxqui ont été générés. Pour plus d'informations, consultez Obtenir les résultats d'une session (p. 147).

Trucs et astucesIl est possible que vous soyez confronté à des problèmes de performances avec la session d'accès àdistance dans certaines régions AWS. Cela est dû en partie à la latence dans certaines régions. Si vousrencontrez des problèmes de performances, laissez à la session d'accès à distance la possibilité derattraper son retard avant d'interagir à nouveau avec l'application.

Version de l'API 2015-06-23146

Page 156: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurObtenir les résultats d'une session

Obtenir les résultats d'une session d'accès àdistance dans AWS Device Farm

Pour plus d'informations sur les sessions, consultez Sessions (p. 18).

• Prérequis (p. 147)• Affichage des détails de la session (p. 147)• Téléchargement de vidéos ou de journaux de la session (p. 147)

Prérequis• Terminez une session. Suivez les instructions fournies dans Utiliser une session d'accès à distance dans

AWS Device Farm (p. 145), puis revenez à cette page.

Affichage des détails de la sessionLorsqu'une session d'accès à distance se termine, la console Device Farm affiche un tableau contenantdes informations sur l'activité qui a eu lieu pendant la session. Pour plus d'informations, consultez la sectionrelative à l'analyse des informations de journal (p. 48).

Pour revenir ultérieurement aux informations d'une session :

1. À partir de la liste déroulante Project (Projet), choisissez le projet que vous souhaitez revoir.2. Choisissez la session que vous voulez revoir dans la liste. Sinon, à partir de la liste déroulante Runs

& sessions (Exécutions et sessions), choisissez View all sessions (Afficher toutes les sessions), puischoisissez la session.

Téléchargement de vidéos ou de journaux de lasessionLorsqu'une session d'accès à distance se termine, la console Device Farm fournit l'accès à une capturevidéo de la session et à des journaux d'activité. Dans les résultats de la session, choisissez l'ongletFiles (Fichiers) pour obtenir une liste de liens vers les vidéos et les journaux de la session. Vous pouvezconsulter ces fichiers dans le navigateur ou les enregistrer localement.

Version de l'API 2015-06-23147

Page 157: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurGestion des appareils privés

Utilisation des appareils privés dansAWS Device Farm

Un appareil privé est un appareil mobile physique déployé par AWS Device Farm en votre nom dans uncentre de données Amazon. Cet appareil est propre à votre compte AWS.

Note

Actuellement, les appareils privés sont uniquement disponibles dans la région AWS Région USAOuest (Oregon) (us-west-2). Si vous souhaitez utiliser un parc d'un ou de plusieurs appareilsprivés, contactez-nous. L'équipe Device Farm doit travailler avec vous pour configurer et déployerun parc d'un ou de plusieurs appareils privés pour votre compte AWS.

Si vous disposez d’un parc d’appareils privés, vous pouvez créer des sessions d'accès à distance etplanifier des exécutions de test avec vos appareils privés. Vous pouvez également créer des profilsd'instance pour contrôler le comportement de vos appareils privés lors d'une session d'accès à distance oud’une série de tests. Pour plus d'informations, consultez Gestion des appareils privés dans AWS DeviceFarm (p. 148).

Vous pouvez également créer un service de point de terminaison Amazon Virtual Private Cloud pour testerles applications privées auxquelles votre entreprise a accès, mais qui ne sont pas accessibles via Internet.Par exemple, vous pouvez avoir une application web s'exécutant dans votre VPC que vous souhaiteztester sur les appareils mobiles. Pour plus d'informations, consultez Utilisation des services de points determinaison Amazon Virtual Private Cloud avec AWS Device Farm (p. 159).

Rubriques• Gestion des appareils privés dans AWS Device Farm (p. 148)• Ignorer la resignature d'applications sur les appareils privés dans AWS Device Farm (p. 155)• Utilisation des services de points de terminaison Amazon Virtual Private Cloud avec AWS Device

Farm (p. 159)• Utilisation d'Amazon Virtual Private Cloud entre régions (p. 162)

Gestion des appareils privés dans AWS DeviceFarm

Un appareil privé est un appareil mobile physique déployé par AWS Device Farm en votre nom dans uncentre de données Amazon. Cet appareil est propre à votre compte AWS.

Note

Actuellement, les appareils privés sont uniquement disponibles dans les régions AWS RégionUSA Ouest (Oregon) (us-west-2).

Vous pouvez configurer un parc qui contient un ou plusieurs appareils privés. Ces appareils sont dédiésà votre compte AWS. Une fois que vous avez configuré les appareils, vous pouvez, le cas échéant, créerun ou plusieurs profils d'instances pour eux. Les profils d'instances peuvent vous aider à automatiser lesséries de tests et toujours appliquer les mêmes paramètres aux instances d’appareils.

Cette rubrique explique comment créer un profil d'instance et effectuer d'autres tâches courantes degestion des appareils.

Version de l'API 2015-06-23148

Page 158: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un profil d’instance

Rubriques• Création d'un profil d'instance (p. 149)• Gestion d'une instance d'appareil privé (p. 150)• Créer une série de tests ou démarrer une session d'accès à distance (p. 151)• Créer un groupe d'appareils privés (p. 152)• Étapes suivantes (p. 154)

Création d'un profil d'instancePour contrôler le comportement des appareils privés lors d’une série de tests ou d’une session d’accès àdistance, vous pouvez créer ou modifier un profil d'instance dans Device Farm. Vous n'avez pas besoind'un profil d'instance pour commencer à utiliser vos appareils privés.

1. Ouvrez la console Device Farm à l’adresse https://console.aws.amazon.com/devicefarm/.2. Choisissez Device Farm settings (Paramètres Device Farm).3. Choisissez Instance profiles (Profils d'instance).4. Choisissez Create a new instance profile (Créer un profil d'instance).5. Saisissez le nom du profil d’instance.

6. (Facultatif) Entrez une description pour le profil d’instance.7. (Facultatif) Modifiez, le cas échéant, les paramètres suivants pour spécifier les actions que vous

souhaitez queDevice Farm effectue sur un appareil après chaque exécution de test ou session :

• Reboot after Use (Redémarrer après utilisation) – Pour redémarrer l’appareil, cochez cette case. Pardéfaut, cette case est décochée (false).

• Package Cleanup (Nettoyage de package) – Pour supprimer tous les packages d'applications quevous avez installés sur l’appareil, cochez cette case. Par défaut, cette case est décochée (false).Pour conserver toutes les packages d'applications que vous avez installés sur l'appareil, laissezcette case décochée.

Version de l'API 2015-06-23149

Page 159: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurGérer une instance d'appareil privé

• Exclude Packages from Cleanup (Exclure les packages du nettoyage – pour conserver uniquementles packages d’applications sélectionnés sur l’appareil, cochez la case Package Cleanup (Nettoyagede package), puis choisissez Add new (Ajouter nouveau). Pour le nom du package, saisissez lenom complet du package d'applications que vous souhaitez conserver sur l’appareil (par exemple,com.test.example). Pour conserver plus de packages d'applications sur l’appareil, choisissezAdd new (Ajouter nouveau), puis saisissez le nom complet de chaque package.

Gestion d'une instance d'appareil privéSi vous avez déjà un ou plusieurs appareils privés dans votre parc, vous pouvez afficher des informationssur chaque instance d’appareil et en gérer certains paramètres. Vous pouvez également demander uneinstance d'appareil privé supplémentaire.

1. Ouvrez la console Device Farm à l’adresse https://console.aws.amazon.com/devicefarm/.2. Choisissez Device Farm settings (Paramètres Device Farm).3. Choisissez Device instances (Instances d’appareils). L’onglet Device Instances (Instances d’appareils)

affiche une table des appareils privés qui se trouvent dans votre parc. Pour rechercher ou filtrerrapidement la table, saisissez des termes de recherche dans les champs au-dessus des colonnes.

4. (Facultatif) Pour demander une nouvelle instance d'appareil privé, choisissez Request a new deviceinstance (Demander une nouvelle instance d’appareil) ou contactez-nous. Les appareils privésnécessitent une configuration supplémentaire avec l'aide de l'équipe Device Farm.

5. Dans la table des instances d’appareils, choisissez l'instance à propos de laquelle vous souhaitezafficher des informations ou que vous souhaitez gérer.

Version de l'API 2015-06-23150

Page 160: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une série de tests ou une session d'accès à distance

6. (Facultatif) Pour Profile (Profil), choisissez un profil d'instance à attacher à l'instance de l’appareil. Cecipeut être utile si vous souhaitez toujours exclure un package d'applications spécifique des tâches denettoyage, par exemple.

7. (Facultatif) Sous Étiquettes, choisissez Add new (Ajouter nouveau) pour ajouter une étiquette àl’instance d’appareil. Les étiquettes peuvent vous aider à classer vos appareils et trouver des appareilsspécifiques plus facilement.

8. Choisissez Save device instance (Enregistrer l'instance d'appareil).

Créer une série de tests ou démarrer une sessiond'accès à distanceUne fois que vous avez configuré un parc d'appareils privés, vous pouvez créer des séries de tests oudémarrer des sessions d'accès à distance avec un ou plusieurs appareils privés dans votre parc.

1. Ouvrez la console Device Farm à l’adresse https://console.aws.amazon.com/devicefarm/.2. Choisissez Create a new project (Créer un projet) ou ouvrez un projet existant. Si vous créez un

nouveau projet, saisissez un nom pour le projet, puis choisissez Create project (Créer un projet).

Version de l'API 2015-06-23151

Page 161: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un groupe d'appareils privés

3. Effectuez l'une des actions suivantes :

• Pour créer une série de tests, choisissez Automated tests (Tests automatisés), puis choisissezCreate a new run (Créer une exécution). L'assistant vous décrit la marche à suivre pour créerl'exécution. Pour l’étape Select devices (Sélectionner les appareils), vous pouvez modifier un grouped’appareils existant ou créer un nouveau groupe d’appareils incluant uniquement les appareils privésque l’équipe Device Farma configurés et associés à votre compte AWS. Pour plus d'informations,consultez the section called “Créer un groupe d'appareils privés” (p. 152).

• Pour démarrer une session d'accès à distance, choisissez Remote access (Accès à distance), puischoisissez Start a new session (Démarrer une nouvelle session). Sur la page Choose a device(Choisir un appareil), sélectionnez Private device instances only (Instances d’appareils privésuniquement) pour limiter la liste aux seuls appareils privés que l’équipe Device Farm a configuréset associés à votre compte AWS. Ensuite, choisissez l’appareil auquel vous souhaitez accéder,saisissez un nom pour la session d'accès à distance, puis choisissez Confirm and start session(Confirmer et démarrer la session).

Créer un groupe d'appareils privésLorsque vous créez une série de tests, vous pouvez créer un groupe d'appareils pour la série de tests etvous assurer que le groupe inclut uniquement vos appareils privés.

1. Ouvrez la console Device Farm à l’adresse https://console.aws.amazon.com/devicefarm/.2. Choisissez Create a new project (Créer un projet) ou ouvrez un projet existant. Si vous créez un

nouveau projet, saisissez un nom pour le projet, puis choisissez Create project (Créer un projet).3. Choisissez Automated tests (Tests automatisés), puis choisissez Create a new run (Créer une

exécution). L'assistant vous décrit la marche à suivre pour choisir votre application et configurer le testque vous souhaitez exécuter.

4. Pour l’étape Select devices (Sélectionner les appareils), choisissez Create a new device pool (Créerun groupe d’appareils), puis saisissez un nom et une description éventuelle pour votre grouped’appareils.

5. En regard de Select devices (Sélectionner les appareils), sélectionnez Private Device Instances Only(Instances d’appareils privés uniquement) pour limiter la liste des appareils aux seuls appareils privésque l'équipe Device Farm a créés et associés à votre compte AWS.

Version de l'API 2015-06-23152

Page 162: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer un groupe d'appareils privés

6. Sélectionnez chaque appareil que vous souhaitez inclure dans la série de tests.7. (Facultatif) Pour créer un groupe d'appareils qui change de manière dynamique à mesure que de

nouveaux appareils sont disponibles, choisissez Ajouter une règle, puis définissez les valeurs pourChamp, Opérateur et Opérande en fonction de vos besoins.

Version de l'API 2015-06-23153

Page 163: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtapes suivantes

Device Farm sélectionne toutes les instances d'appareils où le critère de règle est true.8. Choisissez Save device pool (Enregistrer le groupe d'appareils).

Étapes suivantesUne fois que vous avez configuré vos appareils privés, vous pouvez également gérer vos appareils privésen procédant de l'une des manières suivantes :

• Ignorer la resignature d'application sur les appareils privés (p. 155)• Utiliser les services de point de terminaison de Amazon Virtual Private Cloud avec Device

Farm (p. 159)

Pour supprimer un profil d’instance, utilisez la page Account settings (Paramètres du compte) ou Projectsettings (Paramètres du projet) sur la console Device Farm.

Version de l'API 2015-06-23154

Page 164: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIgnorer la resignature d’applications

Ignorer la resignature d'applications sur lesappareils privés dans AWS Device Farm

Lorsque vous utilisez des appareils privés, vous pouvez ignorer l'étape où AWS Device Farm resigne votreapplication. Le cas est différent des appareils publics, où Device Farm resigne toujours votre application surles plateformes iOS et Android.

Vous pouvez ignorer la resignature d’applications lorsque vous créez une session d'accès à distance ouune série de tests. Ceci peut être utile si votre application présente des fonctionnalités qui s’interrompentlorsque Device Farm resigne votre application. Par exemple, les notifications push peuvent ne pasfonctionner après la resignature. Pour plus d'informations sur les modifications qu'effectue Device Farm lorsdu test de votre application, consultez FAQ AWS Device Farm.

Pour ignorer la resignature des applications pour une série de tests, sélectionnez Skip app re-signing(Ignorer la resignature d’application) sur la page Configurer lorsque vous créez la série de tests.

Version de l'API 2015-06-23155

Page 165: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIgnorer la resignature d’applications

Note

Si vous utilisez l’infrastructure XCTest, l'option Skip app re-signing (Ignorer la resignatured'application) n'est pas disponible. Pour plus d'informations, consultez Utiliser XCTest pour iOS etAWS Device Farm (p. 109).

Les étapes complémentaires pour la configuration des paramètres de signature de vos applications varientselon que vous utilisiez des appareils privés Android ou iOS.

Version de l'API 2015-06-23156

Page 166: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIgnorer la resignature d'applications

sur les appareils Android

Ignorer la resignature d'applications sur les appareilsAndroidSi vous testez votre application sur un appareil privé Android, sélectionnez Skip app re-signing (Ignorer laresignature d'application) lorsque vous créez votre exécution de test ou votre session d'accès à distance.Aucune autre configuration n'est requise.

Ignorer la resignature d'applications sur les appareilsiOSApple exige que vous signiez une application à tester avant de charger celle-ci sur un appareil. Pour lesappareils iOS, vous avez deux options pour signer votre application.

• Si vous utilisez un profil de développeur interne (entreprise), vous pouvez passer directement à lasection suivante, the section called “Créer une session d'accès à distance pour approuver votreapplication” (p. 157).

• Si vous utilisez un profil de développement d’applications iOS ad hoc, vous devez d'abord enregistrerl'appareil avec votre compte développeur Apple, puis mettre à jour votre profil de mise en service pourinclure l'appareil privé. Vous devez ensuite resigner votre application avec le profil de mise en serviceque vous avez mis à jour. Vous pouvez ensuite exécuter votre application resignée dans Device Farm.

Pour enregistrer un appareil avec un profil de développement d’applications iOS ad hoc

1. Connectez-vous à votre compte développeur Apple.2. Accédez à la section Certificats, ID et profils de la console.3. Accédez à Appareils.4. Enregistrez l'appareil dans votre compte développeur Apple. Pour obtenir le nom et l’UDID de

l’appareil, ouvrez la console Device Farm et accédez à l’onglet Device instances (Instancesd’appareils) de la page Project settings (Paramètres du projet) ou utilisez l’opérationListDeviceInstances de l’API Device Farm.

5. Accédez à votre profil de mise en service et choisissez Edit (Modifier).6. Sélectionnez l'appareil dans la liste.7. Dans XCode, récupérez votre profil de mise en service mis à jour, puis resignez l'application.

Aucune autre configuration n'est requise. Vous pouvez maintenant créer une session d'accès à distance ouune exécution de test, et sélectionner Skip app re-signing (Ignorer la resignature d'application).

Créer une session d'accès à distance pour approuvervotre application iOSSi vous utilisez un profil de mise en service de développeur interne (entreprise), vous devez exécuter uneprocédure unique pour approuver le certificat du développeur d'applications interne sur chacun de vosappareils privés.

Pour ce faire, vous pouvez installer l'application que vous souhaitez tester sur l'appareil privé, ou vouspouvez installer une application factice signée avec le même certificat que l'application que vous souhaiteztester. L’installation d'une application factice signée avec le même certificat présente un avantage.En effet, une fois que vous avez approuvé le profil de configuration ou le développeur d'applications

Version de l'API 2015-06-23157

Page 167: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCréer une session d'accès à distance

pour approuver votre application

d'entreprise, toutes les applications de ce développeur sont approuvées sur l'appareil privé jusqu'à ceque vous les supprimiez. Par conséquent, lorsque vous chargez une nouvelle version de l'application quevous souhaitez tester, vous n'avez pas à approuver à nouveau le développeur d'applications. Cela estparticulièrement utile si vous exécutez des automatisation de test et que vous ne souhaitez pas créer unesession d'accès à distance chaque fois que vous testez votre application.

Avant de démarrer votre session d'accès à distance, suivez les étapes de Création d'un profild'instance (p. 149) pour créer ou modifier un profil d'instance dans Device Farm. Dans le profil d'instance,ajoutez l'ID de groupe de l'application test ou de l’application factice dans le paramètre Exclude Packagesfrom Cleanup (Exclure les packages du nettoyage). Ensuite, attachez ce profil d'instance à l'instanced'appareil privé pour vous assurer que Device Farm ne supprimera pas cette application de l'appareil avantde démarrer une nouvelle exécution de test. Cela permet de garantir que votre certificat de développeurreste approuvé.

Vous pouvez charger l'application factice sur l'appareil à l'aide d'une session d'accès à distance, ce quivous permet de lancer l'application et d'approuver le développeur.

1. Suivez les instructions de Créer une session (p. 144) pour créer une session d'accès à distance àl'aide du profil d'instance d'appareil privé que vous venez de créer. Lorsque vous créez votre session,veillez à sélectionner Skip app re-signing (Ignorer la resignature d'application).

Important

Pour filtrer la liste des appareils afin d’inclure uniquement les appareils privés, sélectionnezPrivate device instances only (Instances d’appareils privés uniquement) pour vous assurerque vous utilisez un appareil privé avec le profil d'instance correct.

Veillez également à ajouter l'application factice ou l'application que vous souhaitez tester dansle paramètre Exclude Packages from Cleanup (Exclure les packages du nettoyage) pour le profild'instance attaché à cette instance.

2. Lorsque votre session à distance démarre, choisissez Upload (Charger) pour installer une applicationqui utilise votre profil de mise en service interne.

3. Lancez l'application que vous venez de charger.4. Suivez les instructions pour approuver le certificat de développeur.

Toutes les applications de ce profil de configuration ou du développeur d'applications d'entreprise sontmaintenant approuvées sur cet appareil privé jusqu'à ce que vous les supprimiez.

Version de l'API 2015-06-23158

Page 168: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation des services de points de terminaison de VPC

Utilisation des services de points de terminaisonAmazon Virtual Private Cloud avec AWS DeviceFarm

Si vous utilisez Amazon Virtual Private Cloud (Amazon VPC) pour héberger des applications privéesdans le AWS Région USA Ouest (Oregon) (us-west-2), vous pouvez établir une connexion privée entrevotre VPC et AWS Device Farm. Avec cette connexion, vous pouvez utiliser Device Farm pour tester lesapplications privées sans les exposer via l'Internet public. Pour activer votre compte AWS pour utiliser cettefonctionnalité avec les appareils privés, contactez-nous.

Amazon VPC est un service AWS que vous pouvez utiliser pour lancer des ressources AWS dans unréseau virtuel que vous définissez. Avec un VPC, vous contrôlez les paramètres de votre réseau, tels quela plage d'adresses IP, les sous-réseaux, les tables de routage et les passerelles réseau. Pour connecterune ressource de votre VPC à Device Farm, vous pouvez utiliser la console Amazon VPC pour créer unservice de point de terminaison d'un VPC. Ce service de point de terminaison vous permet de fournir laressource de votre VPC à Device Farm, via un point de terminaison de VPC Device Farm. Le service depoint de terminaison assure une connectivité scalable et fiable à Device Farm sans qu'une passerelleInternet, une instance NAT (Network Address Translation) ou une connexion VPN ne soit nécessaire. Pourplus d’informations, consultez Services de points de terminaison de VPC dans le Amazon VPC Guide del'utilisateur.

Important

La fonctionnalité de point de terminaison de VPC de Device Farm vous permet de connecteren toute sécurité des services internes privés dans votre VPC au VPC public Device Farmà l'aide des connexions PrivateLink AWS. Bien que la connexion soit sécurisée et privée, lasécurité dépend de votre protection de vos informations d’identification AWS. Si vos informationsd'identification AWS sont compromises, un pirate informatique peut accéder aux données de vosservices ou les divulguer au monde extérieur.

Une fois que vous avez créé un service de point de terminaison de VPC (VPCE) dans Amazon VPC,vous pouvez utiliser la console Device Farm pour créer une configuration VPCE dans Device Farm. Cetterubrique vous montre comment créer la connexion Amazon VPC et la configuration VPCE dans DeviceFarm.

Avant de commencerLes informations suivantes sont destinées aux utilisateurs de Amazon VPC dans la région AWS USA Ouest(Oregon), avec un sous-réseau dans chacune des zones de disponibilité suivantes : us-west-2a, us-west-2b et us-west-2c.

Device Farm a des exigences supplémentaires concernant les services de point de terminaison de VPCavec lesquels il peut être utilisé. Lorsque vous créez et configurez un service de point de terminaisonde VPC à utiliser avec Device Farm, assurez-vous que vous choisissez les options qui répondent auxexigences suivantes :

• Les zones de disponibilité pour le service doivent inclure us-west-2a, us-west-2b et us-west-2c. Leszones de disponibilité pour un service de point de terminaison de VPC sont déterminées par l'équilibreurde charge réseau associé au service de point de terminaison. Si votre service de point de terminaisonde VPC ne montre pas ces trois zones de disponibilité, vous devez recréer votre équilibreur de chargeréseau pour activer ces trois zones, puis réassocier l'équilibreur de charge réseau avec votre service depoint de terminaison.

• La liste blanche des mandataires pour le service de point de terminaison doit inclure l'ARN (AmazonResource Name) du point de terminaison de VPC Device Farm (ARN du service). Une fois que vous

Version de l'API 2015-06-23159

Page 169: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 1 : Créer un service de point de terminaison de VPC

avez créé votre service de point de terminaison, ajoutez l’ARN du service de point de terminaison VPCDevice Farm à votre liste blanche pour donner à Device Farm l’autorisation d'accéder à votre service depoint de terminaison de VPC. Pour obtenir l'ARN du service de point de terminaison VPC Device Farm,contactez-nous.

De plus, si le paramètre Require acceptance for endpoint (Demander l’acceptation pour le point determinaison) est activé, vous devez accepter manuellement chaque demande de connexion envoyéepar Device Farm au service de point de terminaison. Vous pouvez désactiver ce paramètre lorsque vouscréez le service de point de terminaison de VPC. Vous pouvez également modifier ce paramètre pour unservice de point de terminaison déjà existant. Pour modifier ce paramètre, choisissez le service de pointde terminaison sur la console Amazon VPC, choisissez Actions, puis choisissez Modifier le paramètred’acceptation du point de terminaison.

La section suivante explique comment créer un service de point de terminaison Amazon VPC qui répond àces exigences.

Étape 1 : Créer un service de point de terminaisonAmazon VPCLa première étape de l'établissement d'une connexion privée entre votre VPC et Device Farm consiste àutiliser la console Amazon VPC pour créer un service de point de terminaison dans votre VPC.

1. Ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.2. Sous Ressources par région, choisissez Services de points de terminaison.3. Choisissez Créer un service de point de terminaison.4. Si vous disposez déjà d'un équilibreur de charge réseau que vous souhaitez que le service de point de

terminaison utilise, choisissez-le dans la liste, puis passez directement à l'étape 11.5. En regard de Associer les équilibreurs de charge réseau, choisissez Create new Network Load

Balancers (Créer de nouveaux équilibreurs de charge réseau).6. Choisissez Créer un équilibreur de charge, puis choisissez Équilibreur de charge réseau.7. Saisissez le nom et les paramètres de l'équilibreur de charge réseau. Sous Zones de disponibilité,

activez les zones de disponibilité us-west-2a, us-west-2b et us-west-2c.8. Suivez les instructions pour configurer l'équilibreur de charge réseau.9. Répétez les étapes 1 à 3 pour redémarrer le processus de création d'un service de point de

terminaison qui utilise le nouvel équilibreur de charge réseau.10. Choisissez l’équilibreur de charge réseau que vous avez créé pour le service de point de terminaison.11. Pour Zones de disponibilité incluses, vérifiez que us-west-2a, us-west-2b et us-west-2c

apparaissent dans la liste.12. Si vous ne souhaitez pas accepter ou refuser manuellement chaque demande de connexion envoyée

au service de point de terminaison, décochez Requiert l'acceptation du point de terminaison. Si vousdésactivez cette case à cocher, le service de point de terminaison accepte automatiquement chaquedemande de connexion qu'il reçoit.

13. Choisissez Créer un service.14. Choisissez Fermer.15. Dans la liste des services de points de terminaison, choisissez le service de point de terminaison que

vous avez créé.16. Choisissez Whitelisted principals (Mandataires inscrits sur la liste blanche).17. Contactez-nous pour obtenir l'ARN (Amazon Resource Name) du point de terminaison VPC Device

Farm (ARN du service) à ajouter à la liste blanche pour le service de point de terminaison, puis ajoutezcet ARN de service dans la liste blanche pour le service.

Version de l'API 2015-06-23160

Page 170: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 2 : Créer une configurationde point de terminaison de VPC

18. Dans l’onglet Détails du service de point de terminaison, notez le nom du service (nom du service).Vous aurez besoin de ce nom lors de la création d’une configuration de point de terminaison de VPC àl'étape suivante.

Votre service de point de terminaison de VPC est maintenant prêt à être utilisé avec Device Farm.

Étape 2 : Créer une configuration de point determinaison de VPC dans Device FarmAprès avoir créé un service de point de terminaison dans Amazon VPC, vous pouvez créer uneconfiguration de points de terminaison Amazon VPC (VPCE) dans Device Farm.

1. Connectez-vous à la console Device Farm à l'adresse https://console.aws.amazon.com/devicefarm.2. À partir de la page d'accueil, choisissez Paramètres Device Farm.3. Choisissez VPCE Configurations (Configurations VPCE).4. Choisissez Create a VPCE Configuration (Créer une configuration VPCE).5. Saisissez un nom pour la configuration VPCE.6. Entrez le nom du service de point de terminaison Amazon VPC (nom du service) que vous avez

noté sur la console Amazon VPC. Le nom se présente sous la forme com.amazonaws.vpce.us-west-2.vpce-svc-id.

7. Entrez le nom DNS de service pour l'application que vous souhaitez tester (par exemple,devicefarm.com). Ne spécifiez pas http ou https avant le nom DNS du service.

Le nom de domaine n'est pas accessible par le biais de l'Internet public. En outre, ce nouveau nomde domaine, qui correspond à votre service de point de terminaison de VPC, est généré par AmazonRoute 53 et est disponible exclusivement pour vous dans votre session Device Farm.

8. Choisissez Save VPCE Configuration (Enregistrer la configuration VPCE).

Étape 3 : Créer un testUne fois que vous avez enregistré la configuration VPCE, vous pouvez utiliser la configuration pour créerdes séries de tests ou des sessions d'accès à distance. Pour plus d'informations, consultez Créer uneexécution de test (p. 23) ou Créer une session d'accès à distance (p. 144).

Version de l'API 2015-06-23161

Page 171: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUtilisation entre régions

Utilisation d'Amazon Virtual Private Cloud entrerégions

Cette rubrique décrit comment atteindre un point de terminaison Amazon Virtual Private Cloud (AmazonVPC) dans une autre région AWS. Si AWS Device Farm et votre point de terminaison de VPC se trouventdans la même région AWS, consultez the section called “Utilisation des services de points de terminaisonde VPC” (p. 159).

Vous pouvez connecter deux VPC qui se trouvent dans des régions AWS différentes, sous réserve qu'ilsaient des blocs d'adresse CIDR distincts, qui ne se chevauchent pas. Ceci garantit que toutes les adressesIP privées sont uniques et autorise toutes les ressources des VPC à communiquer entre elles sans avoirbesoin d'aucune forme de traduction d'adresses réseau. Pour plus d'informations sur la notation CIDR,consultez RFC 4632.

Cette rubrique comprend un exemple de scénario entre régions dans lequel Device Farm est situé dansla région AWS Région USA Ouest (Oregon) (us-west-2) et s’appelle VPC 1. Le second VPC de cetexemple se trouve dans une autre région AWS et est nommé VPC-2.

Exemple de VPC Device Farm entre régions

Composant du VPC VPC-1 VPC-2

CIDR 10.0.0.0/16 172.16.0.0/16

Public subnet 10.0.0.0/24 172.16.0.0/24

Sous-réseau privé 10.0.1.0/24 172.16.1.0/24

Adresse IP privée de l'instanceVPN

10.0.0.5 172.16.0.5

Adresse IP élastique del'instance VPN

EIP-1 EIP-2

Le schéma suivant montre les composants de l’exemple et les interactions entre ces composants.

Rubriques• Prérequis (p. 163)• Étape 1 : Connecter Device Farm à un VPC dans la même région (p. 163)• Étape 2 : Configurer un serveur OpenVPN dans la région Device Farm (VPC-1) (p. 163)

Version de l'API 2015-06-23162

Page 172: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPrérequis

• Étape 3 : Configurer un serveur OpenVPN dans une deuxième région (VPC-2) (p. 165)• Étape 4 : Configurer VPC-1 (p. 165)• Étape 5 : Configurer VPC-2 (p. 166)• Étape 6 : Créer un test (p. 166)

PrérequisCet exemple nécessite les éléments suivants :

• Deux VPC qui sont configurés avec des sous-réseaux publics et privés.• Une adresse IP Elastic associée à chacun des sous-réseaux publics de VPC-1 et VPC-2.

Étape 1 : Connecter Device Farm à un VPC dans lamême régionÉtablissez une connexion privée, sous forme de connexion PrivateLink AWS, entre Device Farm et un pointde terminaison de votre VPC. Pour plus d'informations, consultez the section called “Utilisation des servicesde points de terminaison de VPC” (p. 159).

Étape 2 : Configurer un serveur OpenVPN dans larégion Device Farm (VPC-1)1. Ouvrez la console Amazon VPC. Il se peut que vous soyez invité à saisir vos informations

d'identification AWS.2. À partir du Tableau de bord du VPC, sélectionnez Lancer des instances EC2.3. Dans la barre de navigation de gauche, choisissez AWS Marketplace.4. Recherchez OpenVPN Access Server.

5. Choisissez Select (Sélectionner) pour afficher la page récapitulative OpenVPN, puis choisissezContinue (Continuer).

Version de l'API 2015-06-23163

Page 173: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 2 : Configurer VPC-1

6. Choisissez un type d'instance Amazon EC2.7. Sélectionnez Suivant : Configurer les détails de l'instance. Pour Sous-réseau, sélectionnez votre sous-

réseau public.8. Acceptez les valeurs par défaut sur ces pages :

a. Choisissez Suivant : Ajouter un stockage.b. Choisissez Suivant : Ajouter des balises.c. Choisissez Suivant : Configurer le groupe de sécurité.

9. Confirmez les paramètres du groupe de sécurité OpenVPN :

• SSH – Port 22• Règle TCP personnalisée – port 943• HTTPS – port 443• Règle UDP personnalisée – port 1194

10. Choisissez Vérifier et lancer.11. Choisissez un type de media, puis Suivant.12. Choisissez Lancer.13. Choisissez ou créez une instance, puis choisissez Launch Instances (Lancer les instances).14. Le lancement de l'instance peut prendre un certain temps. Choisissez Afficher les instances pour

suivre l'état de votre instance Amazon EC2.15. Désactivez le contrôle des adresses IP source et de destination pour le trafic VPC.

a. Sur la page Instances d’EC2, dans Actions, choisissez Networking, puis Change Source/DestCheck.

b. Choisissez Oui, désactiver.

Version de l'API 2015-06-23164

Page 174: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 3 : Configurer VPC-2

Pour configurer votre serveur OpenVPN

1. Connectez-vous à votre instance OpenVPN Amazon EC2 à l'aide de SSH en utilisant le nomd'utilisateur openvpnas et la paire de clés que vous avez définie pour cette instance. Pour plusd'informations, consultez Connexion à votre instance Linux à l'aide de SSH.

2. L'assistant de configuration d'OpenVPN Access Server s'exécute automatiquement lors de la premièreconnexion. Utilisez cette commande pour l'exécuter à nouveau :

sudo vpn-init --ec2

Étape 3 : Configurer un serveur OpenVPN dans unedeuxième région (VPC-2)Utilisez les informations de l'étape 2 (p. 163) pour configurer un serveur OpenVPN dans le sous-réseaupublic de votre deuxième région (VPC-2).

Étape 4 : Configurer VPC-11. Ouvrez la console Amazon VPC. Il se peut que vous soyez invité à saisir vos informations

d'identification AWS.2. Choisissez Customer Gateways (Passerelles clients), entrez les paramètres de la passerelle et créez

la passerelle client :

a. Sélectionnez Créer la passerelle client.b. Pour Routage, sélectionnez Statique.c. Pour Nom, saisissez le nom de votre passerelle.d. Pour Adresse IP, entrez l'adresse IP publique de votre instance OpenVPN Access Server.e. Sélectionnez Créer la passerelle client.f. Si l'opération aboutit, l'ID de la passerelle client s'affiche. Choisissez Fermer.

3. Choisissez Virtual Private Gateways (Passerelles privées virtuelles), puis créez la passerelle privéevirtuelle (VPG) :

a. Pour Nom, entrez le nom de votre VPG.b. Choisissez Créer une passerelle privée virtuelle.

4. Choisissez le VPG que vous venez de créer, puis attachez-le au VPC :

a. Dans la liste Actions, choisissez Attacher au VPC.b. Dans la liste VPC, choisissez votre VPC.c. Dans la liste Options de routage, choisissez Statique. Entrez votre adresse IP en notation CIDR.d. Choisissez Oui, attacher.

5. Choisissez Tables de routage, puis configurez les paramètres de routage :

a. Sélectionnez la table de routage qui correspond à votre sous-réseau.b. Sous l'onglet Propagation de route, choisissez l'identifiant VGW de la passerelle privée virtuelle

que vous avez créée précédemment, puis choisissez Ajouter.6. Choisissez VPN Connections (Connexions VPN), puis créez la connexion VPN :

a. Choisissez Créer une connexion VPN.b. Dans la liste Passerelles privées virtuelles, sélectionnez votre passerelle privée virtuelle.c. Dans ID de passerelle client, choisissez votre passerelle client existante.

Version de l'API 2015-06-23165

Page 175: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 5 : Configurer VPC-2

d. Dans la liste Options de routage, choisissez Statique. Pour Adresses IP statiques, entrez votreadresse IP Elastic. Par exemple, si votre adresse IP statique est 10.12.34.56, la notation CIDRdu préfixe IP est 10.12.34.0/24.

e. Choisissez Créer une connexion VPN.f. Si l'opération aboutit, un ID de connexion VPN s'affiche. Choisissez Fermer.

7. Choisissez Use Static Routing (Utiliser le routage statique).8. Entrez l'adresse IP Elastic du serveur VPN OpenVPN Access. Choisissez la connexion VPN et notez

les adresses IP de Tunnel 1 et Tunnel 2 sur la console. Vous en aurez besoin ultérieurement danscette procédure.

9. Choisissez Télécharger la configuration.10. Utilisez SSH pour vous connecter à votre instance de serveur OpenVPN Access, puis ouvrez le fichier

/etc/ipsec.conf :

sudo /etc/ipsec.conf

11. Modifiez la valeur de rightsubnet= pour qu'elle pointe vers le masque CIDR de votre VPC.12. Sous les sections VPC-CUST-GW1 et VPC-CUST-GW2, ajoutez les adresses IP de Tunnel 1 et

Tunnel 2, puis enregistrez le fichier.13. Ouvrez le fichier /etc/ipsec.secrets, puis entrez les clés pré-partagées du fichier de configuration

de VPC-1 que vous avez téléchargé précédemment.14. Pour démarrer la connexion VPN, utilisez la commande ipsec start.

Vous pouvez voir l'état des entrées de votre connexion VPN dans la console Amazon VPC.

Étape 5 : Configurer VPC-2Utilisez les informations de l'étape 4 (p. 165) pour configurer VPC-2. Configurez les tables de routage desdeux VPC pour envoyer le trafic vers l'autre VPC via les instances EC2 du VPC.

Note

Vous devrez peut-être configurer plusieurs tables de routage pour vos sous-réseaux publics etprivés en fonction des sous-réseaux entre lesquels vous souhaitez acheminer le trafic.

Pour plus d'informations sur cet exemple de scénario avec une autre mise en œuvre de VPN, consultezConnexion de plusieurs VPC avec des instances EC2 (SSL).

Étape 6 : Créer un testVous pouvez créer des séries de tests qui utilisent la configuration VPCE décrite à l'étape 1 (p. 163).Pour plus d'informations, consultez Créer un test (p. 23) ou Créer une session d’accès à distance (p. 144).

Version de l'API 2015-06-23166

Page 176: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurInformations AWS Device Farm dans CloudTrail

Journalisation des appels d'API AWSDevice Farm avec AWS CloudTrail

AWS Device Farm est intégré à AWS CloudTrail, service qui fournit un enregistrement des actionsréalisées par un utilisateur, un rôle ou un service AWS dans AWS Device Farm. CloudTrail capture tous lesappels d'API pour AWS Device Farm en tant qu'événements. Les appels capturés incluent des appels dela console AWS Device Farm et le code des appels vers les opérations d'API AWS Device Farm. Si vouscréez un journal de suivi, vous pouvez diffuser en continu les événements CloudTrail sur un compartimentAmazon S3, y compris les événements pour AWS Device Farm. Si vous ne configurez pas de journal desuivi, vous pouvez toujours afficher les événements les plus récents dans la console CloudTrail dans Eventhistory (Historique des événements). À l'aide des informations collectées par CloudTrail, vous pouvezdéterminer la demande qui a été envoyée à AWS Device Farm, l'adresse IP source à partir de laquelle lademande a été effectuée, l'auteur de la demande et la date de la demande, ainsi que d'autres informations.

Pour en savoir plus sur CloudTrail, consultez AWS CloudTrail User Guide.

Informations AWS Device Farm dans CloudTrailCloudTrail est activé sur votre compte AWS lorsque vous créez le compte. Lorsqu'une activité a lieu dansAWS Device Farm, cette activité est enregistrée dans un événement CloudTrail avec d'autres événementsde service AWS dans Event history (Historique des événements). Vous pouvez afficher, rechercher ettélécharger les événements récents dans votre compte AWS. Pour plus d'informations, consultez Affichagedes événements avec l'historique des événements CloudTrail.

Pour un enregistrement continu des événements dans votre compte AWS, y compris les événementspour AWS Device Farm, créez un journal de suivi. Une journal de suivi permet à CloudTrail de livrer lesfichiers journaux dans un compartiment Amazon S3. Par défaut, lorsque vous créez un journal de suividans la console, il s'applique à toutes les régions AWS. Le journal de suivi consigne les événements detoutes les régions dans la partition AWS et livre les fichiers journaux dans le compartiment Amazon S3 devotre choix. En outre, vous pouvez configurer d'autres services AWS pour analyser plus en profondeur lesdonnées d'événement collectées dans les journaux CloudTrail et agir sur celles-ci. Pour plus d'informations,consultez les ressources suivantes :

• Présentation de la création d'un journal de suivi• Intégrations et services pris en charge par CloudTrail• Configuration des Notifications de Amazon SNS pour CloudTrail• Réception de fichiers journaux CloudTrail de plusieurs régions et Réception de fichiers journaux

CloudTrail de plusieurs comptes

Lorsque la journalisation CloudTrail est activée dans votre compte AWS, les appels d'API passés auxactions Device Farm sont suivis dans les fichiers journaux. Les enregistrements Device Farm sont écritsavec d'autres enregistrements de service AWS dans un fichier journal. CloudTrail détermine quand créerun fichier et y consigner des données en fonction d'une période et d'une taille de fichier.

Toutes les actions Device Farm sont consignées et documentées dans les sections Référence AWSCLI (p. 175) et Automatisation d'Device Farm (p. 177). Par exemple, les appels pour créer un projet ouune exécution dans Device Farm génèrent des entrées dans les fichiers journaux CloudTrail.

Chaque événement ou entrée du journal contient des informations sur la personne qui a généré lademande. Les informations relatives à l'identité permettent de déterminer les éléments suivants :

Version de l'API 2015-06-23167

Page 177: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPrésentation des entrées des

fichiers journaux AWS Device Farm

• Si la demande a été effectuée avec les informations d'identification racine ou utilisateur AWS Identity andAccess Management (IAM).

• Si la demande a été effectuée avec des informations d'identification de sécurité temporaires pour un rôleou un utilisateur fédéré.

• Si la requête a été effectuée par un autre service AWS.

Pour plus d'informations, consultez la section Élément userIdentity CloudTrail.

Présentation des entrées des fichiers journaux AWSDevice Farm

Un journal de suivi est une configuration qui active la livraison d'événements en tant que fichiers journauxà un compartiment Amazon S3 que vous spécifiez. Les fichiers journaux CloudTrail contiennent une ouplusieurs entrées de journal. Un événement représente une demande individuelle à partir d'une sourcequelconque et comprend des informations sur l'action demandée, sur tous les paramètres, les paramètresde la demande, etc. Les fichiers journaux CloudTrail ne sont pas des séries ordonnées retraçant les appelsd'API publics. Ils ne suivent aucun ordre précis.

L'exemple suivant montre une entrée de journal CloudTrail qui illustre l'action ListRuns de Device Farm :

{ "Records": [ { "eventVersion": "1.03", "userIdentity": { "type": "Root", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:root", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-07-08T21:13:35Z" } } }, "eventTime":"2015-07-09T00:51:22Z", "eventSource": "devicefarm.amazonaws.com", "eventName":"ListRuns", "awsRegion":"us-west-2", "sourceIPAddress":"203.0.113.11", "userAgent":"example-user-agent-string", "requestParameters": { "arn":"arn:aws:devicefarm:us-west-2:123456789012:project:a9129b8c-df6b-4cdd-8009-40a25EXAMPLE"}, "responseElements": { "runs": [ { "created": "Jul 8, 2015 11:26:12 PM", "name": "example.apk", "completedJobs": 2, "arn": "arn:aws:devicefarm:us-west-2:123456789012:run:a9129b8c-df6b-4cdd-8009-40a256aEXAMPLE/1452d105-e354-4e53-99d8-6c993EXAMPLE", "counters": { "stopped": 0, "warned": 0, "failed": 0,

Version de l'API 2015-06-23168

Page 178: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPrésentation des entrées des

fichiers journaux AWS Device Farm

"passed": 4, "skipped": 0, "total": 4, "errored": 0 }, "type": "BUILTIN_FUZZ", "status": "RUNNING", "totalJobs": 3, "platform": "ANDROID_APP", "result": "PENDING" }, ... additional entries ... ] } } } ]}

Version de l'API 2015-06-23169

Page 179: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration d'CodePipeline pour

utiliser vos tests Device Farm

Utilisation d'AWS Device Farm dansune étape de test CodePipeline

Vous pouvez utiliser AWS CodePipeline pour incorporer des tests d'applications mobiles configurés dansDevice Farm à un pipeline à lancement automatique géré par AWS. Vous pouvez configurer votre pipelinede manière à ce qu'il exécute des tests à la demande, en fonction d'un calendrier ou dans le cadre d'uneintégration continue.

Le schéma suivant illustre le flux d'intégration continue dans lequel une application Android est conçue ettestée chaque fois qu'une notification push est validée pour son référentiel. Pour créer cette configurationde pipeline, consultez Didacticiel : Générer et tester une application Android lors de la transmission enmode push vers GitHub.

1. Configuration 2. Ajout dedéfinitions

3. Push 4. Générationet test

5. Rapport

Configurer lesressourcesdu pipeline

Ajouter desdéfinitions de

génération et detest au package

Transmettreen mode push

un packageau référentiel

La générationde l'application

et le test del'artefact de sortie

de générationsont lancés

automatiquement

Afficher lesrésultats du test

Pour savoir comment configurer un pipeline qui teste en continu une application compilée (par exemple,un fichier iOS .ipa ou un fichier Android .apk) en tant que source, consultez Didacticiel : Test d'uneapplication iOS à chaque chargement d'un fichier .ipa vers un compartiment Amazon S3.

Configuration d'CodePipeline pour utiliser vos testsDevice Farm

Dans cette procédure, nous supposons que vous avez configuré un projet Device Farm (p. 20) et créé unpipeline. Le pipeline doit être configuré avec une étape de test recevant un artefact d'entrée qui contientvotre définition de test et les fichiers du package de l'application compilée. L'artefact d'entrée de l'étape detest peut être l'artefact de sortie d'une source ou d'une étape de génération configurée dans votre pipeline.

Version de l'API 2015-06-23170

Page 180: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration d'CodePipeline pour

utiliser vos tests Device Farm

Pour configurer un test Device Farm exécuté en tant qu'action de test CodePipeline

1. Connectez-vous à la AWS Management Console et ouvrez la console CodePipeline à l'adresse https://console.aws.amazon.com/codepipeline/.

2. Choisissez le pipeline de la version de votre application.3. Dans le panneau de l'étape de test, choisissez l'icône en forme de crayon, puis Action.4. Dans le panneau Ajouter une action, pour Catégorie d'action, choisissez Test.5. Dans Nom de l'action, entrez un nom.6. Dans Fournisseur du test, choisissez AWS Device Farm.

7. Dans Nom de projet, choisissez votre projet Device Farm existant, ou bien Créer un nouveau projet.8. Dans Groupe d'appareils, choisissez votre groupe d'appareils existant, ou bien Créer un nouveau

groupe d'appareils. Si vous créez un groupe d'appareils, vous devez sélectionner un ensembled'appareils de test.

9. Dans Type d'application, choisissez la plateforme correspondant à votre application.

Version de l'API 2015-06-23171

Page 181: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration d'CodePipeline pour

utiliser vos tests Device Farm

10. Dans Chemin du fichier d'application, entrez le chemin d'accès au package de l'application compilée.Ce chemin dépend de la racine de l'artefact d'entrée de votre test.

11. Dans Type de test, effectuez l'une des actions suivantes :

• Si vous utilisez l'un des tests Device Farm intégrés, choisissez le type de test configuré dans votreprojet Device Farm.

• Si vous n'utilisez pas l'un des tests Device Farm intégrés, saisissez le chemin du fichier de définitionde test dans Chemin de fichier de test. Ce chemin dépend de la racine de l'artefact d'entrée de votretest.

Version de l'API 2015-06-23172

Page 182: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration d'CodePipeline pour

utiliser vos tests Device Farm

12. Dans les autres champs, indiquez la configuration appropriée pour votre test et le type d'application.13. (Facultatif) Dans Avancé, indiquez la configuration détaillée de votre test.

14. Dans Artefacts d'entrée, choisissez l'artefact d'entrée correspondant à l'artefact de sortie de l'étape quiprécède l'étape de test dans le pipeline.

Version de l'API 2015-06-23173

Page 183: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration d'CodePipeline pour

utiliser vos tests Device Farm

Pour afficher le nom de l'artefact de sortie pour chaque étape dans la console CodePipeline, survolezl'icône d'information sur le schéma du pipeline. Si votre pipeline teste votre application directementà partir de l'étape Source, choisissez MyApp. Si votre pipeline comprend une étape Génération,choisissez MyAppBuild.

15. Au bas du panneau, choisissez Ajouter une action.16. Dans le volet CodePipeline, choisissez Enregistrer les modifications du pipeline, puis Enregistrer la

modification.17. Pour soumettre vos modifications et lancer la génération d'un pipeline, choisissez Changement de

version, puis Publication.

Version de l'API 2015-06-23174

Page 184: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Référence AWS CLI pour AWSDevice Farm

Pour utiliser l'AWS Command Line Interface (AWS CLI) pour exécuter des commandes Device Farm,consultez Référence AWS CLI pour AWS Device Farm.

Pour obtenir des informations générales sur l'AWS CLI, consultez le AWS Command Line Interface Guidede l'utilisateur et le document AWS CLI Command Reference.

Version de l'API 2015-06-23175

Page 185: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Référence relative àWindows PowerShell pour AWSDevice Farm

Pour utiliser Windows PowerShell afin d'exécuter des commandes Device Farm, consultez les documentsde référence des applets de commande Device Farm et de référence des applets de commande des OutilsAWS pour Windows PowerShell. Pour plus d'informations, consultez Configuration des outils AWS pourWindows PowerShell dans le Outils AWS pour Windows PowerShell Guide de l'utilisateur.

Version de l'API 2015-06-23176

Page 186: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemple : Utilisation du kit SDK AWS pour démarrerune exécution Device Farm et collecter des artefacts

Automatisation d'AWS Device FarmL'accès par programmation à Device Farm est un moyen puissant d'automatiser les tâches courantes quevous devez accomplir, comme la planification d'une exécution ou le téléchargement des artefacts pour uneexécution, une suite ou un test. Le kit SDK AWS et l'AWS CLI permettent d'y parvenir.

Le kit SDK AWS permet d'accéder à tous les services AWS, y compris Device Farm, Amazon S3, etc. Pourde plus amples informations, veuillez consulter

• les outils et les kits SDK AWS• l'opérateur Référence d'API AWS Device Farm

Exemple : Utilisation du kit SDK AWS pourdémarrer une exécution Device Farm et collecterdes artefacts

L'exemple suivant fournit une démonstration complète de l'utilisation du kit SDK AWS pour utiliser DeviceFarm. Cet exemple effectue les opérations suivantes :

• Télécharge un test et des packages d'application dans Device Farm• Démarre un test et attend qu'il se termine (ou qu'il échoue)• Télécharge tous les artefacts produits par les suites de test

Cet exemple dépend du package requests tiers pour interagir avec HTTP.

import boto3import osimport requestsimport stringimport randomimport timeimport datetimeimport timeimport json

# The following script runs a test through Device Farm## Things you have to change:config = { # This is our app under test. "appFilePath":"app-debug.apk", "projectArn": "arn:aws:devicefarm:us-west-2:111122223333:project:1b99bcff-1111-2222-ab2f-8c3c733c55ed", # Since we care about the most popular devices, we'll use a curated pool. "testSpecArn":"arn:aws:devicefarm:us-west-2::upload:4f8bd6b2-7be5-11e8-adc0-fa7ae01bbebc", "poolArn":"arn:aws:devicefarm:us-west-2::devicepool:082d10e5-d7d7-48a5-ba5c-b33d66efa1f5", "namePrefix":"MyAppTest", # This is our test package. This tutorial won't go into how to make these. "testPackage":"tests.zip"

Version de l'API 2015-06-23177

Page 187: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemple : Utilisation du kit SDK AWS pour démarrerune exécution Device Farm et collecter des artefacts

}

client = boto3.client('devicefarm')

unique = config['namePrefix']+"-"+(datetime.date.today().isoformat())+(''.join(random.sample(string.ascii_letters,8)))

print(f"The unique identifier for this run is going to be {unique} -- all uploads will be prefixed with this.")

def upload_df_file(filename, type_, mime='application/octet-stream'): response = client.create_upload(projectArn=config['projectArn'], name = (unique)+"_"+os.path.basename(filename), type=type_, contentType=mime ) # Get the upload ARN, which we'll return later. upload_arn = response['upload']['arn'] # We're going to extract the URL of the upload and use Requests to upload it upload_url = response['upload']['url'] with open(filename, 'rb') as file_stream: print(f"Uploading {filename} to Device Farm as {response['upload']['name']}... ",end='') put_req = requests.put(upload_url, data=file_stream, headers={"content-type":mime}) print(' done') if not put_req.ok: raise Exception("Couldn't upload, requests said we're not ok. Requests says: "+put_req.reason) started = datetime.datetime.now() while True: print(f"Upload of {filename} in state {response['upload']['status']} after "+str(datetime.datetime.now() - started)) if response['upload']['status'] == 'FAILED': raise Exception("The upload failed processing. DeviceFarm says reason is: \n"+response['upload']['message']) if response['upload']['status'] == 'SUCCEEDED': break time.sleep(5) response = client.get_upload(arn=upload_arn) print("") return upload_arn

our_upload_arn = upload_df_file(config['appFilePath'], "ANDROID_APP")our_test_package_arn = upload_df_file(config['testPackage'], 'APPIUM_PYTHON_TEST_PACKAGE')print(our_upload_arn, our_test_package_arn)# Now that we have those out of the way, we can start the test run...response = client.schedule_run( projectArn = config["projectArn"], appArn = our_upload_arn, devicePoolArn = config["poolArn"], name=unique, test = { "type":"APPIUM_PYTHON", "testSpecArn": config["testSpecArn"], "testPackageArn": our_test_package_arn } )run_arn = response['run']['arn']start_time = datetime.datetime.now()print(f"Run {unique} is scheduled as arn {run_arn} ")

try:

while True: response = client.get_run(arn=run_arn) state = response['run']['status']

Version de l'API 2015-06-23178

Page 188: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemple : Utilisation du kit SDK AWS pour démarrerune exécution Device Farm et collecter des artefacts

if state == 'COMPLETED' or state == 'ERRORED': break else: print(f" Run {unique} in state {state}, total time "+str(datetime.datetime.now()-start_time)) time.sleep(10)except: # If something goes wrong in this process, we stop the run and exit.

client.stop_run(arn=run_arn) exit(1)print(f"Tests finished in state {state} after "+str(datetime.datetime.now() - start_time))# now, we pull all the logs.jobs_response = client.list_jobs(arn=run_arn)# Save the output somewhere. We're using the unique value, but you could use something elsesave_path = os.path.join(os.getcwd(), unique)os.mkdir(save_path)# Save the last run informationfor job in jobs_response['jobs'] : # Make a directory for our information job_name = job['name'] os.makedirs(os.path.join(save_path, job_name), exist_ok=True) # Get each suite within the job suites = client.list_suites(arn=job['arn'])['suites'] for suite in suites: for test in client.list_tests(arn=suite['arn'])['tests']: # Get the artifacts for artifact_type in ['FILE','SCREENSHOT','LOG']: artifacts = client.list_artifacts( type=artifact_type, arn = test['arn'] )['artifacts'] for artifact in artifacts: # We replace : because it has a special meaning in Windows & macos path_to = os.path.join(save_path, job_name, suite['name'], test['name'].replace(':','_') ) os.makedirs(path_to, exist_ok=True) filename = artifact['type']+"_"+artifact['name']+"."+artifact['extension'] artifact_save_path = os.path.join(path_to, filename) print("Downloading "+artifact_save_path) with open(artifact_save_path, 'wb') as fn, requests.get(artifact['url'],allow_redirects=True) as request: fn.write(request.content) #/for artifact in artifacts #/for artifact type in [] #/ for test in ()[] #/ for suite in suites #/ for job in _[]# doneprint("Finished")

Version de l'API 2015-06-23179

Page 189: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurApplications Android

Dépannage des erreurs dans DeviceFarm

Dans cette section, vous trouverez des messages d'erreur et des procédures vous permettant de résoudreles problèmes courants avec Device Farm.

Rubriques• Résolution des problèmes rencontrés lors de tests d'applications Android dans AWS Device

Farm (p. 180)• Résolution des problèmes rencontrés lors des tests d'Appium Java JUnit dans AWS Device

Farm (p. 184)• Résolution des problèmes rencontrés lors des tests d'application Web Appium Java JUnit dans AWS

Device Farm (p. 190)• Résolution des problèmes rencontrés lors des tests d'Appium Java TestNG dans AWS Device

Farm (p. 195)• Résolution des problèmes rencontrés lors des tests d'applications Web Appium Java TestNG dans

AWS Device Farm (p. 200)• Résolution des problèmes rencontrés lors des tests Appium écrits en Python dans AWS Device

Farm (p. 204)• Résolution des problèmes rencontrés lors des tests d'application Web Appium Python dans AWS

Device Farm (p. 211)• Résolution des problèmes rencontrés lors des tests Calabash dans AWS Device Farm (p. 218)• Résolution des problèmes rencontrés lors de tests Instrumentation dans AWS Device Farm (p. 224)• Résolution des problèmes rencontrés lors de tests d'applications iOS dans AWS Device

Farm (p. 228)• Résolution des problèmes rencontrés lors des tests d'UI Automator dans AWS Device Farm (p. 236)• Résolution des problèmes rencontrés lors des tests XCTest dans AWS Device Farm (p. 237)• Résolution des problèmes rencontrés lors des tests XCTest UI dans AWS Device Farm (p. 240)

Résolution des problèmes rencontrés lors de testsd'applications Android dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsd'applications Android et recommande des solutions permettant de résoudre chaque erreur.

Note

Les instructions ci-dessous sont basées sur Linux x86_64 et Mac.

ANDROID_APP_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre application. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de l'application sans erreurs. Dans l'exemplesuivant, le nom du package est app-debug.apk.

Version de l'API 2015-06-23180

Page 190: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurANDROID_APP_AAPT_DEBUG_BADGING_FAILED

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip app-debug.apk

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package d'application Android valide doit générer une sortie similaire à la suivante :

.|-- AndroidManifest.xml|-- classes.dex|-- resources.arsc|-- assets (directory)|-- res (directory)`-- META-INF (directory)

Pour plus d'informations, consultez Utilisation de tests Android dans AWS Device Farm (p. 56).

ANDROID_APP_AAPT_DEBUG_BADGING_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'extraire des informations sur votre application. Vérifiez que l'application est valideen exécutant la commande aapt debug badging <path to your test package>, puisréessayez une fois que cette commande ne génère aucune erreur.

Pendant le processus de validation du chargement, AWS Device Farm analyse les informations de la sortied'une commande aapt debug badging <path to your package>.

Assurez-vous que vous pouvez exécuter avec succès cette commande sur votre application Android. Dansl'exemple suivant, le nom du package est app-debug.apk.

• Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commande :

$ aapt debug badging app-debug.apk

Un package d'application Android valide doit générer une sortie similaire à la suivante :

package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727'sdkVersion:'9'application-label:'ReferenceApp'application: label='ReferenceApp' icon='res/mipmap-mdpi-v4/ic_launcher.png'application-debuggablelaunchable-activity: name='com.amazon.aws.adf.android.referenceapp.Activities.MainActivity' label='ReferenceApp' icon=''uses-feature: name='android.hardware.bluetooth'uses-implied-feature: name='android.hardware.bluetooth' reason='requested android.permission.BLUETOOTH permission, and targetSdkVersion > 4'mainsupports-screens: 'small' 'normal' 'large' 'xlarge'supports-any-density: 'true'

Version de l'API 2015-06-23181

Page 191: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurANDROID_APP_PACKAGE_NAME_VALUE_MISSING

locales: '--_--'densities: '160' '213' '240' '320' '480' '640'

Pour plus d'informations, consultez Utilisation de tests Android dans AWS Device Farm (p. 56).

ANDROID_APP_PACKAGE_NAME_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du nom du package à l'intérieur de votre application. Veuillezvérifier que l'application est valide en exécutant la commande aapt debug badging <path toyour test package>, puis réessayez après avoir trouvé la valeur du nom du package derrièrele mot clé « package: name ».

Pendant le processus de validation du chargement, AWS Device Farm analyse la valeur du nom dupackage de la sortie d'une commande aapt debug badging <path to your package>.

Assurez-vous que vous pouvez exécuter cette commande sur votre application Android et trouver la valeurdu nom du package avec succès. Dans l'exemple suivant, le nom du package est app-debug.apk.

• Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ aapt debug badging app-debug.apk | grep "package: name="

Un package d'application Android valide doit générer une sortie similaire à la suivante :

package: name='com.amazon.aws.adf.android.referenceapp' versionCode='1' versionName='1.0' platformBuildVersionName='5.1.1-1819727'

Pour plus d'informations, consultez Utilisation de tests Android dans AWS Device Farm (p. 56).

ANDROID_APP_SDK_VERSION_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur de la version du kit SDK à l'intérieur de votre application. Veuillezvérifier que l'application est valide en exécutant la commande aapt debug badging <path toyour test package>, puis réessayez après avoir trouvé la valeur du kit SDK derrière le mot clésdkVersion.

Pendant le processus de validation du chargement, AWS Device Farm analyse la valeur de la version du kitSDK de la sortie d'une commande aapt debug badging <path to your package>.

Assurez-vous que vous pouvez exécuter cette commande sur votre application Android et trouver la valeurdu nom du package avec succès. Dans l'exemple suivant, le nom du package est app-debug.apk.

• Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ aapt debug badging app-debug.apk | grep "sdkVersion"

Version de l'API 2015-06-23182

Page 192: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurANDROID_APP_AAPT_DUMP_XMLTREE_FAILED

Un package d'application Android valide doit générer une sortie similaire à la suivante :

sdkVersion:'9'

Pour plus d'informations, consultez Utilisation de tests Android dans AWS Device Farm (p. 56).

ANDROID_APP_AAPT_DUMP_XMLTREE_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le fichier AndroidManifest.xml valide à l'intérieur de votre application.Vérifiez que le package de test est valide en exécutant la commande aapt dump xmltree<path to your test package> AndroidManifest.xml, puis réessayez une fois que cettecommande ne génère aucune erreur.

Pendant le processus de validation du chargement, AWS Device Farm analyse les informations del'arborescence d'analyse XML d'un fichier XML contenu dans le package à l'aide de la commande aaptdump xmltree <path to your package> AndroidManifest.xml.

Assurez-vous que vous pouvez exécuter avec succès cette commande sur votre application Android. Dansl'exemple suivant, le nom du package est app-debug.apk.

• Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ aapt dump xmltree app-debug.apk. AndroidManifest.xml

Un package d'application Android valide doit générer une sortie similaire à la suivante :

N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA")

Pour plus d'informations, consultez Utilisation de tests Android dans AWS Device Farm (p. 56).

ANDROID_APP_DEVICE_ADMIN_PERMISSIONSSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Version de l'API 2015-06-23183

Page 193: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Java JUnit

Warning

Nous avons constaté que votre application nécessitait des autorisations d'administrationd'appareil. Vérifiez que les autorisations ne sont pas requises par l'exécution de la commandeaapt dump xmltree <path to your test package> AndroidManifest.xmlet réessayez après vous être assuré que la sortie ne contient pas le mot cléandroid.permission.BIND_DEVICE_ADMIN.

Pendant le processus de validation du chargement, AWS Device Farm analyse les informationsd'autorisation de l'arborescence d'analyse xml d'un fichier xml contenu dans le package à l'aide de lacommande aapt dump xmltree <path to your package> AndroidManifest.xml.

Assurez-vous que votre application ne nécessite pas d'autorisation d'administration d'appareil. Dansl'exemple suivant, le nom du package est app-debug.apk.

• Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ aapt dump xmltree app-debug.apk AndroidManifest.xml

Vous devriez obtenir une sortie similaire à ce qui suit :

N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: android:versionCode(0x0101021b)=(type 0x10)0x1 A: android:versionName(0x0101021c)="1.0" (Raw: "1.0") A: package="com.amazonaws.devicefarm.android.referenceapp" (Raw: "com.amazonaws.devicefarm.android.referenceapp") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=7) A: android:minSdkVersion(0x0101020c)=(type 0x10)0xa A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: uses-permission (line=11) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=12) A: android:name(0x01010003)="android.permission.CAMERA" (Raw: "android.permission.CAMERA") ……

Si l'application Android est valide, la sortie ne doit pas contenir ce qui suit : A:android:name(0x01010003)="android.permission.BIND_DEVICE_ADMIN" (Raw:"android.permission.BIND_DEVICE_ADMIN").

Pour plus d'informations, consultez Utilisation de tests Android dans AWS Device Farm (p. 56).

Résolution des problèmes rencontrés lors des testsd'Appium Java JUnit dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsd'Appium Java JUnit et recommande des solutions permettant de résoudre chaque erreur.

Note

Les instructions ci-dessous sont basées sur Linux x86_64 et Mac.

Version de l'API 2015-06-23184

Page 194: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_JUNIT_TEST_PACKAGE_PACKAGE_UNZIP_FAILED

APPIUM_JAVA_JUNIT_TEST_PACKAGE_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package Appium Java JUnit valide doit générer une sortie similaire à la suivante :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 62) ou Appium Java JUnit (p. 89).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire dependency-jars à l'intérieur de votre package. Décompressezvotre package de test, vérifiez que le répertoire dependency-jars s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Version de l'API 2015-06-23185

Page 195: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR

Si le package Appium Java JUnit est valide, vous trouverez le répertoire dependency-jars dans lerépertoire de travail :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 62) ou Appium Java JUnit (p. 89).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier JAR dans l'arborescence du répertoire dependency-jars.Décompressez votre package de test, puis ouvrez le répertoire dependency-jars, vérifiez quecelui-ci contient au moins un fichier JAR, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar dans le répertoiredependency-jars :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 62) ou Appium Java JUnit (p. 89).

Version de l'API 2015-06-23186

Page 196: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

APPIUM_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier *-tests.jar à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez qu'au moins un fichier *-tests.jar s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut êtredifférent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 62) ou Appium Java JUnit (p. 89).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier de classe dans le fichier JAR de tests. Décompressez votrepackage de test, puis décompressez le fichier de tests JAR, vérifiez que celui-ci contient au moinsun fichier de classe, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

Version de l'API 2015-06-23187

Page 197: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN

$ tree .

Vous devriez trouver au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut être différent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

3. Après avoir réussi à extraire les fichiers, vous devriez trouver au moins une classe dans le répertoirede travail arbre en exécutant la commande :

$ tree .

Elle doit générer une sortie comme suit :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `-another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 62) ou Appium Java JUnit (p. 89).

APPIUM_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWNSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver une valeur de version JUnit. Décompressez votre package de test, puisouvrez le répertoire dependency-jars, vérifiez que le fichier JAR JUnit se trouve dans le répertoire,puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

Version de l'API 2015-06-23188

Page 198: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

tree .

La sortie doit se présenter comme suit :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Si le package Appium Java JUnit est valide, vous trouverez le fichier de dépendance JUnit similaireau fichier jar junit-4.10.jar de notre exemple. Le nom doit comporter le mot clé junit et sonnuméro de version, qui est 4.10 dans cet exemple.

Pour plus d'informations, consultez Appium Java JUnit (p. 62) et Appium Java JUnit (p. 89)

APPIUM_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSIONSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

La version de JUnit que vous utilisez est antérieure à la version 4.10 minimale que nous prenonsen charge. Modifiez la version de JUnit et réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver un fichier de dépendance JUnit comme junit-4.10.jar dans notre exemple etson numéro de version, qui est ici 4.10 :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)

Version de l'API 2015-06-23189

Page 199: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurWeb Appium Java JUnit

|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Note

Vos tests peuvent ne pas s'exécuter correctement si la version de JUnit spécifiée dans votrepackage de test est antérieure à la version 4.10 minimale prise en charge.

Pour plus d'informations, consultez Appium Java JUnit (p. 62) ou Appium Java JUnit (p. 89).

Résolution des problèmes rencontrés lors des testsd'application Web Appium Java JUnit dans AWSDevice Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsd'application Web d'Appium Java JUnit et recommande des solutions permettant de résoudre chaqueerreur.

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package Appium Java JUnit valide doit générer une sortie similaire à la suivante :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)

Version de l'API 2015-06-23190

Page 200: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSING

`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 118).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire dependency-jars à l'intérieur de votre package. Décompressezvotre package de test, vérifiez que le répertoire dependency-jars s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez le répertoire dependency-jars dans lerépertoire de travail :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 118).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier JAR dans l'arborescence du répertoire dependency-jars.Décompressez votre package de test, puis ouvrez le répertoire dependency-jars, vérifiez quecelui-ci contient au moins un fichier JAR, puis réessayez.

Version de l'API 2015-06-23191

Page 201: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar dans le répertoiredependency-jars :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 118).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier *-tests.jar à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez qu'au moins un fichier *-tests.jar s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut êtredifférent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)

Version de l'API 2015-06-23192

Page 202: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR

|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 118).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier de classe dans le fichier JAR de tests. Décompressez votrepackage de test, puis décompressez le fichier de tests JAR, vérifiez que celui-ci contient au moinsun fichier de classe, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut être différent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

3. Après avoir réussi à extraire les fichiers, vous devriez trouver au moins une classe dans le répertoirede travail arbre en exécutant la commande :

$ tree .

Elle doit générer une sortie comme suit :

.

Version de l'API 2015-06-23193

Page 203: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWN

|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `-another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java JUnit (p. 118).

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_JUNIT_VERSION_VALUE_UNKNOWNSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver une valeur de version JUnit. Décompressez votre package de test, puisouvrez le répertoire dependency-jars, vérifiez que le fichier JAR JUnit se trouve dans le répertoire,puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

tree .

La sortie doit se présenter comme suit :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Si le package Appium Java JUnit est valide, vous trouverez le fichier de dépendance JUnit similaireau fichier jar junit-4.10.jar de notre exemple. Le nom doit comporter le mot clé junit et sonnuméro de version, qui est 4.10 dans cet exemple.

Pour plus d'informations, consultez Appium Java JUnit (p. 118).

Version de l'API 2015-06-23194

Page 204: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSION

APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE_INVALID_JUNIT_VERSIONSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

La version de JUnit que vous utilisez est antérieure à la version 4.10 minimale que nous prenonsen charge. Modifiez la version de JUnit et réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver un fichier de dépendance JUnit comme junit-4.10.jar dans notre exemple etson numéro de version, qui est ici 4.10 :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— junit-4.10.jar |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Note

Vos tests peuvent ne pas s'exécuter correctement si la version de JUnit spécifiée dans votrepackage de test est antérieure à la version 4.10 minimale prise en charge.

Pour plus d'informations, consultez Appium Java JUnit (p. 118).

Résolution des problèmes rencontrés lors des testsd'Appium Java TestNG dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsd'Appium Java TestNG et recommande des solutions permettant de résoudre chaque erreur.

Note

Les instructions ci-dessous sont basées sur Linux x86_64 et Mac.Version de l'API 2015-06-23

195

Page 205: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILED

APPIUM_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package Appium Java JUnit valide doit générer une sortie similaire à la suivante :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 57) ou Appium Java TestNG (p. 84).

APPIUM_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire dependency-jars à l'intérieur de votre package.Décompressez votre package de test, vérifiez que le répertoire dependency-jars s'y trouve,puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Version de l'API 2015-06-23196

Page 206: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR

Si le package Appium Java JUnit est valide, vous trouverez le répertoire dependency-jars dans lerépertoire de travail.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 57) ou Appium Java TestNG (p. 84).

APPIUM_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier JAR dans l'arborescence du répertoire dependency-jars.Décompressez votre package de test, puis ouvrez le répertoire dependency-jars, vérifiez quecelui-ci contient au moins un fichier JAR, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar dans le répertoiredependency-jars.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 57) ou Appium Java TestNG (p. 84).

Version de l'API 2015-06-23197

Page 207: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

APPIUM_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier *-tests.jar à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez qu'au moins un fichier *-tests.jar s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut êtredifférent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 57) ou Appium Java TestNG (p. 84).

APPIUM_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier de classe dans le fichier JAR de tests. Décompressez votrepackage de test, puis décompressez le fichier de tests JAR, vérifiez que celui-ci contient au moinsun fichier de classe, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

Version de l'API 2015-06-23198

Page 208: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR

$ tree .

Vous devriez trouver au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut être différent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

3. Pour extraire les fichiers du fichier jar, vous pouvez exécuter la commande suivante :

$ jar xf acme-android-appium-1.0-SNAPSHOT-tests.jar

4. Une fois que vous avez réussi à extraire les fichiers, exécutez la commande suivante :

$ tree .

Vous devriez trouver au moins une classe dans l'arborescence du répertoire de travail :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `— another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 57) ou Appium Java TestNG (p. 84).

Version de l'API 2015-06-23199

Page 209: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurWeb Appium Java TestNG

Résolution des problèmes rencontrés lors des testsd'applications Web Appium Java TestNG dans AWSDevice Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsd'application Web d'Appium Java TestNG et recommande des solutions permettant de résoudre chaqueerreur.

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package Appium Java JUnit valide doit générer une sortie similaire à la suivante :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 113).

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_DEPENDENCY_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire dependency-jars à l'intérieur de votre package. Décompressezvotre package de test, vérifiez que le répertoire dependency-jars s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

Version de l'API 2015-06-23200

Page 210: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIR

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez le répertoire dependency-jars dans lerépertoire de travail.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 113).

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_JAR_MISSING_IN_DEPENDENCY_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier JAR dans l'arborescence du répertoire dependency-jars.Décompressez votre package de test, puis ouvrez le répertoire dependency-jars, vérifiez quecelui-ci contient au moins un fichier JAR, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar dans le répertoiredependency-jars.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)

Version de l'API 2015-06-23201

Page 211: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSING

`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 113).

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_TESTS_JAR_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier *-tests.jar à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez qu'au moins un fichier *-tests.jar s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Java JUnit est valide, vous trouverez au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut êtredifférent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 113).

APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JARSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier de classe dans le fichier JAR de tests. Décompressez votrepackage de test, puis décompressez le fichier de tests JAR, vérifiez que celui-ci contient au moinsun fichier de classe, puis réessayez.

Version de l'API 2015-06-23202

Page 212: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE_CLASS_FILE_MISSING_IN_TESTS_JAR

Dans l'exemple suivant, le nom du package est zip-with-dependencies.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip zip-with-dependencies.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver au moins un fichier jar comme acme-android-appium-1.0-SNAPSHOT-tests.jar dans notre exemple. Le nom du fichier peut être différent, mais il doit se terminer par –tests.jar.

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

3. Pour extraire les fichiers du fichier jar, vous pouvez exécuter la commande suivante :

$ jar xf acme-android-appium-1.0-SNAPSHOT-tests.jar

4. Une fois que vous avez réussi à extraire les fichiers, exécutez la commande suivante :

$ tree .

Vous devriez trouver au moins une classe dans l'arborescence du répertoire de travail :

.|— acme-android-appium-1.0-SNAPSHOT.jar (this is the JAR containing everything built from the ./src/main directory)|— acme-android-appium-1.0-SNAPSHOT-tests.jar (this is the JAR containing everything built from the ./src/test directory)|- one-class-file.class|- folder| `— another-class-file.class|— zip-with-dependencies.zip (this .zip file contains all of the items)`— dependency-jars (this is the directory that contains all of your dependencies, built as JAR files) |— com.some-dependency.bar-4.1.jar |— com.another-dependency.thing-1.0.jar |— joda-time-2.7.jar `— log4j-1.2.14.jar

Pour plus d'informations, consultez Appium Java TestNG (p. 113).

Version de l'API 2015-06-23203

Page 213: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAppium Python

Résolution des problèmes rencontrés lors des testsAppium écrits en Python dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsAppium écrits en Python et propose des solutions pour résoudre chaque erreur.

APPIUM_PYTHON_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test Appium. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package Appium Python valide doit générer une sortie similaire à la suivante :

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier wheel de dépendance dans l'arborescence du répertoirewheelhouse. Décompressez votre package de test, puis ouvrez le répertoire wheelhouse, vérifiezque celui-ci contient au moins un fichier wheel, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

Version de l'API 2015-06-23204

Page 214: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORM

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez au moins un fichier dépendant .whl commeles fichiers mis en surbrillance dans le répertoire wheelhouse.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

APPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORMSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Au moins un fichier wheel spécifie une plateforme que nous ne prenons pas en charge.Décompressez votre package de test, puis ouvrez le répertoire wheelhouse, vérifiez que les nomsde fichiers wheel se terminent par -any.whl ou -linux_x86_64.whl et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez au moins un fichier dépendant .whl commeles fichiers mis en surbrillance dans le répertoire wheelhouse. Le nom du fichier peut être différent,mais il doit se terminer par -any.whl ou -linux_x86_64.whl qui indique la plateforme utilisée.Toutes les plateformes, comme windows, ne sont pas prises en charge.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)

Version de l'API 2015-06-23205

Page 215: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING

| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

APPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire de tests à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez que le répertoire de tests s'y trouve, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez le répertoire tests dans le répertoire detravail.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

APPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAMESi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier de test valide dans l'arborescence du répertoire de tests.Décompressez votre package de test, ouvrez le répertoire de tests, vérifiez que le nom d'au moinsun fichier commence ou finit par le mot clé « test », puis réessayez.

Version de l'API 2015-06-23206

Page 216: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez le répertoire tests dans le répertoire detravail. Le nom du fichier peut être différent, mais il doit commencer par test_ ou se terminer par_test.py.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

APPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le fichier requirements.txt à l'intérieur de votre package. Décompressezvotre package de test, vérifiez que le fichier requirements.txt s'y trouve, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez le fichier requirements.txt dans lerépertoire de travail.

.|-- requirements.txt

Version de l'API 2015-06-23207

Page 217: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION

|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

APPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSIONSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

La version de pytest que vous utilisez est antérieure à la version 2.8.0 minimale que nous prenonsen charge. Modifiez la version de pytest du fichier requirements.txt et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier requirements.txt dans le répertoire de travail.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `--test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

3. Pour connaître la version de pytest, exécutez la commande suivante :

$ grep "pytest" requirements.txt

Vous devriez obtenir une sortie similaire à ce qui suit :

pytest==2.9.0

Elle montre la version de pytest, qui est 2.9.0 dans cet exemple. Si le package Appium Python estvalide, la version de pytest doit être supérieure ou égale à 2.8.0.

Version de l'API 2015-06-23208

Page 218: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

APPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'installer les fichiers wheel de dépendance. Décompressez votre package de test,ouvrez le fichier requirements.txt et le répertoire wheelhouse, vérifiez que les fichiers wheel dedépendance spécifiés dans le fichier requirements.txt correspondent exactement aux fichierswheel de dépendance situés dans le répertoire wheelhouse et réessayez.

Nous vous recommandons vivement de configurer virtualenv Python pour les tests de création de package.Voici un exemple de flux de création d'un environnement virtuel à l'aide de virtualenv Python et de sonactivation :

$ virtualenv workspace$ cd workspace $ source bin/activate

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour tester l'installation des fichiers wheel, vous pouvez exécuter la commande suivante :

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

Un package Appium Python valide doit générer une sortie similaire à la suivante :

Ignoring indexes: https://pypi.python.org/simpleCollecting Appium-Python-Client==0.20 (from -r ./requirements.txt (line 1))Collecting py==1.4.31 (from -r ./requirements.txt (line 2))Collecting pytest==2.9.0 (from -r ./requirements.txt (line 3))Collecting selenium==2.52.0 (from -r ./requirements.txt (line 4))Collecting wheel==0.26.0 (from -r ./requirements.txt (line 5))Installing collected packages: selenium, Appium-Python-Client, py, pytest, wheel Found existing installation: wheel 0.29.0 Uninstalling wheel-0.29.0: Successfully uninstalled wheel-0.29.0Successfully installed Appium-Python-Client-0.20 py-1.4.31 pytest-2.9.0 selenium-2.52.0 wheel-0.26.0

3. Pour désactiver l'environnement virtuel, exécutez la commande suivante :

$ deactivate

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

Version de l'API 2015-06-23209

Page 219: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED

APPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Echec de la collecte de tests dans le répertoire de tests. Décompressez votre package de test,vérifiez qu'il est valide en exécutant la commande py.test --collect-only <path toyour tests directory>, puis réessayez une fois que cette commande ne génère aucuneerreur.

Nous vous recommandons vivement de configurer virtualenv Python pour les tests de création de package.Voici un exemple de flux de création d'un environnement virtuel à l'aide de virtualenv Python et de sonactivation :

$ virtualenv workspace$ cd workspace $ source bin/activate

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour installer des fichiers wheel, vous pouvez exécuter la commande suivante :

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

3. Pour collecter des tests, vous pouvez exécuter la commande suivante :

$ py.test --collect-only tests

Un package Appium Python valide doit générer une sortie similaire à la suivante :

==================== test session starts ====================platform darwin -- Python 2.7.11, pytest-2.9.0, py-1.4.31, pluggy-0.3.1rootdir: /Users/zhena/Desktop/Ios/tests, inifile:collected 1 items<Module 'test_unittest.py'> <UnitTestCase 'DeviceFarmAppiumWebTests'> <TestCaseFunction 'test_devicefarm'>

==================== no tests ran in 0.11 seconds ====================

4. Pour désactiver l'environnement virtuel, exécutez la commande suivante :

$ deactivate

Pour plus d'informations, consultez Appium Python (p. 70) ou Appium Python (p. 98).

Version de l'API 2015-06-23210

Page 220: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurWeb Appium Python

Résolution des problèmes rencontrés lors destests d'application Web Appium Python dans AWSDevice Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsd'application Web d'Appium Python et recommande des solutions permettant de résoudre chaque erreur.

APPIUM_WEB_PYTHON_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test Appium. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package Appium Python valide doit générer une sortie similaire à la suivante :

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 126).

APPIUM_WEB_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier wheel de dépendance dans l'arborescence du répertoirewheelhouse. Décompressez votre package de test, puis ouvrez le répertoire wheelhouse, vérifiezque celui-ci contient au moins un fichier wheel, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

Version de l'API 2015-06-23211

Page 221: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PLATFORM

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez au moins un fichier dépendant .whl commeles fichiers mis en surbrillance dans le répertoire wheelhouse.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 126).

APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PLATFORMSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Au moins un fichier wheel spécifie une plateforme que nous ne prenons pas en charge.Décompressez votre package de test, puis ouvrez le répertoire wheelhouse, vérifiez que les nomsde fichiers wheel se terminent par -any.whl ou -linux_x86_64.whl et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez au moins un fichier dépendant .whl commeles fichiers mis en surbrillance dans le répertoire wheelhouse. Le nom du fichier peut être différent,mais il doit se terminer par -any.whl ou -linux_x86_64.whl qui indique la plateforme utilisée.Toutes les plateformes, comme windows, ne sont pas prises en charge.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)

Version de l'API 2015-06-23212

Page 222: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING

| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 126).

APPIUM_WEB_PYTHON_TEST_PACKAGE_TEST_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire de tests à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez que le répertoire de tests s'y trouve, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez le répertoire tests dans le répertoire detravail.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 126).

APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAMESi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier de test valide dans l'arborescence du répertoire de tests.Décompressez votre package de test, ouvrez le répertoire de tests, vérifiez que le nom d'au moinsun fichier commence ou finit par le mot clé « test », puis réessayez.

Version de l'API 2015-06-23213

Page 223: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez le répertoire tests dans le répertoire detravail. Le nom du fichier peut être différent, mais il doit commencer par test_ ou se terminer par_test.py.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 126).

APPIUM_WEB_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le fichier requirements.txt à l'intérieur de votre package. Décompressezvotre package de test, vérifiez que le fichier requirements.txt s'y trouve, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Appium Python est valide, vous trouverez le fichier requirements.txt dans lerépertoire de travail.

.|-- requirements.txt

Version de l'API 2015-06-23214

Page 224: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION

|-- test_bundle.zip|-- tests (directory)| `-- test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

Pour plus d'informations, consultez Appium Python (p. 126).

APPIUM_WEB_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSIONSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

La version de pytest que vous utilisez est antérieure à la version 2.8.0 minimale que nous prenonsen charge. Modifiez la version de pytest du fichier requirements.txt et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier requirements.txt dans le répertoire de travail.

.|-- requirements.txt|-- test_bundle.zip|-- tests (directory)| `--test_unittest.py`-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

3. Pour connaître la version de pytest, exécutez la commande suivante :

$ grep "pytest" requirements.txt

Vous devriez obtenir une sortie similaire à ce qui suit :

pytest==2.9.0

Elle montre la version de pytest, qui est 2.9.0 dans cet exemple. Si le package Appium Python estvalide, la version de pytest doit être supérieure ou égale à 2.8.0.

Version de l'API 2015-06-23215

Page 225: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED

Pour plus d'informations, consultez Appium Python (p. 126).

APPIUM_WEB_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'installer les fichiers wheel de dépendance. Décompressez votre package de test,ouvrez le fichier requirements.txt et le répertoire wheelhouse, vérifiez que les fichiers wheel dedépendance spécifiés dans le fichier requirements.txt correspondent exactement aux fichierswheel de dépendance situés dans le répertoire wheelhouse et réessayez.

Nous vous recommandons vivement de configurer virtualenv Python pour les tests de création de package.Voici un exemple de flux de création d'un environnement virtuel à l'aide de virtualenv Python et de sonactivation :

$ virtualenv workspace$ cd workspace $ source bin/activate

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour tester l'installation des fichiers wheel, vous pouvez exécuter la commande suivante :

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

Un package Appium Python valide doit générer une sortie similaire à la suivante :

Ignoring indexes: https://pypi.python.org/simpleCollecting Appium-Python-Client==0.20 (from -r ./requirements.txt (line 1))Collecting py==1.4.31 (from -r ./requirements.txt (line 2))Collecting pytest==2.9.0 (from -r ./requirements.txt (line 3))Collecting selenium==2.52.0 (from -r ./requirements.txt (line 4))Collecting wheel==0.26.0 (from -r ./requirements.txt (line 5))Installing collected packages: selenium, Appium-Python-Client, py, pytest, wheel Found existing installation: wheel 0.29.0 Uninstalling wheel-0.29.0: Successfully uninstalled wheel-0.29.0Successfully installed Appium-Python-Client-0.20 py-1.4.31 pytest-2.9.0 selenium-2.52.0 wheel-0.26.0

3. Pour désactiver l'environnement virtuel, exécutez la commande suivante :

$ deactivate

Pour plus d'informations, consultez Appium Python (p. 126).

Version de l'API 2015-06-23216

Page 226: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAPPIUM_WEB_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED

APPIUM_WEB_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Echec de la collecte de tests dans le répertoire de tests. Décompressez votre package de test,vérifiez qu'il est valide en exécutant la commande « py.test --collect-only <chemin de votrerépertoire tests> », puis réessayez une fois que cette commande ne génère aucune erreur.

Nous vous recommandons vivement de configurer virtualenv Python pour les tests de création de package.Voici un exemple de flux de création d'un environnement virtuel à l'aide de virtualenv Python et de sonactivation :

$ virtualenv workspace$ cd workspace $ source bin/activate

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est test_bundle.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip test_bundle.zip

2. Pour installer des fichiers wheel, vous pouvez exécuter la commande suivante :

$ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

3. Pour collecter des tests, vous pouvez exécuter la commande suivante :

$ py.test --collect-only tests

Un package Appium Python valide doit générer une sortie similaire à la suivante :

==================== test session starts ====================platform darwin -- Python 2.7.11, pytest-2.9.0, py-1.4.31, pluggy-0.3.1rootdir: /Users/zhena/Desktop/Ios/tests, inifile:collected 1 items<Module 'test_unittest.py'> <UnitTestCase 'DeviceFarmAppiumWebTests'> <TestCaseFunction 'test_devicefarm'>

==================== no tests ran in 0.11 seconds ====================

4. Pour désactiver l'environnement virtuel, exécutez la commande suivante :

$ deactivate

Pour plus d'informations, consultez Appium Python (p. 126).

Version de l'API 2015-06-23217

Page 227: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCalabash

Résolution des problèmes rencontrés lors des testsCalabash dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsCalabash et recommande des solutions permettant de résoudre chaque erreur.

CALABASH_TEST_PACKAGE_UNZIP_FAILED_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip features.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package Calabash valide doit générer une sortie similaire à la suivante :

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_FEATURES_DIR_MISSING_FEATURES_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire de fonctions à l'intérieur de l'arborescence de votre package detest. Décompressez votre package de test, vérifiez que le répertoire de fonctions s'y trouve, puisréessayez.

Dans l'exemple suivant, le nom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

Version de l'API 2015-06-23218

Page 228: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCALABASH_TEST_PACKAGE_FEATURE_FILE_MISSING

$ unzip features.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Calabash est valide, vous trouverez le répertoire features dans le répertoire de travail.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_FEATURE_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier .feature valide dans l'arborescence du répertoire de fonctions.Décompressez votre package de test, puis ouvrez le répertoire de fonctions, vérifiez que celui-cicontient au moins un fichier .feature, puis réessayez.

Dans l'exemple suivant, le nom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip features.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Calabash est valide, vous trouverez au moins un fichier .feature dans le répertoirefeatures.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Version de l'API 2015-06-23219

Page 229: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCALABASH_TEST_PACKAGE_STEP_DEFINITIONS_DIR_MISSING

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_STEP_DEFINITIONS_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire step_definitions à l'intérieur de votre package. Décompressezvotre package de test, puis ouvrez le répertoire de fonctions, vérifiez que le répertoirestep_definitions se trouve dans le package, puis réessayez.

Dans l'exemple suivant, le nom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip features.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Calabash est valide, vous trouverez le répertoire step_definitions dans lerépertoire features.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_SUPPORT_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire de prise en charge à l'intérieur de votre package.Décompressez votre package de test, puis ouvrez le répertoire de fonctions, vérifiez que lerépertoire de prise en charge se trouve dans le package, puis réessayez.

Dans l'exemple suivant, le nom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip features.zip

Version de l'API 2015-06-23220

Page 230: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_STEP_DEFINITIONS_DIR

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Calabash est valide, vous trouverez le répertoire support dans le répertoire features.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_STEP_DEFINITIONS_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier ruby valide dans l'arborescence du répertoire step_definitions.Décompressez votre package de test, puis ouvrez le répertoire step_definitions, vérifiez que celui-ci contient au moins un fichier ruby, puis réessayez.

Dans l'exemple suivant, le nom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip features.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Calabash est valide, vous trouverez au moins un fichier ruby dans le répertoirestep_definitions.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | |-- one-ruby.rb | |-- folder | | `-- another-ruby.rb | `-- (any other supporting files) |-- support (directory) | `-- (.rb files) `-- (any other supporting files)

Version de l'API 2015-06-23221

Page 231: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_SUPPORT_DIR

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_RUBY_FILE_MISSING_IN_SUPPORT_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver un fichier ruby valide dans l'arborescence du répertoire support.Décompressez votre package de test, puis ouvrez le répertoire support, vérifiez que celui-cicontient au moins un fichier ruby, puis réessayez.

Dans l'exemple suivant, le nom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip features.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package Calabash est valide, vous trouverez au moins un fichier ruby dans le répertoiresupport.

.`-- features (directory) |-- my-feature-1-file-name.feature |-- my-feature-2-file-name.feature |-- my-feature-N-file-name.feature |-- step_definitions (directory) | `-- (.rb files) |-- support (directory) | |-- one-ruby.rb | |-- folder | | `-- another-ruby.rb | `-- (any other supporting files) `-- (any other supporting files)

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_EMBEDDED_SERVER_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le serveur intégré à l'intérieur de votre package. Vérifiez que le serveurse trouve dans le package en exécutant la commande « calabash-ios check <chemin de votrepackage de test> », puis réessayez après avoir trouvé le framework calabash.

Les tests Calabash contiennent un serveur Web intégré à l'intérieur de l'application iOS.

Assurez-vous que le serveur Web intégré se trouve à l'intérieur de votre application iOS. Dans l'exemplesuivant, le nom de l'application iOS est AWSDeviceFarmiOSReferenceApp.ipa.

Version de l'API 2015-06-23222

Page 232: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurCALABASH_TEST_PACKAGE_DRY_RUN_FAILED

• Copiez votre application iOS dans votre répertoire de travail, puis exécutez la commande suivante :

$ calabash-ios check AWSDeviceFarmiOSReferenceApp.ipa

Une application iOS valide doit générer une sortie similaire à la suivante :

Ipa: AWSDeviceFarmiOSReferenceApp.ipa *contains* calabash.framework0.19.0

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

CALABASH_TEST_PACKAGE_DRY_RUN_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Nous n'avons pas pu analyser rapidement vos fichiers .feature. Décompressez votre package detest, vérifiez que les fichiers sont valides en exécutant la commande « calabash --dry-run <cheminde votre répertoire features> », puis réessayez une fois que cette commande ne génère aucuneerreur.

Pendant le processus de validation du chargement, Device Farm analyse rapidement vos fonctions sansréellement les exécuter.

Assurez-vous que vos fonctions sont valides. Dans l'exemple suivant, le nom du package est features.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip features.zip

Une fois votre package décompressé, vous trouverez le répertoire de fonction à l'intérieur du répertoirede travail.

2. Pour analyser vos fonctions, exécutez la commande suivante :

$ cucumber-ios --dry-run --format json features

Un package Calabash valide doit générer une sortie similaire à la suivante :

[ { "uri": "features/homepage.feature", "id": "home-page", "keyword": "Feature", "name": "Home Page", "description": " As a Device Farm user\n I would like to be able to see examples of testing a static homepage\n So I can apply it to my future tests.", "line": 1, "elements": [ { "id": "home-page;a-valid-homepage", "keyword": "Scenario", "name": "A Valid Homepage", "description": "", "line": 6, "type": "scenario",

Version de l'API 2015-06-23223

Page 233: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurInstrumentation

"steps": [ { "keyword": "Given ", "name": "that I navigate to the \"Home\" menu category", "line": 7, "match": { "location": "/Library/Ruby/Gems/2.0.0/gems/cucumber-2.4.0/lib/cucumber/step_match.rb:98" }, "result": { "status": "skipped", "duration": 16000 } } ] } ] }]

Pour plus d'informations, consultez Calabash (p. 79) ou Calabash (p. 107).

Résolution des problèmes rencontrés lors de testsInstrumentation dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsInstrumentation et recommande des solutions permettant de résoudre chaque erreur.

INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier APK de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, lenom du package est app-debug-androidTest-unaligned.apk.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip app-debug-androidTest-unaligned.apk

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

.|-- AndroidManifest.xml|-- classes.dex|-- resources.arsc|-- LICENSE-junit.txt|-- junit (directory)

Version de l'API 2015-06-23224

Page 234: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurINSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED

`-- META-INF (directory)

Pour plus d'informations, consultez Utilisation d'Instrumentation pour Android et AWS DeviceFarm (p. 81).

INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'extraire des informations sur votre package de test. Vérifiez que le package de testest valide en exécutant la commande « aapt debug badging <chemin de votre package de test> »,puis réessayez une fois que cette commande ne génère aucune erreur.

Pendant le processus de validation du chargement, Device Farm analyse les informations de la sortie de lacommande aapt debug badging <path to your package>.

Assurez-vous que vous pouvez exécuter avec succès cette commande sur votre package de testInstrumentation.

Dans l'exemple suivant, le nom du package est app-debug-androidTest-unaligned.apk.

• Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ aapt debug badging app-debug-androidTest-unaligned.apk

Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'sdkVersion:'9'targetSdkVersion:'22'application-label:'Test-api'application: label='Test-api' icon=''application-debuggableuses-library:'android.test.runner'feature-group: label=''uses-feature: name='android.hardware.touchscreen'uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps'supports-screens: 'small' 'normal' 'large' 'xlarge'supports-any-density: 'true'locales: '--_--'densities: '160'

Pour plus d'informations, consultez Utilisation d'Instrumentation pour Android et AWS DeviceFarm (p. 81).

INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur de l'exécuteur d'instrumentation dans le fichierAndroidManifest.xml. Vérifiez que le package de test est valide en exécutant la commande « aapt

Version de l'API 2015-06-23225

Page 235: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurINSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED

dump xmltree <chemin de votre package de test> AndroidManifest.xml » et réessayez après avoirtrouvé la valeur de l'exécuteur d'instrumentation derrière le mot clé « instrumentation ».

Pendant le processus de validation du chargement, Device Farm analyse la valeur de l'exécuteurd'instrumentation dans l'arborescence d'analyse XML d'un fichier XML contenu dans le package.Vous pouvez utilisez la commande suivante : aapt dump xmltree <path to your package>AndroidManifest.xml.

Assurez-vous que vous pouvez exécuter cette commande sur votre package de test Instrumentation ettrouver la valeur d'instrumentation avec succès.

Dans l'exemple suivant, le nom du package est app-debug-androidTest-unaligned.apk.

• Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml | grep -A5 "instrumentation"

Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0

Pour plus d'informations, consultez Utilisation d'Instrumentation pour Android et AWS DeviceFarm (p. 81).

INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le fichier AndroidManifest.xml valide à l'intérieur de votre package detest. Vérifiez que le package de test est valide en exécutant la commande « aapt dump xmltree<chemin de votre package de test> AndroidManifest.xml », puis réessayez une fois que cettecommande ne génère aucune erreur.

Pendant le processus de validation du chargement, Device Farm analyse les informations del'arborescence d'analyse XML d'un fichier XML contenu dans le package à l'aide de la commandesuivante : aapt dump xmltree <path to your package> AndroidManifest.xml.

Assurez-vous que vous pouvez exécuter avec succès cette commande sur votre package de testd'instrumentation.

Dans l'exemple suivant, le nom du package est app-debug-androidTest-unaligned.apk.

• Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

Version de l'API 2015-06-23226

Page 236: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurINSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING

$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml

Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: package="com.amazon.aws.adf.android.referenceapp.test" (Raw: "com.amazon.aws.adf.android.referenceapp.test") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=5) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0 E: application (line=16) A: android:label(0x01010001)=@0x7f020000 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff E: uses-library (line=17) A: android:name(0x01010003)="android.test.runner" (Raw: "android.test.runner")

Pour plus d'informations, consultez Utilisation d'Instrumentation pour Android et AWS DeviceFarm (p. 81).

INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le nom du package à l'intérieur de votre package de test. Vérifiez que lepackage de test est valide en exécutant la commande « aapt debug badging <chemin de votrepackage de test> » et réessayez après avoir trouvé la valeur du nom du package derrière le motclé « package: name ».

Pendant le processus de validation du chargement, Device Farm analyse la valeur du nom du package dela sortie de la commande suivante : aapt debug badging <path to your package>.

Assurez-vous que vous pouvez exécuter cette commande sur votre package de test Instrumentation ettrouver la valeur du nom du package avec succès.

Dans l'exemple suivant, le nom du package est app-debug-androidTest-unaligned.apk.

• Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ aapt debug badging app-debug-androidTest-unaligned.apk | grep "package: name="

Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

Version de l'API 2015-06-23227

Page 237: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurApplications iOS

package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'

Pour plus d'informations, consultez Utilisation d'Instrumentation pour Android et AWS DeviceFarm (p. 81).

Résolution des problèmes rencontrés lors de testsd'applications iOS dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsd'applications iOS et recommande des solutions permettant de résoudre chaque erreur.

Note

Les instructions ci-dessous sont basées sur Linux x86_64 et Mac.

IOS_APP_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre application. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de l'application sans erreurs. Dans l'exemplesuivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_PAYLOAD_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Version de l'API 2015-06-23228

Page 238: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIOS_APP_APP_DIR_MISSING

Warning

Impossible de trouver le répertoire Payload à l'intérieur de votre application. Décompressez votreapplication, vérifiez que le répertoire Payload s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package de l'application iOS est valide, vous trouverez le répertoire Payload dans le répertoirede travail.

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_APP_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire .app à l'intérieur de votre répertoire Payload. Décompressezvotre application, puis ouvrez le répertoire Payload, vérifiez que le répertoire .app est à l'intérieurdu répertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package de l'application iOS est valide, vous trouverez un répertoire .app, commeAWSDeviceFarmiOSReferenceApp.app dans notre exemple, dans le répertoire Payload.

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory)

Version de l'API 2015-06-23229

Page 239: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIOS_APP_PLIST_FILE_MISSING

|-- Info.plist `-- (any other files)

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_PLIST_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le fichier Info.plist à l'intérieur du répertoire .app. Décompressez votreapplication, puis ouvrez le répertoire .app, vérifiez que le fichier Info.plist est à l'intérieur durépertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package de l'application iOS est valide, vous trouverez le fichier Info.plist dans le répertoire.app comme AWSDeviceFarmiOSReferenceApp.app dans notre exemple.

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_CPU_ARCHITECTURE_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur de l'architecture d'UC à l'intérieur du fichier Info.plist.Décompressez votre application, puis ouvrez le fichier Info.plist situé à l'intérieur durépertoire .app, vérifiez que la clé « UIRequiredDeviceCapabilities » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

Version de l'API 2015-06-23230

Page 240: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIOS_APP_PLATFORM_VALUE_MISSING

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app commeAWSDeviceFarmiOSReferenceApp.app dans notre exemple :

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Pour rechercher la valeur de l'architecture d'UC, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['UIRequiredDeviceCapabilities']

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

['armv7']

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_PLATFORM_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur de la plateforme à l'intérieur du fichier Info.plist. Décompressezvotre application, puis ouvrez le fichier Info.plist situé à l'intérieur du répertoire .app, vérifiez que laclé « CFBundleSupportedPlatforms » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Version de l'API 2015-06-23231

Page 241: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIOS_APP_WRONG_PLATFORM_DEVICE_VALUE

Vous devriez trouver le fichier Info.plist dans un répertoire .app commeAWSDeviceFarmiOSReferenceApp.app dans notre exemple :

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Pour rechercher la valeur de la plateforme, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleSupportedPlatforms']

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

['iPhoneOS']

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_WRONG_PLATFORM_DEVICE_VALUESi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Nous avons découvert que la valeur de l'appareil de la plateforme était incorrecte dans le fichierInfo.plist. Décompressez votre application, puis ouvrez le fichier Info.plist situé à l'intérieur durépertoire .app, vérifiez que la valeur de la clé « CFBundleSupportedPlatforms » ne contient pas lemot clé « simulator », puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app commeAWSDeviceFarmiOSReferenceApp.app dans notre exemple :

Version de l'API 2015-06-23232

Page 242: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIOS_APP_FORM_FACTOR_VALUE_MISSING

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Pour rechercher la valeur de la plateforme, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleSupportedPlatforms']

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

['iPhoneOS']

Si l'application iOS est valide, la valeur ne doit pas contenir le mot clé simulator.

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_FORM_FACTOR_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du facteur de format à l'intérieur du fichier Info.plist. Décompressezvotre application, puis ouvrez le fichier Info.plist situé à l'intérieur du répertoire .app, vérifiez que laclé « UIDeviceFamily » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app commeAWSDeviceFarmiOSReferenceApp.app dans notre exemple :

.

Version de l'API 2015-06-23233

Page 243: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIOS_APP_PACKAGE_NAME_VALUE_MISSING

`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Pour rechercher la valeur du facteur de formulaire, vous pouvez ouvrir Info.plist à l'aide de Xcode oude Python.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['UIDeviceFamily']

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

[1, 2]

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_PACKAGE_NAME_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du nom du package à l'intérieur du fichier Info.plist. Décompressezvotre application, puis ouvrez le fichier Info.plist situé à l'intérieur du répertoire .app, vérifiez que laclé « CFBundleIdentifier » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app commeAWSDeviceFarmiOSReferenceApp.app dans notre exemple :

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

Version de l'API 2015-06-23234

Page 244: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIOS_APP_EXECUTABLE_VALUE_MISSING

3. Pour rechercher la valeur du nom du package, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleIdentifier']

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

Amazon.AWSDeviceFarmiOSReferenceApp

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

IOS_APP_EXECUTABLE_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du fichier exécutable à l'intérieur du fichier Info.plist.Décompressez votre application, puis ouvrez le fichier Info.plist situé à l'intérieur durépertoire .app, vérifiez que la clé « CFBundleExecutable » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est AWSDeviceFarmiOSReferenceApp.ipa.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip AWSDeviceFarmiOSReferenceApp.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app commeAWSDeviceFarmiOSReferenceApp.app dans notre exemple :

.`-- Payload (directory) `-- AWSDeviceFarmiOSReferenceApp.app (directory) |-- Info.plist `-- (any other files)

3. Pour rechercher la valeur du fichier exécutable, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :Version de l'API 2015-06-23

235

Page 245: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurUI Automator

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/AWSDeviceFarmiOSReferenceApp-cal.app/Info.plist')print info_plist['CFBundleExecutable']

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

AWSDeviceFarmiOSReferenceApp

Pour plus d'informations, consultez Utilisation de tests iOS dans AWS Device Farm (p. 84).

Résolution des problèmes rencontrés lors des testsd'UI Automator dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des tests d'UIAutomator et recommande des solutions permettant de résoudre chaque erreur.

UIAUTOMATOR_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier JAR de test. Vérifiez que le fichier est valide et réessayez.

Note

Les instructions ci-dessous sont basées sur Linux x86_64 et Mac.

Assurez-vous que vous pouvez décompresser le package de l'application sans erreurs. Dans l'exemplesuivant, le nom du package est com.uiautomator.example.jar.

1. Copiez le package de votre application dans votre répertoire de travail, puis exécutez la commandesuivante :

$ unzip com.uiautomator.example.jar

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package UI Automator valide doit générer une sortie similaire à la suivante :

.|-- classes.dex |-- META-INF (directory)| `-- MANIFEST.MF

Version de l'API 2015-06-23236

Page 246: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTest

`-- (any other files)

Pour plus d'informations, consultez UI Automator (p. 82).

Résolution des problèmes rencontrés lors des testsXCTest dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsXCTest et recommande des solutions permettant de résoudre chaque erreur.

Note

Les instructions ci-dessous présument que vous utilisez MacOS.

XCTEST_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier ZIP de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de l'application sans erreurs. Dans l'exemplesuivant, le nom du package est swiftExampleTests.xctest-1.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swiftExampleTests.xctest-1.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package XCTest valide doit générer une sortie similaire à la suivante :

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

Pour plus d'informations, consultez Utiliser XCTest pour iOS et AWS Device Farm (p. 109).

XCTEST_TEST_PACKAGE_XCTEST_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire .xctest à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez que le répertoire .xctest s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est swiftExampleTests.xctest-1.zip.

Version de l'API 2015-06-23237

Page 247: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_TEST_PACKAGE_PLIST_FILE_MISSING

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swiftExampleTests.xctest-1.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package XCTest est valide, vous trouverez un répertoire portant un nom similaire àswiftExampleTests.xctest dans le répertoire de travail. Le nom doit se terminer par .xctest.

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

Pour plus d'informations, consultez Utiliser XCTest pour iOS et AWS Device Farm (p. 109).

XCTEST_TEST_PACKAGE_PLIST_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le fichier Info.plist à l'intérieur du répertoire .xctest. Décompressez votrepackage de test, puis ouvrez le répertoire .xctest, vérifiez que le fichier Info.plist se trouve dans lerépertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est swiftExampleTests.xctest-1.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swiftExampleTests.xctest-1.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package XCTest est valide, vous trouverez le fichier Info.plist dans le répertoire .xctest.Dans notre exemple ci-dessous, le répertoire est appelé swiftExampleTests.xctest.

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

Pour plus d'informations, consultez Utiliser XCTest pour iOS et AWS Device Farm (p. 109).

XCTEST_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Version de l'API 2015-06-23238

Page 248: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_TEST_PACKAGE_EXECUTABLE_VALUE_MISSING

Warning

Impossible de trouver la valeur du nom du package à l'intérieur du fichier Info.plist. Décompressezvotre package de test, puis ouvrez le fichier Info.plist, vérifiez que la clé « CFBundleIdentifier » estspécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est swiftExampleTests.xctest-1.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swiftExampleTests.xctest-1.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .xctest commeswiftExampleTests.xctest dans notre exemple :

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

3. Pour rechercher la valeur du nom du package, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('swiftExampleTests.xctest/Info.plist')print info_plist['CFBundleIdentifier']

Un package d'application XCTest valide doit générer une sortie similaire à la suivante :

com.amazon.kanapka.swiftExampleTests

Pour plus d'informations, consultez Utiliser XCTest pour iOS et AWS Device Farm (p. 109).

XCTEST_TEST_PACKAGE_EXECUTABLE_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du fichier exécutable à l'intérieur du fichier Info.plist.Décompressez votre package de test, puis ouvrez le fichier Info.plist, vérifiez que la clé« CFBundleExecutable » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est swiftExampleTests.xctest-1.zip.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

Version de l'API 2015-06-23239

Page 249: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTest UI

$ unzip swiftExampleTests.xctest-1.zip

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .xctest commeswiftExampleTests.xctest dans notre exemple :

.`-- swiftExampleTests.xctest (directory) |-- Info.plist `-- (any other files)

3. Pour rechercher la valeur du nom du package, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('swiftExampleTests.xctest/Info.plist')print info_plist['CFBundleExecutable']

Un package d'application XCTest valide doit générer une sortie similaire à la suivante :

swiftExampleTests

Pour plus d'informations, consultez Utiliser XCTest pour iOS et AWS Device Farm (p. 109).

Résolution des problèmes rencontrés lors des testsXCTest UI dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des testsXCTest UI et recommande des solutions permettant de résoudre chaque erreur.

Note

Les instructions ci-dessous sont basées sur Linux x86_64 et Mac.

XCTEST_UI_TEST_PACKAGE_UNZIP_FAILEDSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible d'ouvrir votre fichier IPA de test. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de l'application sans erreurs. Dans l'exemplesuivant, le nom du package est swift-sample-UI.ipa.

Version de l'API 2015-06-23240

Page 250: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_PAYLOAD_DIR_MISSING

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Un package d'application iOS valide doit générer une sortie similaire à la suivante :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_PAYLOAD_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire Payload à l'intérieur de votre package. Décompressez votrepackage de test, vérifiez que le répertoire Payload s'y trouve, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package XCTest UI est valide, vous trouverez le répertoire Payload dans le répertoire de travail.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Pour plus d'informations, consultez XCTest UI (p. 111).

Version de l'API 2015-06-23241

Page 251: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_APP_DIR_MISSING

XCTEST_UI_TEST_PACKAGE_APP_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire .app à l'intérieur de votre répertoire Payload. Décompressezvotre package de test, puis ouvrez le répertoire Payload, vérifiez que le répertoire .app est àl'intérieur du répertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package XCTest UI est valide, vous trouverez un répertoire .app, comme swift-sampleUITests-Runner.app dans notre exemple, dans le répertoire Payload.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_PLUGINS_DIR_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire Plugins à l'intérieur de votre répertoire .app. Décompressezvotre package de test, puis ouvrez le répertoire .app, vérifiez que le répertoire Plugins est àl'intérieur du répertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Version de l'API 2015-06-23242

Page 252: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_XCTEST_DIR_MISSING_IN_PLUGINS_DIR

Si le package XCTest UI est valide, vous trouverez le répertoire Plugins dans le répertoire .app.Dans notre exemple, le répertoire est appelé swift-sampleUITests-Runner.app.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_XCTEST_DIR_MISSING_IN_PLUGINS_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le répertoire .xctest à l'intérieur de votre répertoire Plugins. Décompressezvotre package de test, puis ouvrez le répertoire Plugins, vérifiez que le répertoire .xctest est àl'intérieur du répertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package XCTest UI est valide, vous trouverez un répertoire .xctest dans le répertoirePlugins. Dans notre exemple, le répertoire est appelé swift-sampleUITests.xctest.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Version de l'API 2015-06-23243

Page 253: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING_IN_XCTEST_DIR

Warning

Impossible de trouver le fichier Info.plist à l'intérieur du répertoire .app. Décompressez votrepackage de test, puis ouvrez le répertoire .app, vérifiez que le fichier Info.plist se trouve dans lerépertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package XCTest UI est valide, vous trouverez le fichier Info.plist dans le répertoire .app.Dans notre exemple ci-dessous, le répertoire est appelé swift-sampleUITests-Runner.app.

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_PLIST_FILE_MISSING_IN_XCTEST_DIRSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver le fichier Info.plist à l'intérieur du répertoire .xctest. Décompressez votrepackage de test, puis ouvrez le répertoire .xctest, vérifiez que le fichier Info.plist se trouve dans lerépertoire, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Si le package XCTest UI est valide, vous trouverez le fichier Info.plist dans le répertoire .xctest.Dans notre exemple ci-dessous, le répertoire est appelé swift-sampleUITests.xctest.

Version de l'API 2015-06-23244

Page 254: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_CPU_ARCHITECTURE_VALUE_MISSING

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_CPU_ARCHITECTURE_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur de l'architecture d'UC à l'intérieur du fichier Info.plist.Décompressez votre package de test, puis ouvrez le fichier Info.plist situé à l'intérieur durépertoire .app, vérifiez que la clé « UIRequiredDeviceCapabilities » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur de l'architecture d'UC, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')

Version de l'API 2015-06-23245

Page 255: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_PLATFORM_VALUE_MISSING

print info_plist['UIRequiredDeviceCapabilities']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

['armv7']

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_PLATFORM_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur de la plateforme à l'intérieur de Info.plist. Décompressez votrepackage de test, puis ouvrez le fichier Info.plist situé à l'intérieur du répertoire .app, vérifiez que laclé « CFBundleSupportedPlatforms » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur de la plateforme, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['CFBundleSupportedPlatforms']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

Version de l'API 2015-06-23246

Page 256: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_WRONG_PLATFORM_DEVICE_VALUE

['iPhoneOS']

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_WRONG_PLATFORM_DEVICE_VALUESi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Nous avons découvert que la valeur de l'appareil de la plateforme était incorrecte dans le fichierInfo.plist. Décompressez votre package de test, puis ouvrez le fichier Info.plist situé à l'intérieur durépertoire .app, vérifiez que la valeur de la clé « CFBundleSupportedPlatforms » ne contient pas lemot clé « simulator », puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur de la plateforme, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['CFBundleSupportedPlatforms']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

['iPhoneOS']

Version de l'API 2015-06-23247

Page 257: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_FORM_FACTOR_VALUE_MISSING

Si le package XCTest UI est valide, la valeur ne doit pas contenir le mot clé simulator.

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_FORM_FACTOR_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du facteur de format à l'intérieur de Info.plist. Décompressez votrepackage de test, puis ouvrez le fichier Info.plist situé à l'intérieur du répertoire .app, vérifiez que laclé « UIDeviceFamily » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur du facteur de formulaire, vous pouvez ouvrir Info.plist à l'aide de Xcode oude Python.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['UIDeviceFamily']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

[1, 2]

Pour plus d'informations, consultez XCTest UI (p. 111).

Version de l'API 2015-06-23248

Page 258: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSING

XCTEST_UI_TEST_PACKAGE_PACKAGE_NAME_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du nom du package à l'intérieur du fichier Info.plist. Décompressezvotre package de test, puis ouvrez le fichier Info.plist situé à l'intérieur du répertoire .app, vérifiezque la clé « CFBundleIdentifier » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur du nom du package, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['CFBundleIdentifier']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

com.apple.test.swift-sampleUITests-Runner

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_EXECUTABLE_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Version de l'API 2015-06-23249

Page 259: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING

Warning

Impossible de trouver la valeur du fichier exécutable à l'intérieur du fichier Info.plist.Décompressez votre package de test, puis ouvrez le fichier Info.plist situé à l'intérieur durépertoire .app, vérifiez que la clé « CFBundleExecutable » est spécifiée, puis réessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur du fichier exécutable, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Info.plist')print info_plist['CFBundleExecutable']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

XCTRunner

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur du nom du package à l'intérieur du fichier Info.plist dans lerépertoire .xctest. Décompressez votre package de test, puis ouvrez le fichier Info.plist situé

Version de l'API 2015-06-23250

Page 260: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSING

à l'intérieur du répertoire .xctest, vérifiez que la clé « CFBundleIdentifier » est spécifiée, puisréessayez.

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur du nom du package, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Plugins/swift-sampleUITests.xctest/Info.plist')print info_plist['CFBundleIdentifier']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

com.amazon.swift-sampleUITests

Pour plus d'informations, consultez XCTest UI (p. 111).

XCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSINGSi le message suivant s'affiche, procédez comme suit pour corriger le problème.

Warning

Impossible de trouver la valeur exécutable à l'intérieur du fichier Info.plist dans le répertoire .xctest.Décompressez votre package de test, puis ouvrez le fichier Info.plist situé à l'intérieur durépertoire .xctest, vérifiez que la clé « CFBundleExecutable » est spécifiée, puis réessayez.

Version de l'API 2015-06-23251

Page 261: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurXCTEST_UI_TEST_PACKAGE_TEST_EXECUTABLE_VALUE_MISSING

Dans l'exemple suivant, le nom du package est swift-sample-UI.ipa.

1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

$ unzip swift-sample-UI.ipa

2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé,exécutez la commande suivante :

$ tree .

Vous devriez trouver le fichier Info.plist dans un répertoire .app comme swift-sampleUITests-Runner.app dans notre exemple :

.`-- Payload (directory) `-- swift-sampleUITests-Runner.app (directory) |-- Info.plist |-- Plugins (directory) | `swift-sampleUITests.xctest (directory) | |-- Info.plist | `-- (any other files) `-- (any other files)

3. Pour rechercher la valeur du fichier exécutable, vous pouvez ouvrir Info.plist à l'aide de Xcode ou dePython.

Pour Python, vous pouvez installer le module biplist en exécutant la commande suivante :

$ pip install biplist

4. Ensuite, ouvrez Python et exécutez la commande suivante :

import biplistinfo_plist = biplist.readPlist('Payload/swift-sampleUITests-Runner.app/Plugins/swift-sampleUITests.xctest/Info.plist')print info_plist['CFBundleExecutable']

Un package XCTest UI valide doit générer une sortie similaire à la suivante :

swift-sampleUITests

Pour plus d'informations, consultez XCTest UI (p. 111).

Version de l'API 2015-06-23252

Page 262: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurIdentity and Access Management

Sécurité dans AWS Device FarmChez AWS, la sécurité dans le cloud est notre priorité numéro 1. En tant que client AWS, vousbénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences desorganisations les plus pointilleuses en termes de sécurité.

La sécurité est une responsabilité partagée entre AWS et vous-même. Le modèle de responsabilitépartagée décrit ceci comme la sécurité du cloud et la sécurité dans le cloud :

• La sécurité du cloud – AWS est responsable de la protection de l'infrastructure qui exécute des servicesAWS dans le cloud AWS. AWS vous fournit également les services que vous pouvez utiliser en toutesécurité. Des auditeurs tiers testent et vérifient régulièrement l'efficacité de notre sécurité dans lecadre des programmes de conformité AWS. Pour en savoir plus sur les programmes de conformité quis'appliquent à AWS Device Farm, veuillez consulter Services AWS concernés par le programme deconformité.

• Sécurité dans le cloud – Votre responsabilité est déterminée par le service AWS que vous utilisez. Vousêtes également responsable d'autres facteurs, y compris la sensibilité de vos données, les exigences devotre entreprise,et la législation et la réglementation applicables.

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagéelors de l'utilisation d'Device Farm. Les rubriques suivantes vous montrent comment configurer Device Farmpour répondre à vos objectifs de sécurité et de conformité. Vous pouvez également apprendre à utiliserd'autres services AWS qui vous aident à surveiller et à sécuriser vos ressources Device Farm.

Rubriques• Identity and Access Management dans AWS Device Farm (p. 253)• Validation de la conformité pour AWS Device Farm (p. 265)• Protection des données dans AWS Device Farm (p. 266)• Résilience dans AWS Device Farm (p. 268)• Sécurité de l'infrastructure dans AWS Device Farm (p. 269)• Analyse et gestion des vulnérabilités de configuration dans Device Farm (p. 270)• Réponse aux incidents dans Device Farm (p. 270)• Journalisation et surveillance dans Device Farm (p. 270)• Bonnes pratiques de sécurité pour Device Farm (p. 271)

Identity and Access Management dans AWS DeviceFarm

Public cibléVotre utilisation d'AWS Identity and Access Management (IAM) évolue selon la tâche que vous réalisezdans Device Farm.

Utilisateur du service – Si vous utilisez le service Device Farm pour effectuer votre tâche, votreadministrateur vous fournit les informations d'identification et les autorisations dont vous avez besoin. Plusvous utiliserez de fonctionnalités Device Farm pour effectuer votre travail, plus vous pourrez avoir besoind'autorisations supplémentaires. Comprendre la gestion des accès peut vous aider à demander à votre

Version de l'API 2015-06-23253

Page 263: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAuthentification avec des identités

administrateur les autorisations appropriées. Si vous ne pouvez pas accéder à une fonctionnalité dansDevice Farm, consultez Résolution des problèmes d'identité et d'accès AWS Device Farm (p. 263).

Administrateur du service –Si vous êtes le responsable des ressources Device Farm de votreentreprise, vous bénéficiez probablement d'un accès total à Device Farm. C'est à vous de déterminer lesfonctionnalités et les ressources Device Farm auxquelles vos employés pourront accéder. Vous devezensuite soumettre les demandes à votre administrateur IAM pour modifier les autorisations des utilisateursde votre service. Consultez les informations sur cette page pour comprendre les concepts de base d'IAM.Pour en savoir plus sur la façon dont votre entreprise peut utiliser IAM avec Device Farm, consultezFonctionnement d'AWS Device Farm avec IAM (p. 256).

Administrateur IAM – Si vous êtes un administrateur IAM, vous souhaiterez peut-être obtenir des détailssur la façon dont vous pouvez écrire des stratégies pour gérer l'accès à Device Farm. Pour obtenir desexemples de stratégies Device Farm basées sur l'identité que vous pouvez utiliser dans IAM, consultezExemples de stratégies AWS Device Farm basées sur l'identité (p. 260).

Authentification avec des identitésL'authentification correspond au processus par lequel vous vous connectez à AWS via vos informationsd'identification. Pour plus d'informations sur la signature à l’aide d’AWS Management Console, consultezLa console et la page de connexion IAM dans le IAM Guide de l'utilisateur.

Vous devez être authentifié (connecté à AWS) en tant que Utilisateur racine d'un compte AWS ouutilisateurIAM, ou en assumant un rôle IAM. Vous pouvez également utiliser l’authentification de connexionunique de votre entreprise ou vous connecter via Google ou Facebook. Dans ce cas, votre administrateuraura précédemment configuré une fédération d’identités avec des rôles IAM. Lorsque vous accédez à AWSavec des informations d’identification d’une autre entreprise, vous assumez indirectement un rôle.

Pour vous connecter directement à la AWS Management Console, utilisez votre mot de passe avec votree-mail utilisateur racine ou votre nom d’utilisateur IAM. Vous pouvez accéder à AWS par programmationavec vos clés d’accès utilisateur utilisateur racine ou IAM. AWS fournit un kit de développement logiciel(SDK) et des outils de ligne de commande pour signer de manière cryptographique votre requête avec vosinformations d'identification. Si vous n'utilisez pas les outils AWS, vous devez signer la demande vous-même. Pour ce faire, utilisez Signature Version 4, un protocole permettant d’authentifier les demandesd'API entrantes. Pour en savoir plus sur l'authentification des demandes, consultez Processus de signatureSignature Version 4 dans la documentation AWS General Reference.

Quelle que soit la méthode d'authentification que vous utilisez, vous devrez peut-être également fournir desinformations de sécurité supplémentaires. Par exemple, AWS vous recommande d'utiliser l'authentificationmulti-facteurs (MFA) pour améliorer la sécurité de votre compte. Pour en savoir plus, consultez Utilisationde Multi-Factor Authentication (MFA) dans AWS dans le IAM Guide de l'utilisateur.

Utilisateur racine d'un compte AWSLorsque vous créez un compte AWS, vous commencez avec une seule identité de connexion disposantd'un accès complet à tous les services et ressources AWS du compte. Cette identité est appelée lautilisateur racinedu compte AWS et elle est accessible après connexion à l'aide de l'adresse e-mail et dumot de passe utilisés pour la création du compte. Il est vivement recommandé de ne pas utiliser l'utilisateurracine pour vos tâches quotidiennes, y compris pour les tâches administratives. Au lieu de cela, respectezla bonne pratique qui consiste à avoir recours à l'utilisateur racine uniquement pour créer le premierutilisateurIAM. Ensuite, mettez en sécurité les informations d'identification de l'utilisateur racine et utilisez-les pour effectuer uniquement certaines tâches de gestion des comptes et des services.

Utilisateurs et groupes IAMUn utilisateur IAM est une identité dans votre compte AWS qui dispose d'autorisations spécifiques pourune seule personne ou application. Un utilisateur IAM peut disposer d'informations d'identification à longterme comme un nom d'utilisateur et un mot de passe ou un ensemble de clés d'accès. Pour savoir

Version de l'API 2015-06-23254

Page 264: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurAuthentification avec des identités

comment générer des clés d'accès, consultez Gestion des clés d’accès pour les utilisateurs IAM dans leIAM Guide de l'utilisateur. Lorsque vous générez des clés d'accès pour un utilisateur IAM, veillez à afficheret enregistrer la paire de clés de manière sécurisée. Vous ne pourrez plus récupérer la clé d'accès secrèteà l'avenir. Au lieu de cela, vous devrez générer une nouvelle paire de clés d'accès.

Un groupe IAM est une identité qui spécifie un ensemble d’utilisateurs IAM. Vous ne pouvez pas vousconnecter en tant que groupe. Vous pouvez utiliser les groupes pour spécifier des autorisations pourplusieurs utilisateurs à la fois. Les groupes permettent de gérer plus facilement les autorisations pourde grands ensembles d'utilisateurs. Par exemple, vous pouvez avoir un groupe nommé Admins IAM etaccorder à ce groupe les autorisations leur permettant d'administrer des ressources IAM.

Les utilisateurs sont différents des rôles. Un utilisateur est associé de manière unique à une personneou une application, alors qu’un rôle est conçu pour être endossé par tout utilisateur qui en a besoin.Les utilisateurs disposent d'informations d'identification permanentes, mais les rôles fournissent desinformations d'identification temporaires. Pour plus de détails, consultez Quand créer un utilisateur IAM (aulieu d'un rôle) dans le IAM Guide de l'utilisateur.

Rôles IAMUn rôle IAM est une entité au sein de votre compte AWS qui dispose d'autorisations spécifiques. Leconcept ressemble à celui d’utilisateur IAM, mais un rôle n'est pas associé à une personne en particulier.Vous pouvez temporairement endosser un rôle IAM dans l’AWS Management Console grâce auchangement de rôle. Vous pouvez obtenir un rôle en appelant une opération d’API AWS CLI ou AWS àl'aide d'une URL personnalisée. Pour plus d'informations sur les méthodes d'utilisation des rôles, consultezUtilisation de rôles IAM dans le IAM Guide de l'utilisateur.

Les rôles IAM avec des informations d'identification temporaires sont utiles dans les cas suivants :

• Autorisations utilisateur IAM temporaires – Un utilisateur IAM peut endosser un rôle IAM pour accepterdifférentes autorisations temporaires concernant une tâche spécifique.

• Accès d'utilisateurs fédérés – Au lieu de créer un utilisateur IAM, vous pouvez utiliser des identitésd'utilisateur préexistantes provenant d'AWS Directory Service, de l'annuaire d'utilisateurs de votreentreprise ou d'un fournisseur d'identité web. On parle alors d'utilisateurs fédérés. AWS attribue un rôleà un utilisateur fédéré lorsque l'accès est demandé via un fournisseur d'identité. Pour plus d'informationssur les utilisateurs fédérés, consultez Utilisateurs fédérés et rôles dans le IAM Guide de l'utilisateur.

• Accès entre comptes – Vous pouvez utiliser un rôle IAM pour permettre à un utilisateur (mandatairede confiance) d'un compte différent d'accéder aux ressources de votre compte. Les rôles constituentle principal moyen d'accorder l'accès entre plusieurs comptes. Toutefois, certains services AWS vouspermettent d'attacher une stratégie directement à une ressource (au lieu d'utiliser un rôle en tant queproxy). Pour en savoir plus sur la différence entre les rôles et les stratégies basées sur les ressourcespour l'accès entre comptes, consultez Différence entre les rôles IAM et les stratégies basées sur lesressources dans le IAM Guide de l'utilisateur.

• Accès à un service AWS –Un rôle de service est un rôle IAM qu'un service assume pour effectuer desactions dans votre compte en votre nom. Lorsque vous configurez certains environnements de servicesAWS, vous devez définir un rôle que ce service devra assumer. Ce rôle de service doit comprendretoutes les autorisations nécessaires pour que le service puisse accéder aux ressources AWS dont il abesoin. Les rôles de service varient d'un service à un service, mais nombre d'entre eux vous permettentde choisir vos autorisations, tant que vous respectez les exigences documentées pour le service enquestion. Les rôles de service fournissent un accès uniquement au sein de votre compte et ne peuventpas être utilisés pour accorder l'accès à des services dans d'autres comptes. Vous créez, modifiezet supprimez un rôle de service à partir d'IAM. Par exemple, vous pouvez créer un rôle qui permet àAmazon Redshift d'accéder à un compartiment Amazon S3 en votre nom, puis de charger les donnéesstockées dans ce compartiment dans un cluster Amazon Redshift. Pour plus d'informations, consultezCréation d'un rôle pour déléguer des autorisations à un service AWS dans le IAM Guide de l'utilisateur.

• Applications qui s'exécutent sur Amazon EC2 –Vous pouvez utiliser un rôle IAM pour gérer desinformations d'identification temporaires pour les applications qui s'exécutent sur une instance EC2 eteffectuent des demandes d'API AWS CLI ou AWS. Cette solution est préférable au stockage des clés

Version de l'API 2015-06-23255

Page 265: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurFonctionnement d'AWS Device Farm avec IAM

d'accès au sein de l'instance EC2. Pour attribuer un rôle AWS à une instance EC2 et le rendre disponibleà toutes les applications associées, vous pouvez créer un profil d'instance attaché à l'instance. Un profild'instance contient le rôle et permet aux programmes qui s'exécutent sur l'instance EC2 d'obtenir desinformations d'identification temporaires. Pour plus d'informations, consultez Utilisation d'un rôle IAMpour accorder des autorisations à des applications s'exécutant sur des instances Amazon EC2 dans leIAM Guide de l'utilisateur.

Pour savoir si vous devez utiliser ces rôles IAM ou non, consultez Quand créer un rôle IAM (au lieu d'unutilisateur) dans le IAM Guide de l'utilisateur.

Fonctionnement d'AWS Device Farm avec IAMAvant d'utiliser IAM pour gérer l'accès à Device Farm, vous devez comprendre quelles sont les fonctionsIAM disponibles à utiliser avec Device Farm. Pour obtenir une vue d'ensemble de la façon dont DeviceFarm et d'autres services AWS fonctionnent avec IAM, consultez Services AWS qui fonctionnent avec IAMdans le IAM Guide de l'utilisateur.

Rubriques• Stratégies Device Farm basées sur l'identité (p. 256)• Stratégies Device Farm basées sur les ressources (p. 258)• Liste de contrôle d'accès (ACL) (p. 258)• Autorisation basée sur les balises Device Farm (p. 258)• Rôles IAM Device Farm (p. 258)

Stratégies Device Farm basées sur l'identitéAvec les stratégies IAM basées sur l'identité, vous pouvez spécifier des actions et ressources autoriséesou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. Device Farmprend en charge des actions, des ressources et des clés de condition spécifiques. Pour en savoir plussur tous les éléments que vous utilisez dans une stratégie JSON, consultez Références des éléments destratégie JSON IAM dans le IAM Guide de l'utilisateur.

ActionsL'élément Action d'une stratégie basée sur une identité IAM décrit les actions spécifiques qui serontautorisées ou refusées par la stratégie. Les actions de stratégie possèdent généralement le même nomque l'opération d'API AWS associée. L'action est utilisée dans une stratégie pour permettre d'effectuerl'opération associée.

Les actions de stratégie dans Device Farm utilisent le préfixe suivant avant l'action : devicefarm:.Par exemple, pour accorder à une personne l'autorisation de lancer des sessions Selenium avecl’opération d’API Device Farm desktop browser testing CreateTestGridUrl, vous devez inclure l’actiondevicefarm:CreateTestGridUrl dans la stratégie. Les déclarations de stratégie doivent inclure unélément Action ou NotAction. Device Farm définit son propre ensemble d'actions qui décrivent lestâches que vous pouvez effectuer avec ce service.

Pour spécifier plusieurs actions dans une seule déclaration, séparez-les par des virgules comme suit :

"Action": [ "devicefarm:action1", "devicefarm:action2"

Vous pouvez aussi spécifier plusieurs actions à l'aide de caractères génériques (*). Par exemple, pourspécifier toutes les actions qui commencent par le mot List, incluez l'action suivante :

Version de l'API 2015-06-23256

Page 266: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurFonctionnement d'AWS Device Farm avec IAM

"Action": "devicefarm:List*"

Pour afficher une liste des actions Device Farm, consultez Actions Defined by AWS Device Farm dans leIAM Guide de l'utilisateur.

Ressources

L'élément Resource spécifie les objets auxquels l'action s'applique. Les instructions doivent inclure unélément Resource ou NotResource. Vous spécifiez une ressource à l'aide d'un ARN ou du caractèregénérique (*) pour indiquer que l'instruction s'applique à toutes les ressources.

La ressource d'instance Amazon EC2 possède l'ARN suivant :

arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}

(Pour plus d'informations sur le format des ARN, consultez Noms ARN (Amazon Resource Name) etespaces de noms du service AWS.

Par exemple, pour spécifier l'instance i-1234567890abcdef0 dans votre instruction, utilisez l'ARNsuivant :

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"

Pour spécifier toues les instances qui appartiennent à un compte, utilisez le caractère générique (*) :

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"

Certaines actions Device Farm, telles que la création de ressources, ne peuvent pas être exécutées surune ressource. Dans ce cas, vous devez utiliser le caractère générique (*).

"Resource": "*"

De nombreuses actions d'API Amazon EC2 nécessitent plusieurs ressources. Par exemple, commeAttachVolume attache un volume Amazon EBS à une instance, un utilisateur IAM doit avoir lesautorisations d'utiliser le volume et l'instance. Pour spécifier plusieurs ressources dans une seuleinstruction, séparez leurs ARN par des virgules.

"Resource": [ "resource1", "resource2"

Pour voir la liste des types de ressources Device Farm et de leurs ARN, veuillez consulter ResourcesDefined by AWS Device Farm dans le IAM Guide de l'utilisateur. Pour en savoir plus sur les actions aveclaquelle vous pouvez spécifier l'ARN de chaque ressource, consultez Actions Defined by AWS DeviceFarm.

Clés de condition

L'élément Condition (ou le bloc Condition) vous permet de spécifier des conditions lorsqu’uneinstruction est appliquée. L'élément Condition est facultatif. Vous pouvez créer des expressionsconditionnelles qui utilisent des opérateurs de condition, comme égal ou inférieur, pour faire correspondrela condition de la stratégie aux valeurs de la demande.

Version de l'API 2015-06-23257

Page 267: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurFonctionnement d'AWS Device Farm avec IAM

Si vous spécifiez plusieurs éléments Condition dans une instruction, ou plusieurs clés dans un seulélément Condition, AWS les évalue à l'aide d'une opération AND logique. Si vous spécifiez plusieursvaleurs pour une seule clé de condition, AWS évalue la condition à l'aide d'une opération OR logique.Toutes les conditions doivent être remplies avant que les autorisations associées à l’instruction ne soientaccordées.

Vous pouvez aussi utiliser des variables d’espace réservé quand vous spécifiez des conditions. Parexemple, vous pouvez accorder à un utilisateur IAM l'autorisation d'accéder à une ressource uniquementsi elle est balisée avec son nom d’utilisateur IAM . Pour de plus amples informations, veuillez consulterÉléments des stratégies IAM : variables et balises dans le Guide de l'utilisateur IAM.

Device Farm définit son propre ensemble de clés de condition et prend également en charge l'utilisation decertaines clés de condition globales. Pour voir toutes les clés de condition globales AWS, consultez Clés decontexte de condition globales AWS dans le IAM Guide de l'utilisateur.

Pour voir une liste de clés de conditions Device Farm, consultez Condition Keys for AWS Device Farmdans le IAM Guide de l'utilisateur. Pour savoir avec quelles actions et ressources vous pouvez utiliser uneclé de condition, consultez Actions Defined by AWS Device Farm.

Exemples

Pour voir des exemples de stratégies Device Farm basées sur l'identité, consultez Exemples de stratégiesAWS Device Farm basées sur l'identité (p. 260).

Stratégies Device Farm basées sur les ressourcesDevice Farm ne prend pas en charge les stratégies basées sur les ressource.

Liste de contrôle d'accès (ACL)Device Farm ne prend pas en charge les listes de contrôle d'accès (listes ACL).

Autorisation basée sur les balises Device FarmVous pouvez attacher des balises aux ressources de Device Farm, ou transmettre des balises dans unerequête à Device Farm. Pour contrôler l'accès basé sur des balises, vous devez fournir les informations debalise dans l'élément de condition d'une stratégie utilisant les clés de condition aws:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys. Pour de plus amples informations sur le balisagedes ressources Device Farm, consultez Balisage dans Device Farm (p. 53).

Pour visualiser un exemple de stratégie basée sur l'identité permettant de limiter l'accès à une ressourceen fonction des balises de cette ressource, consultez Affichage des projets Device Farm Desktop BrowserTesting en fonction des balises (p. 263).

Rôles IAM Device FarmUn rôle IAM est une entité de votre compteAWS qui dispose d'autorisations spécifiques.

Utilisation d'informations d'identification temporaires avec Device Farm

Device Farm prend en charge l'utilisation d'informations d'identification temporaires.

Vous pouvez utiliser des informations d'identification temporaires pour vous connecter avec la fédération ouendosser un rôle IAM ou un rôle entre comptes. Vous obtenez des informations d'identification de sécuritétemporaires en appelant des opérations d'API AWS STS comme AssumeRole ou GetFederationToken.

Version de l'API 2015-06-23258

Page 268: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurGestion de l'accès à l'aide de stratégies

Rôles liés à un service

Device Farm ne prend pas en charge les rôles liés à un service.

Les rôles liés à un service permettent aux services AWS d'accéder à des ressources dans d'autresservices pour effectuer une action en votre nom. Les rôles liés à un service s'affichent dans votre compteIAM et sont détenus par le service. Un administrateur IAM peut consulter mais ne peut pas modifier lesautorisations concernant les rôles liés à un service.

Rôles de service

Device Farm ne prend pas en charge les rôles de service.

Cette fonction permet à un service d'endosser un rôle de service en votre nom. Ce rôle autorise le serviceà accéder à des ressources d'autres services pour effectuer une action en votre nom. Les rôles de services'affichent dans votre compte IAM et sont la propriété du compte. Cela signifie qu'un administrateurIAM peut modifier les autorisations associées à ce rôle. Toutefois, une telle action peut perturber le bonfonctionnement du service.

Gestion de l'accès à l'aide de stratégiesVous contrôlez les accès dans AWS en créant des stratégies et en les attachant à des identités IAM ouà des ressources AWS. Une stratégie est un objet dans AWS qui, lorsqu'il est associé à une identité ouà une ressource, définit les autorisations de ces dernières. AWS évalue ces stratégies lorsqu'une entité(utilisateur racine, utilisateur IAM ou rôle IAM) envoie une demande. Les autorisations dans les stratégiesdéterminent si la demande est autorisée ou refusée. La plupart des stratégies sont stockées dans AWS entant que documents JSON. Pour plus d'informations sur la structure et le contenu du document de stratégieJSON, consultez Présentation des stratégies JSON dans le IAM Guide de l'utilisateur.

Les stratégies permettent à un administrateur IAM de spécifier qui a accès aux ressources AWSet quellesactions ces personnes peuvent exécuter sur ces ressources. Chaque entité IAM (utilisateur ou rôle)démarre sans autorisation. En d'autres termes, par défaut, les utilisateurs ne peuvent rien faire, pasmême changer leurs propres mots de passe. Pour autoriser un utilisateur à effectuer une opération, unadministrateur doit associer une stratégie d'autorisations à ce dernier. Il peut également ajouter l'utilisateurà un groupe disposant des autorisations prévues. Lorsqu'un administrateur accorde des autorisations à ungroupe, tous les utilisateurs de ce groupe se voient octroyer ces autorisations.

Les stratégies IAM définissent les autorisations d'une action quelle que soit la méthode que vous utilisezpour exécuter l'opération. Par exemple, supposons que vous disposiez d'une stratégie qui autorise l'actioniam:GetRole. Un utilisateur avec cette stratégie peut obtenir des informations utilisateur à partir de l’AWSManagement Console, de l’AWS CLI ou de l’API AWS.

Stratégies basées sur l'identitéLes stratégies basées sur l'identité sont des documents de stratégie d'autorisations JSON que vous pouvezattacher à une identité telle qu'un utilisateur, un rôle ou un groupe IAM. Ces stratégies contrôlent lesactions que peut exécuter cette identité, sur quelles ressources et dans quelles conditions. Pour découvrircomment créer une stratégie basée sur l’identité, consultez Création de stratégies IAM dans le IAM Guidede l'utilisateur.

Les stratégies basées sur l'identité peuvent être classées comme étant des stratégies en ligne ou desstratégies gérées. Les stratégies en ligne sont intégrées directement à un utilisateur, groupe ou rôle. Lesstratégies gérées sont des stratégies autonomes que vous pouvez lier à plusieurs utilisateurs, groupes etrôles de votre compte AWS. Les stratégies gérées incluent les stratégies gérées par AWS et les stratégiesgérées par le client. Pour découvrir comment choisir entre une politique gérée ou une politique en ligne,consultez Choix entre les stratégies gérées et les stratégies en ligne dans le IAM Guide de l'utilisateur.

Version de l'API 2015-06-23259

Page 269: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemples de stratégies basées sur l'identité

Autres types de stratégieAWS prend en charge d'autres types de stratégies moins courantes. Ces types de stratégies peuventdéfinir le nombre maximal d'autorisations qui vous sont accordées par des types de stratégies pluscourants.

• Limite d'autorisations – Une limite d'autorisations est une fonctionnalité avancée dans laquelle vousdéfinissez les autorisations maximales qu'une stratégie basée sur l'identité peut accorder à uneentité IAM (utilisateur ou rôle IAM). Vous pouvez définir une limite d'autorisations pour une entité. Lesautorisations obtenues représentent la combinaison des stratégies basées sur l'identité de l'entité et deses limites d'autorisations. Les stratégies basées sur les ressources qui spécifient l'utilisateur ou le rôledans le champ Principal ne sont pas limitées par les limites d'autorisations. Un refus explicite dansl'une de ces stratégies remplace l'autorisation. Pour plus d'informations sur les limites d'autorisations,consultez Limites d'autorisations pour des entités IAM dans le IAM Guide de l'utilisateur.

• Stratégies de contrôle de service (SCP) – Les SCP sont des stratégies JSON qui spécifient lenombre maximal d'autorisations pour une organisation ou une unité d'organisation (OU) dans AWSOrganizations. AWS Organizations est un service qui vous permet de regrouper et de gérer defaçon centralisée plusieurs comptes AWS détenus par votre entreprise. Si vous activez toutes lesfonctions d'une organisation, vous pouvez appliquer les stratégies de contrôle de service (SCP) à l'unou à l'ensemble de vos comptes. La SCP limite les autorisations pour les entités dans les comptesmembres, y compris dans chaque Utilisateur racine d'un compte AWS. Pour plus d'informations surles Organisations et les SCP, consultez Fonctionnement des stratégies de contrôle de service dans leManuel de l'utilisateur AWS Organizations.

• Stratégies de session – Les stratégies de session sont des stratégies avancées que vous transmettezen tant que paramètre lorsque vous créez par programmation une session temporaire pour un rôleou un utilisateur fédéré. Les autorisations de la session obtenue sont une combinaison des stratégiesbasées sur l'identité de l'utilisateur ou du rôle et des stratégies de session. Les autorisations peuventégalement provenir d'une stratégie basée sur les ressources. Un refus explicite dans l'une de cesstratégies remplace l'autorisation. Pour de plus amples informations, veuillez consulter Stratégies desession dans le IAM Guide de l'utilisateur.

Plusieurs types de stratégieLorsque plusieurs types de stratégies s'appliquent à la requête, les autorisations obtenues sont pluscompliquées à comprendre. Pour découvrir la façon dont AWS détermine s'il convient d'autoriser unedemande en présence de plusieurs types de stratégies, consultez Logique d'évaluation de stratégies dansle IAM Guide de l'utilisateur.

Exemples de stratégies AWS Device Farm basées surl'identitéPar défaut, les utilisateurs et les rôles IAM ne sont pas autorisés à créer ou modifier les ressources DeviceFarm. Ils ne peuvent pas non plus exécuter des tâches à l'aide de AWS Management Console, AWS CLIou de l'API AWS. Un administrateur IAM doit créer des stratégies IAM autorisant les utilisateurs et les rôlesà exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. Il doit ensuiteattacher ces stratégies aux utilisateurs ou aux groupes IAM ayant besoin de ces autorisations.

Pour apprendre à créer une stratégie basée sur l'identité IAM à l'aide de ces exemples de document destratégie JSON, consultez Création de stratégies dans l'onglet JSON dans le IAM Guide de l'utilisateur.

Rubriques• Bonnes pratiques en matière de stratégies (p. 261)• Autoriser les utilisateurs à afficher leurs propres autorisations (p. 261)

Version de l'API 2015-06-23260

Page 270: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemples de stratégies basées sur l'identité

• Accéder un projet de test d'un navigateur de bureau Device Farm (p. 262)• Affichage des projets Device Farm Desktop Browser Testing en fonction des balises (p. 263)

Bonnes pratiques en matière de stratégiesLes stratégies basées sur l'identité sont très puissantes. Elles déterminent si une personne peut créer,consulter ou supprimer des ressources Device Farm dans votre compte. Ces actions peuvent entraîner desfrais pour votre compte AWS. Lorsque vous créez ou modifiez des stratégies basées sur l'identité, suivezces instructions et recommandations :

• Commencer à utiliser des stratégies gérées AWS – Pour commencer à utiliser Device Farm rapidement,utilisez les politiques gérées AWS pour accorder à vos employés les autorisations dont ils ont besoin.Ces stratégies sont déjà disponibles dans votre compte et sont gérées et mises à jour par AWS. Pourplus d'informations, consultez la section Mise en route avec les autorisations à l'aide des stratégiesgérées AWS dans le IAM Guide de l'utilisateur.

• Accorder le privilège le plus faible – Lorsque vous créez des stratégies personnalisées, accordezuniquement les autorisations requises pour exécuter une seule tâche. Commencez avec unminimum d'autorisations et accordez-en d'autres si nécessaire. Cette méthode est plus sûre que decommencer avec des autorisations trop permissives et d'essayer de les restreindre plus tard. Pour plusd'informations, consultez Accorder le privilège le plus faible dans le IAM Guide de l'utilisateur.

• Activer MFA pour les opérations sensibles – Pour plus de sécurité, obligez les utilisateurs IAM àutiliser l'authentification multi-facteurs (MFA) pour accéder à des ressources ou à des opérations d'APIsensibles. Pour plus d'informations, consultez Utilisation de Multi-Factor Authentication (MFA) dans AWSdans le IAM Guide de l'utilisateur.

• Utiliser des conditions de stratégie pour une plus grande sécurité – Tant que cela reste pratique pourvous, définissez les conditions dans lesquelles vos stratégies basées sur l'identité autorisent l'accès àune ressource. Par exemple, vous pouvez rédiger les conditions pour spécifier une plage d'adresses IPautorisées d'où peut provenir une demande. Vous pouvez également écrire des conditions pour autoriserles requêtes uniquement à une date ou dans une plage de temps spécifiée, ou pour imposer l'utilisationde SSL ou de MFA. Pour plus d'informations, consultez Éléments de stratégie JSON IAM : conditiondans le IAM Guide de l'utilisateur.

Autoriser les utilisateurs à afficher leurs propres autorisationsCet exemple montre comment créer une stratégie qui permet aux utilisateurs IAM d'afficher les stratégiesen ligne et gérées attachées à leur identité d'utilisateur. Cette stratégie inclut les autorisations nécessairespour réaliser cette action sur la console ou par programmation à l'aide de l’AWS CLI ou de l'API AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow",

Version de l'API 2015-06-23261

Page 271: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurExemples de stratégies basées sur l'identité

"Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ]}

Accéder un projet de test d'un navigateur de bureau Device FarmDans cet exemple, vous souhaitez accorder à un utilisateur IAM de votre compte AWS l'accès àl'un de vos projets de test de navigateur de bureau Device Farm, arn:aws:devicefarm:us-west-2:111122223333:testgrid-project:123e4567-e89b-12d3-a456-426655441111. Voussouhaitez que le compte puisse voir les éléments associés au projet.

En plus du point de terminaison devicefarm:GetTestGridProject, le compte doit avoir les pointsde terminaison devicefarm:ListTestGridSessions, devicefarm:GetTestGridSession,devicefarm:ListTestGridSessionActions et devicefarm:ListTestGridSessionArtifacts.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"GetTestGridProject", "Effect":"Allow", "Action":[ "devicefarm:GetTestGridProject" ], "Resource":"arn:aws:devicefarm:us-west-2:111122223333:testgrid-project:123e4567-e89b-12d3-a456-426655441111" }, { "Sid":"ViewProjectInfo", "Effect":"Allow", "Action":[ "devicefarm:ListTestGridSessions", "devicefarm:ListTestGridSessionActions", "devicefarm:ListTestGridSessionArtifacts" ], "Resource":"arn:aws:devicefarm:us-west-2:111122223333:testgrid-*:123e4567-e89b-12d3-a456-426655441111/*" } ]}

Si vous utilisez des systèmes CI, vous devez donner des informations d'identification d'accès uniques àchaque exécuteur CI. Par exemple, il est peu probable qu'un système CI ait besoin d’autorisations autresque devicefarm:ScheduleRun ou devicefarm:CreateUpload. La stratégie IAM suivante décritune stratégie minimale permettant à un exécuteur CI de démarrer le test d'une nouvelle application DeviceFarm native en créant un chargement et en utilisant celui-ci pour planifier l’exécution d’un test :

{ "Version":"2012-10-17", "Statement": [

Version de l'API 2015-06-23262

Page 272: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurDépannage

{ "$id":"scheduleTestRuns", "effect":"Allow", "Action": [ "devicefarm:CreateUpload","devicefarm:ScheduleRun" ], "Resource": [ "arn:aws:devicefarm:us-west-2:111122223333:project:123e4567-e89b-12d3-a456-426655440000", "arn:aws:devicefarm:us-west-2:111122223333:*:123e4567-e89b-12d3-a456-426655440000/*", ] } ]}

Affichage des projets Device Farm Desktop Browser Testing enfonction des balisesVous pouvez utiliser des conditions dans votre stratégie basée sur l'identité pour contrôler l'accès auxressources Device Farm en fonction de balises. Cet exemple montre comment créer une stratégie quiautorise l'affichage de projets et de sessions. L'autorisation est accordée si la balise Owner de la ressourcedemandée correspond au nom d'utilisateur du compte demandeur.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListTestGridProjectSessions", "Effect": "Allow", "Action": [ "devicefarm:ListTestGridSession*", "devicefarm:GetTestGridSession", "devicefarm:ListTestGridProjects" ], "Resource": [ "arn:aws:devicefarm:us-west-2:testgrid-project:*/*" "arn:aws:devicefarm:us-west-2:testgrid-session:*/*" ], "Condition": { "StringEquals": {"aws:TagKey/Owner":"${aws:username}"} } } ]}

Vous pouvez attacher cette stratégie aux utilisateurs IAM de votre compte. Si un utilisateur nommérichard-roe tente d'afficher un projet ou une session Device Farm, le projet doit être baliséOwner=richard-roe ou owner=richard-roe. Dans le cas contraire, l’utilisateur se voit refuser l'accès.La clé de condition de balise Owner correspond à la fois à Owner et à owner, car les noms de clé decondition ne sont pas sensibles à la casse. Pour plus d'informations, consultez Éléments de stratégie JSONIAM : condition dans le IAM Guide de l'utilisateur.

Résolution des problèmes d'identité et d'accès AWSDevice FarmUtilisez les informations suivantes pour identifier et résoudre les problèmes courants que vous pouvezrencontrer lorsque vous travaillez avec Device Farm et IAM.

Version de l'API 2015-06-23263

Page 273: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurDépannage

Je ne suis pas autorisé à effectuer une action dans Device FarmSi vous recevez un message d'erreur dans la AWS Management Console selon lequel vous n'êtes pasautorisé à exécuter une action, vous devez contacter votre administrateur pour obtenir de l'aide. Votreadministrateur est la personne qui vous a fourni votre nom d'utilisateur et votre mot de passe.

L'exemple d’erreur suivant se produit lorsque l'utilisateur IAM, mateojackson, tente d'utiliser la consolepour afficher des informations détaillées concernant une exécution, mais ne dispose pas des autorisationsdevicefarm:GetRun nécessaires.

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: devicefarm:GetRun on resource: arn:aws:devicefarm:us-west-2:123456789101:run:123e4567-e89b-12d3-a456-426655440000/123e4567-e89b-12d3-a456-426655441111

Dans ce cas, Mateo demande à son administrateur de mettre à jour ses stratégies pour lui permettred'accéder à la ressource devicefarm:GetRunsur la ressource arn:aws:devicefarm:us-west-2:123456789101:run:123e4567-e89b-12d3-a456-426655440000/123e4567-e89b-12d3-a456-426655441111 à l'aide de l'action devicefarm:GetRun.

Je ne suis pas autorisé à exécuter iam:PassRoleSi vous recevez un message d'erreur selon lequel vous n'êtes pas autorisé à exécuter l'actioniam:PassRole, vous devez contacter votre administrateur pour obtenir de l'aide. Votre administrateur estla personne qui vous a fourni votre nom d'utilisateur et votre mot de passe. Demandez à cette personne demettre à jour vos stratégies pour vous permettre de transmettre un rôle à Device Farm.

Certains services AWS vous permettent de transmettre un rôle existant à ce service, au lieu de créer unnouveau rôle de service ou rôle lié à un service. Pour ce faire, un utilisateur doit disposer des autorisationsnécessaires pour transmettre le rôle au service.

L'exemple d'erreur suivant se produit lorsqu'un utilisateur IAM nommé marymajor essaie d'utiliser laconsole pour exécuter une action dans Device Farm. Toutefois, l'action nécessite que le service ait desautorisations accordées par un rôle de service. Mary ne dispose pas des autorisations nécessaires pourtransférer le rôle au service.

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

Dans ce cas, Mary demande à son administrateur de mettre à jour ses stratégies pour lui permettred'exécuter l'action iam:PassRole.

Je veux afficher mes clés d'accèsUne fois que vous avez créé vos clés d'accès utilisateur IAM, vous pouvez afficher votre ID de clé d'accèsà tout moment. Toutefois, vous ne pouvez pas afficher à nouveau votre clé d'accès secrète. Si vous perdezvotre clé d'accès secrète, vous devez créer une nouvelle paire de clés.

Les clés d'accès se composent de deux parties : un ID de clé d'accès (par exemple,AKIAIOSFODNN7EXAMPLE) et une clé d'accès secrète (par exemple, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). À l'instar d'un nom d'utilisateur et un mot de passe, vous devez utiliser à la foisl'ID de clé d'accès et la clé d'accès secrète pour authentifier vos demandes. Gérez vos clés d'accès demanière aussi sécurisée que votre nom d'utilisateur et votre mot de passe.

Important

Ne communiquez pas vos clés d'accès à un tiers, même pour qu'il vous aide à trouver votre IDutilisateur canonique. En effet, vous lui accorderiez ainsi un accès permanent à votre compte.

Version de l'API 2015-06-23264

Page 274: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurValidation de la conformité

Lorsque vous créez une paire de clé d'accès, enregistrez l'ID de clé d'accès et la clé d'accès secrètedans un emplacement sécurisé. La clé d'accès secrète est accessible uniquement au moment de sacréation. Si vous perdez votre clé d'accès secrète, vous devez ajouter de nouvelles clés d'accès pour votreutilisateur IAM. Vous pouvez avoir un maximum de deux clés d'accès. Si vous en avez déjà deux, vousdevez supprimer une paire de clés avant d'en créer une nouvelle. Pour afficher les instructions, consultezGestion des clés d'accès dans le IAM Guide de l'utilisateur.

Je suis un administrateur et je veux autoriser d'autres utilisateursà accéder à Device FarmPour permettre à d'autres utilisateurs d'accéder à Device Farm, vous devez créer une entité IAM(utilisateur ou rôle) pour la personne ou l'application qui a besoin de l'accès. Ils utiliseront les informationsd'identification de cette entité pour accéder à AWS. Vous devez ensuite associer une stratégie à l'entité quileur accorde les autorisations appropriées dans Device Farm.

Pour démarrer immédiatement, consultez Création de votre premier groupe et utilisateur délégué IAM dansle IAM Guide de l'utilisateur.

Je veux permettre à des personnes extérieures à mon compteAWS d’accéder à mes ressources Device FarmVous pouvez créer un rôle que les utilisateurs provenant d'autres comptes ou les personnes extérieures àvotre organisation peuvent utiliser pour accéder à vos ressources. Vous pouvez spécifier qui est approuvépour assumer le rôle. Pour les services qui prennent en charge les stratégies basées sur les ressourcesou les listes de contrôle d'accès (ACL), vous pouvez utiliser ces stratégies pour accorder aux personnesl'accès à vos ressources.

Pour en savoir plus, consultez les éléments suivants :

• Pour savoir si Device Farm prend en charge ces fonctionnalités, consultez Fonctionnement d'AWSDevice Farm avec IAM (p. 256).

• Pour savoir comment fournir un accès à vos ressources sur les comptes AWS que vous détenez,consultez Octroi à un utilisateur IAM de l'autorisation d'accès à un autre compte AWS vous appartenantdans le IAM Guide de l'utilisateur.

• Pour savoir comment fournir l'accès à vos ressources à des comptes AWS tiers, consultez Octroi d'unaccès à des comptes AWS appartenant à des tiers dans le IAM Guide de l'utilisateur.

• Pour savoir comment fournir un accès par le biais de la fédération d'identité, consultez Octroi d'accès àdes utilisateurs authentifiés en externe (fédération d'identité) dans le IAM Guide de l'utilisateur.

• Pour en savoir plus sur la différence entre l'utilisation des rôles et des stratégies basées sur lesressources pour l'accès entre comptes, consultez Différence entre les rôles IAM et les stratégies baséessur les ressources dans le IAM Guide de l'utilisateur.

Validation de la conformité pour AWS Device FarmLes auditeurs tiers évaluent la sécurité et la conformité AWS Device Farm dans le cadre de plusieursprogrammes de conformité AWS. Il s’agit notamment des certifications SOC, PCI, FedRAMP, HIPAA parmid'autres. AWS Device Farm n’est concerné par aucun programme de conformité AWS.

Pour obtenir la liste des services AWS relevant de programmes de conformité spécifiques, consultezServices AWS relevant de programmes de conformité. Pour obtenir des renseignements généraux,consultez Programmes de conformitéAWS .

Version de l'API 2015-06-23265

Page 275: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurProtection des données

Vous pouvez télécharger les rapports de l'audit externe avec AWS Artifact. Pour plus d'informations,consultez Téléchargement de rapports dans AWS Artifact.

Votre responsabilité en matière de conformité lorsque vous utilisez Device Farm est déterminée par lasensibilité de vos données, des objectifs de conformité de votre entreprise, ainsi que de la législationet de la réglementation en vigueur. AWS fournit les ressources suivantes pour faciliter le respect de laconformité :

• Guides de démarrage rapide de la sécurité et de la conformité – Ces guides de déploiement proposentdes considérations architecturales et fournissent des étapes pour déployer des environnements deréférence centrés sur la sécurité et la conformité sur AWS.

• Ressources de conformité AWS – Cet ensemble de manuels et de guides peut s'appliquer à votresecteur et à votre emplacement.

• Évaluation des ressources à l'aide de règles dans le Manuel du développeur AWS Config – AWS Configévalue dans quelle mesure vos configurations de ressources sont conformes aux pratiques internes, auxdirectives sectorielles et aux réglementations.

• AWS Security Hub – Ce service AWS fournit une vue complète de votre état de sécurité au sein d'AWSqui vous permet de vérifier votre conformité aux normes du secteur et aux bonnes pratiques de sécurité.

Protection des données dans AWS Device FarmAWS Device Farm se conforme au modèle de responsabilité partagée AWS, qui inclut des directives etdes régulations pour la protection des données. AWS est responsable de la protection de l’infrastructureglobale qui exécute tous les services AWS. AWS conserve le contrôle des données hébergées sur cetteinfrastructure, y compris les contrôles de configuration de sécurité pour traiter le contenu et les donnéespersonnelles des clients. Les clients AWS et les partenaires d’APN, qu’ils agissent en tant que contrôleursou responsables du traitement des données, sont responsables de toutes les données personnelles qu’ilsmettent sur le cloud AWS.

Pour des raisons de protection des données, nous vous recommandons de protéger vos identifiantsde compte AWS et de configurer des comptes utilisateurs individuels avec AWS Identity and AccessManagement (IAM), afin que chaque utilisateur reçoive uniquement les permissions nécessaires pouraccomplir ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :

• Utilisez l'authentification multi-facteurs (MFA) avec chaque compte.• Utilisez SSL/TLS pour communiquer avec des ressources AWS.

• Configurez l'API et la consignation des activités utilisateur avec AWS CloudTrail.• Utilisez des solutions de chiffrement AWS, ainsi que tous les contrôles de sécurité par défaut au sein des

services AWS.• Utilisez des services de sécurité gérés comme Amazon Macie, qui contribue à la découverte et à la

sécurisation des données personnelles stockées dans Amazon S3.

Nous vous recommandons vivement de ne jamais placer d'informations identifiables sensibles, telles quedes numéros de compte de vos clients, dans des champs de formulaire comme Nom. Cela s’applique aussilorsque vous utilisez Device Farm ou d'autres services AWS à l'aide de la console, de l'API, de l'interfacede ligne de commande (AWS CLI) ou des kits AWS SDK. Toutes les données que vous entrez dansDevice Farm ou d'autres services peuvent être récupérés pour insertion dans des journaux de diagnostic.Lorsque vous fournissez une URL à un serveur externe, n'incluez pas les informations d'identification nonchiffrées dans l'URL pour valider votre demande adressée au serveur.

Pour en savoir plus sur la protection des données, consultez le billet de blog Modèle de responsabilitépartagée AWS et RGPD sur le Blog sur la sécurité d’AWS.

Version de l'API 2015-06-23266

Page 276: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurChiffrement en transit

Chiffrement en transitLes points de terminaison Device Farm ne prennent en charge que les requêtes HTTPS signées (SSL/TLS) sauf indication contraire. Tout le contenu extrait de ou placé dans Amazon S3 à travers des URLde chargement est chiffré à l'aide du protocole SSL/TLS. Pour plus d'informations sur la façon dont lesrequêtes HTTPS sont signées dans AWS, veuillez consulter Signature des demandes d’API AWS dansRéférences générales AWS.

Il est de votre responsabilité de chiffrer et de sécuriser toutes les communications effectuées par vosapplications testées et par toutes les applications supplémentaires installée dans le cadre de l'exécutiondes tests sur les périphériques.

Chiffrement au reposLes données Device Farm ne sont pas chiffrées au repos.

Conservation des donnéesLes données dans Device Farm sont conservées pendant une durée limitée. Après l'expiration de lapériode de conservation, elles sont supprimées du stockage de sauvegarde Device Farm, mais toutes lesmétadonnées (ARN, dates de chargement, noms de fichiers, etc.) sont conservées pour une utilisationultérieure. Le tableau suivant contient la période de conservation pour différents types de contenu.

Type de contenu Période de conservation (jours)

Applications chargées 30

Paquets de test chargés 30

Configurations de test personnalisées 30

Journaux 400

Enregistrements vidéo et autres artefacts 400

Il vous incombe d'archiver tout contenu que vous souhaitez conserver pendant des périodes plus longues.

Gestion des donnéesLes données dans Device Farm sont gérées différemment selon les fonctions utilisées. Cette sectionexplique comment les données sont gérées pendant et après l'utilisation d’Device Farm.

Test du navigateur de bureauLes instances utilisées pendant les sessions Selenium ne sont pas enregistrées. Toutes les donnéesgénérées à la suite d’interactions du navigateur sont supprimées en fin de session.

Test des appareils physiquesLes sections suivantes fournissent des informations sur les étapes suivies par AWS pour nettoyer oudétruire les appareils une fois que vous avez utilisé Device Farm.

Flottes d'appareils publicsUne fois l'exécution de test terminée, Device Farm effectue une série de tâches de nettoyage sur chaqueappareil de la flotte d'appareils publics, notamment la désinstallation de votre application. Si nous ne

Version de l'API 2015-06-23267

Page 277: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurGestion des clés

pouvons pas vérifier la désinstallation de votre application ou l'une des autres étapes de nettoyage,l'appareil fait l'objet d'une réinitialisation d'usine avant d'être remis en utilisation.

Note

Il est possible que les données persistent entre les sessions dans certains cas, en particulier sivous utilisez le système d'appareils en dehors du contexte de votre application. Pour cette raison,et étant donné que Device Farm capture les vidéos et les journaux des activités qui se produisentpendant votre utilisation de chaque appareil, nous vous recommandons d'éviter d'entrer desinformations sensibles (par exemple votre compte Google ou votre ID Apple), des informationspersonnelles et autres détails sensibles en matière de sécurité pendant vos sessions de testsautomatisés et d'accès à distance.

Appareils privés

Après l'expiration ou la résiliation de votre contrat d'appareil privé, celui-ci ne peut plus être utilisé et estdétruit en toute sécurité conformément aux stratégies de destruction AWS. Pour plus d'informations,consultez Utilisation des appareils privés dans AWS Device Farm (p. 148).

Gestion des clésActuellement, Device Farm ne propose aucune gestion de clé externe pour le chiffrement des données, aurepos ou en transit.

Confidentialité du trafic inter-réseauxDevice Farm peut être configuré, pour les périphériques privés uniquement, pour utiliser des points determinaison Amazon VPC pour se connecter à vos ressources dans AWS. L'accès à toute infrastructureAWS non publique associée à votre compte (par exemple, des instances Amazon EC2 sans adresse IPpublique) doit utiliser un point de terminaison Amazon VPC. Quelle que soit la configuration du point determinaison du VPC, Device Farm isole votre trafic des autres utilisateurs sur tout le réseau Device Farm.

La sécurité de vos connexions en dehors du réseau AWS n'est pas garantie, et il vous incombe desécuriser les connexions Internet de vos applications.

Résilience dans AWS Device FarmL'infrastructure mondiale d'AWS repose sur les régions et les zones de disponibilité AWS. Les régionsAWS fournissent plusieurs zones de disponibilité physiquement séparées et isolées, reliées par un réseauà latence faible, à débit élevé et à forte redondance. Avec les zones de disponibilité, vous pouvez concevoiret exploiter des applications et des bases de données qui basculent automatiquement d'une zone à l'autresans interruption. Les zones de disponibilité sont plus hautement disponibles, tolérantes aux pannes etévolutives que les infrastructures traditionnelles à un ou plusieurs centres de données.

Pour plus d'informations sur les régions et les zones de disponibilité AWS, consultez Infrastructuremondiale AWS.

Device Farm étant uniquement disponible dans la région us-west-2, nous vous recommandons fortementla mise en place de processus de sauvegarde et de restauration. Device Farm ne doit pas être la seulesource de contenu chargé.

Device Farm ne garantit pas la disponibilité des périphériques publics. Ces appareils sont introduits etretirés du parc de périphériques public en fonction de divers facteurs, tels que le taux d'échec et le statut de

Version de l'API 2015-06-23268

Page 278: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurSécurité de l'infrastructure

quarantaine. Nous vous recommandons de ne pas dépendre de la disponibilité d'un seul appareil dans leparc de périphériques public.

Sécurité de l'infrastructure dans AWS Device FarmEn tant que service géré, AWS Device Farm est protégé par les procédures de sécurité du réseau mondialAWS qui sont décrites dans le livre blanc Amazon Web Services : Présentation des procédures de sécurité.

Vous utilisez les appels d'API publiés AWS pour accéder à Device Farm via le réseau. Les clientsdoivent prendre en charge le protocole TLS (Transport Layer Security) 1.0 ou version ultérieure. Nousrecommandons TLS 1.2 ou version ultérieure. Les clients doivent également prendre en charge les suitesde chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou Elliptic CurveEphemeral Diffie-Hellman (ECDHE) La plupart des systèmes modernes tels que Java 7 et versionsultérieures prennent en charge ces modes.

Les demandes doivent être signées à l'aide d'un ID de clé d'accès et d'une clé d'accès secrète associée àun mandataire IAM. Vous pouvez également utiliser AWS Security Token Service (AWS STS) pour générerdes informations d'identification de sécurité temporaires et signer les demandes.

Sécurité de l'infrastructure pour les tests depériphériques physiquesPendant les tests physiques, les périphériques sont physiquement séparés. L'isolation du réseau empêchela communication entre les périphériques sur les réseaux sans fil.

Les périphériques publics sont partagés et Device Farm fait tout son possible pour assurer leur sécurité aufil du temps. Certaines actions, telles que les tentatives d'acquisition de droits d'administrateur completssur un périphérique (pratique appelée débridage ou jailbreak), provoquent la mise en quarantaine depériphériques publics. Ceux-ci sont automatiquement retirés du pool public et font l’objet d’un examenmanuel.

Les périphériques privés ne sont accessibles que par les comptes AWS explicitement autorisés à le faire.Device Farm isole physiquement ces périphériques des autres périphériques et les maintient sur un réseaudistinct.

Sur les périphériques gérés de manière privée, les tests peuvent être configurés pour utiliser un point determinaison de Amazon VPC, pour sécuriser les connexions dans et hors de votre compte AWS.

Sécurité de l'infrastructure pour les tests du navigateurde bureauLorsque vous utilisez la fonctionnalité de test du navigateur de bureau, toutes les sessions de test sontséparées les unes des autres. Les instances Sélénium ne peuvent pas communiquer entre elle sans unepartie tierce intermédiaire, extérieure à AWS.

Tout le trafic vers les contrôleurs Selenium WebDriver doit être effectué via le point de terminaison HTTPSgénéré avec createTestGridUrl.

La fonctionnalité de test du navigateur de bureau ne prend pas actuellement en charge la configurationde points de terminaison de Amazon VPC. Il vous revient de veiller à ce que chaque instance de testDevice Farm dispose d'un accès sécurisé aux ressources qu'elle teste.

Version de l'API 2015-06-23269

Page 279: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration et analyse des vulnérabilités

Analyse et gestion des vulnérabilités deconfiguration dans Device Farm

Device Farm vous permet d'exécuter des logiciels qui ne sont pas correctement maintenu ou mis à jour parle fournisseur, notamment le fournisseur du système d'exploitation, le fournisseur du matériel ou l’opérateurtéléphonique. Device Farm s’efforce de maintenir les logiciels à jour, mais ne garantit pas qu'une versionparticulière de ces derniers sur un périphérique physique est à jour, car il est conçu pour permettre la miseen œuvre de logiciels potentiellement vulnérables.

Par exemple, si un test est effectué sur un périphérique fonctionnant sous Android 4.4.2, Device Farm negarantit pas que le périphérique est corrigé contre la vulnérabilité dans Android connue sous le nom deStageFright. Il appartient au fournisseur (et parfois à l’opérateur) du périphérique de fournir les mises àjour de sécurité pour les périphériques. Il n’est pas garanti qu’une application malveillante utilisant cettevulnérabilité soit détectée par notre mise en quarantaine automatisée.

Les périphériques privés sont maintenus conformément à votre accord avec AWS.

Device Farm fait un effort de bonne foi pour empêcher les actions d’applications clientes telles que ledébridage ou le jailbreak. Device Farm supprime les périphériques mis en quarantaine du pool publicjusqu'à ce qu'ils aient été examinés manuellement.

Vous êtes responsable de la mise à jour de toutes les bibliothèques ou versions de logiciels que vousutilisez pour vos tests, notamment les roues Python et les gemmes Ruby. Device Farm recommande demettre à jour vos bibliothèques de tests.

Ces ressources peuvent vous aider à maintenir vos dépendances de test à jour :

• Pour plus d'informations sur la sécurisation des gemmes Ruby, consultez Security Practices (Pratiquesde sécurité) sur le site Web RubyGems.

• Pour plus d'informations sur le package de sécurité utilisé par Pipenv et approuvé par l'autorité PythonPackaging Authority pour analyser votre graphique de dépendance à la recherche de vulnérabilitésconnues, consultez Detection of Security Vulnerabilities (Détection des vulnérabilités de sécurité) surGitHub.

• Pour plus d'informations sur le vérificateur de dépendance OWASP (Open Web Application SecurityProject) Maven, veuillez consulter OWASP DependencyCheck sur le site Web OWASP.

Il est important de se rappeler que même si un système automatisé n’indique pas l’existence de problèmesde sécurité connus, cela ne signifie pas qu'il n'y en a pas. Utilisez toujours avec la prudence raisonnable lesbibliothèques ou outils de tiers, et vérifiez les signatures cryptographiques si c’est possible ou raisonnable.

Réponse aux incidents dans Device FarmDevice Farm surveille en continu les périphériques pour détecter les comportements susceptiblesd'indiquer des problèmes de sécurité. Si AWS est informé d'un cas où les données du client, notammentles résultats des tests ou les fichiers écrits sur un périphérique public, sont accessibles à un autre client,AWS contacte les clients concernés conformément aux alertes d'incident standard et aux stratégies designalement utilisées dans l'ensemble des services AWS.

Journalisation et surveillance dans Device FarmCe service prend en charge AWS CloudTrail, qui est un service qui enregistre les appels d'AWS pour votrecompte AWS et fournit des fichiers journaux dans un compartiment Amazon S3. A l'aide des informations

Version de l'API 2015-06-23270

Page 280: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurBonnes pratiques de sécurité

recueillies par CloudTrail, vous pouvez déterminer les demandes qui ont été exécutées avec succès versdes services AWS, qui est à l'origine de la demande, etc. Pour en savoir plus sur CloudTrail, y compris lafaçon de l'activer et de trouver vos fichiers journaux, consultez le manuel AWS CloudTrail User Guide.

Pour plus d'informations sur l'utilisation d'CloudTrail avec Device Farm, consultez Journalisation des appelsd'API AWS Device Farm avec AWS CloudTrail (p. 167).

Bonnes pratiques de sécurité pour Device FarmDevice Farm fournit différentes fonctions de sécurité à prendre en compte lorsque vous développez etimplémentez vos propres stratégies de sécurité. Les bonnes pratiques suivantes doivent être considéréescomme des instructions générales et ne représentent pas une solution de sécurité complète. Étant donnéque ces bonnes pratiques peuvent ne pas être appropriées ou suffisantes pour votre environnement,considérez-les comme des remarques utiles plutôt que comme des recommandations.

• Accordez à tout système d'intégration continue (CI) que vous utilisez le moins de privilèges possible sousIAM. Envisagez d'utiliser des informations d'identification temporaires pour chaque test de système CI,afin que même si un système CI est compromis, il ne puisse pas effectuer de demandes fallacieuses.Pour plus d'informations sur les informations d'identification temporaires, consultez le IAM Guide del'utilisateur.

• Utilisez les commandes adb dans un environnement de test personnalisé pour nettoyer tout contenucréé par votre application. Pour plus d'informations sur les environnements de test personnalisés,consultez Utilisation d'environnements de test personnalisés (p. 137)

Version de l'API 2015-06-23271

Page 281: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Limites dans AWS Device FarmLa liste suivante décrit les limites actuelles de AWS Device Farm.

• La taille maximale d'un fichier d'application que vous pouvez charger est de 4 Go.• Il n'existe pas de limite au nombre d'appareils que vous pouvez inclure dans une exécution de test.

Cependant, le nombre maximal d'appareils que Device Farm testera simultanément pendant uneexécution de test est 5. (Ce chiffre peut être augmenté sur demande.)

• Il n'y a pas de limite au nombre d'exécutions que vous pouvez planifier.• La durée d'une session d'accès à distance est limitée à 150 minutes.• La durée d'une exécution de test automatisée est limitée à 150 minutes.

Version de l'API 2015-06-23272

Page 282: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPlug-in Jenkins CI

Outils et plug-ins pour AWS DeviceFarm

Cette section contient des liens et des informations sur l'utilisation des outils et des plug-ins AWS DeviceFarm. Vous pouvez trouver des plug-ins Device Farm sur AWS Labs sur GitHub.

Si vous êtes développeur Android, vous disposez également d'un exemple d'application AWS Device Farmpour Android sur GitHub. Vous pouvez utiliser les exemples d'applications et de tests comme une référencepour vos propres scripts de test Device Farm.

Rubriques• Intégration d'AWS Device Farm avec le plug-in Jenkins CI (p. 273)• Plug-in AWS Device Farm Gradle (p. 279)

Intégration d'AWS Device Farm avec le plug-inJenkins CI

Ce plug-in fournit la fonctionnalité AWS Device Farm à partir de votre propre serveur d'intégration continue(CI) Jenkins. Pour plus d'informations, consultez Jenkins (logiciel).

Note

Pour télécharger le plug-in Jenkins, accédez à GitHub et suivez les instructions de la sectionÉtape 1 : Installer le plug-in (p. 276).

Cette section contient une série de procédures permettant de configurer et d'utiliser le plug-in Jenkins CIavec AWS Device Farm.

Rubriques• Étape 1 : Installation du plug-in (p. 276)• Étape 2 : Création d'un utilisateur AWS Identity and Access Management pour votre plug-in Jenkins

CI (p. 277)• Étape 3 : Instructions pour la toute première configuration (p. 278)• Étape 4 : Utilisation du plug-in dans une tâche Jenkins (p. 278)• Dépendances (p. 278)

Les images suivantes montrent les fonctions du plug-in Jenkins CI.

Version de l'API 2015-06-23273

Page 283: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPlug-in Jenkins CI

Version de l'API 2015-06-23274

Page 284: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPlug-in Jenkins CI

Le plug-in peut également afficher tous les artefacts de test (journaux, captures d'écran, etc.) localement :

Version de l'API 2015-06-23275

Page 285: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 1 : Installer le plug-in

Étape 1 : Installation du plug-inDeux options vous permettent d'installer le plug-in d'intégration continue (CI) Jenkins pour AWS DeviceFarm. Vous pouvez rechercher le plug-in à partir de la boîte de dialogue Available Plugins (Plug-insdisponibles) de l'interface utilisateur Web Jenkins, ou vous pouvez télécharger le fichier hpi et l'installer àpartir de Jenkins.

Installer à partir de l'interface utilisateur Jenkins1. Recherchez le plug-in dans l'interface utilisateur Jenkins en choisissant Manage Jenkins (Gérer

Jenkins), Manage Plugins (Gérer les plug-ins), puis Available (Disponible).2. Recherchez aws-device-farm.3. Installez le plug-in AWS Device Farm.4. Assurez-vous que le plug-in est détenu par l'utilisateur Jenkins.5. Redémarrez Jenkins.

Télécharger le plug-in1. Téléchargez le fichier hpi directement à partir de l'adresse http://updates.jenkins-ci.org/latest/aws-

device-farm.hpi.2. Assurez-vous que le plug-in est détenu par l'utilisateur Jenkins.3. Installez le plug-in à l'aide d'une des options suivantes :

• Chargez le plug-in en choisissant Manage Jenkins (Gérer Jenkins), Manage Plugins (Gérer les plug-ins), Advanced (Avancé), puis Upload plugin (Charger le plug-in).

• Placez le fichier hpi dans le répertoire de plug-ins Jenkins (généralement /var/lib/jenkins/plugins).

Version de l'API 2015-06-23276

Page 286: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 2 : Créer un utilisateur IAM

4. Redémarrez Jenkins.

Étape 2 : Création d'un utilisateur AWS Identity andAccess Management pour votre plug-in Jenkins CINous vous recommandons de ne pas utiliser votre compte racine AWS pour accéder à Device Farm. Àla place, créez un utilisateur AWS Identity and Access Management (IAM) (ou utilisez un utilisateur IAMexistant) dans votre compte AWS, puis accédez à Device Farm avec cet utilisateur IAM.

Pour créer un utilisateur IAM, consultez Création d'un utilisateur IAM (AWS Management Console).Veillez à générer une clé d'accès pour chaque utilisateur et téléchargez ou enregistrez les informationsd'identification de sécurité de l'utilisateur. Vous aurez besoin des informations d'identification de l'utilisateurultérieurement.

Accorder à l'utilisateur IAM l'autorisation d'accéder à Device FarmPour accorder à l'utilisateur IAM l'autorisation d'accéder à Device Farm, créez une stratégie d'accès dansIAM, puis attribuez-la à l'utilisateur IAM comme suit.

Note

Le compte racine AWS ou l'utilisateur IAM que vous utilisez pour effectuer les étapes suivantesdoit avoir l'autorisation de créer la stratégie IAM suivante et de l'attacher à l'utilisateur IAM. Pourplus d'informations, consultez Utilisation de stratégies.

Pour créer la stratégie d'accès dans IAM

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Choisissez Stratégies.3. Choisissez Créer une stratégie. (Si un bouton Mise en route est affiché, choisissez-le, puis choisissez

Créer une stratégie.)4. En regard de Créer votre propre stratégie, choisissez Sélectionner.5. Pour Nom de la stratégie, saisissez un nom de stratégie (par exemple

AWSDeviceFarmAccessPolicy).6. Pour Description, saisissez une description vous permettant d'associer cet utilisateur IAM à votre projet

Jenkins.7. Pour Document de stratégie, saisissez l'instruction suivante :

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

8. Choisissez Créer une stratégie.

Pour attribuer la stratégie d'accès à l'utilisateur IAM

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

Version de l'API 2015-06-23277

Page 287: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurÉtape 3 : Instructions pour la toute première configuration

2. Choisissez Utilisateurs.3. Choisissez l'utilisateur IAM à qui vous souhaitez attribuer la stratégie d'accès.4. Dans la zone Autorisations, pour Stratégies gérées, choisissez Attacher la stratégie.5. Sélectionnez la stratégie que vous venez de créer (par exemple AWSDeviceFarmAccessPolicy).6. Choisissez Attacher la stratégie.

Étape 3 : Instructions pour la toute premièreconfigurationLa première fois que vous exécutez votre serveur Jenkins, vous devez configurer le système comme suit.

Note

Si vous utilisez des emplacements d'appareils (p. 8), la fonction d'emplacement d'appareil estdésactivée par défaut.

1. Connectez-vous à votre interface utilisateur Web Jenkins.2. À gauche de l'écran, choisissez Manage Jenkins (Gérer Jenkins).3. Choisissez Configure System (Configurer le système).4. Faites défiler l'écran jusqu'à l'en-tête AWS Device Farm.5. Copiez vos identifiants de sécurité de votre Étape 2 : Créer un utilisateur IAM (p. 277) et collez votre

ID de clé d'accès et votre clé d'accès secrète dans leurs zones respectives.6. Choisissez Save (Enregistrer).

Étape 4 : Utilisation du plug-in dans une tâche JenkinsUne fois que vous avez installé le plug-in Jenkins, suivez ces instructions pour utiliser le plug-in dans unetâche Jenkins.

1. Connectez-vous à votre interface utilisateur Web Jenkins.2. Cliquez sur la tâche que vous souhaitez modifier.3. À gauche de l'écran, choisissez Configure (Configurer).4. Faites défiler l'écran jusqu'à l'en-tête Post-build Actions (Actions de post-production).5. Cliquez sur Add post-build action (Ajouter une action de post-production) et sélectionnez Run Tests on

AWS Device Farm (Exécuter les tests sur AWS Device Farm).6. Sélectionnez le projet que vous souhaitez utiliser.7. Sélectionnez le groupe d'appareils que vous souhaitez utiliser.8. Indiquez si vous souhaitez obtenir les artefacts de test (telles que les journaux et les captures d'écran)

archivés localement.9. Dans Application, indiquez le chemin de votre application compilée.10. Sélectionnez le test que vous souhaitez exécuter et renseignez tous les champs obligatoires.11. Choisissez Save (Enregistrer).

DépendancesLe plug-in Jenkins CI nécessite le kit SDK AWS Mobile 1.10.5 ou une version ultérieure. Pour plusd'informations et pour installer le kit SDK, consultez Kit SDK AWS Mobile.

Version de l'API 2015-06-23278

Page 288: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurPlug-in Device Farm Gradle

Plug-in AWS Device Farm GradleCe plug-in fournit l'intégration d'AWS Device Farm au système de génération Gradle dans Android Studio.Pour plus d'informations, consultez Gradle.

Note

Pour télécharger le plug-in Gradle, accédez à GitHub et suivez les instructions de la sectionCréation du plug-in Gradle Device Farm (p. 279).

Le plug-in Gradle Device Farm fournit la fonctionnalité Device Farm de votre environnement AndroidStudio. Vous pouvez lancer des tests sur de véritables téléphones et tablettes Android hébergés par DeviceFarm.

Cette section contient une série de procédures permettant de configurer et d'utiliser le plug-in GradleDevice Farm.

Rubriques• Etape 1 : Création du plug-in Gradle AWS Device Farm (p. 279)• Etape 2 : Configuration du plug-in Gradle AWS Device Farm (p. 279)• Etape 3 : Génération d'un utilisateur IAM (p. 281)• Etape 4 : Configuration des types de tests (p. 282)• Dépendances (p. 284)

Etape 1 : Création du plug-in Gradle AWS DeviceFarmCe plug-in fournit l'intégration d'AWS Device Farm au système de génération Gradle dans Android Studio.Pour plus d'informations, consultez Gradle.

Note

La création du plug-in est facultative. Le plug-in est publié via Maven Central. Si vous souhaitezautoriser Gradle à télécharger le plug-in directement, ignorez cette étape et passez à Etape 2 :Configuration du plug-in Gradle AWS Device Farm (p. 279).

Pour créer le plug-in

1. Accédez à GitHub et clonez le référentiel.2. Créez le plug-in à l'aide de gradle install.

Le plug-in est installé sur votre référentiel Maven local.

Étape suivante: Etape 2 : Configuration du plug-in Gradle AWS Device Farm (p. 279)

Etape 2 : Configuration du plug-in Gradle AWS DeviceFarmSi ce n'est pas déjà fait, clonez le référentiel et installez le plug-in à l'aide de la procédure suivante :Création du plug-in Gradle Device Farm (p. 279).

Version de l'API 2015-06-23279

Page 289: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration du plug-in Gradle Device Farm

Pour configurer le plug-in Gradle AWS Device Farm

1. Ajoutez l'artéfact du plug-in à votre liste de dépendances dans 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' } }

2. Configurez le plug-in dans votre fichier build.gradle. Le configuration spécifique au test suivantedoit vous servir de guide :

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")

Version de l'API 2015-06-23280

Page 290: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurGénération d'un utilisateur IAM

// 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") } }

3. Exécutez votre test Device Farm en utilisant la tâche suivante : gradle devicefarmUpload.

La sortie de la build imprimera un lien vers la console Device Farm, depuis laquelle vous pouvezsurveiller l'exécution de votre test.

Étape suivante: Génération d'un utilisateur IAM (p. 281)

Etape 3 : Génération d'un utilisateur IAMAWS Identity and Access Management (IAM) vous permet de gérer les autorisations et les stratégiesd'utilisation des ressources AWS. Cette rubrique vous permet de découvrir la génération d'un utilisateurIAM disposant d'autorisations d'accès à des ressources AWS Device Farm.

Si ce n'est pas déjà fait, effectuez les étapes 1 et 2 avant de générer un utilisateur IAM.

Nous vous recommandons de ne pas utiliser votre compte racine AWS pour accéder à Device Farm. Àla place, créez un utilisateur IAM (ou utilisez un utilisateur IAM existant) dans votre compte AWS, puisaccédez à Device Farm avec cet utilisateur IAM.

Note

Le compte racine AWS ou l'utilisateur IAM que vous utilisez pour effectuer les étapes suivantesdoit avoir l'autorisation de créer la stratégie IAM suivante et de l'attacher à l'utilisateur IAM. Pourplus d'informations, consultez Utilisation de stratégies.

Pour créer un utilisateur avec la stratégie d'accès appropriée dans IAM

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Sélectionnez Utilisateurs.3. Choisissez Créer des utilisateurs.4. Entrez le nom d'utilisateur de votre choix.

Version de l'API 2015-06-23281

Page 291: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration des types de tests

Par exemple, GradleUser.5. Sélectionnez Créer.6. Choisissez Télécharger les informations d'identification et enregistrez-les à un emplacement où vous

pourrez facilement les récupérer ultérieurement.7. Choisissez Fermer.8. Choisissez le nom d'utilisateur dans la liste.9. Sous Autorisations, développez l'en-tête Stratégies en ligne en cliquant sur la flèche vers le bas située

à droite.10. Choisissez cliquez ici dans le message Il n'y a aucune stratégie en ligne à afficher. Pour en créer une,

cliquez ici.11. Dans l'écran Réglez les permissions, choisissez Stratégie personnalisée.12. Choisissez Sélectionner.13. Attribuez un nom à votre stratégie, par exemple AWSDeviceFarmGradlePolicy.14. Collez la stratégie suivante dans Document de stratégie.

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

15. Choisissez Appliquer la stratégie.

Étape suivante: Configuration des types de tests (p. 282).

Pour plus d'informations, consultez Création d'un utilisateur IAM (AWS Management Console) ouConfiguration (p. 3).

Etape 4 : Configuration des types de testsPar défaut, le plug-in Gradle AWS Device Farm exécute le test Utilisation d'Instrumentation pour Androidet AWS Device Farm (p. 81). Si vous souhaitez exécuter vos propres tests ou spécifier des paramètressupplémentaires, vous pouvez choisir de configurer un type de test. Cette rubrique fournit des informationssur chaque type de test disponible, ainsi que la procédure à suivre dans Android Studio pour le configurerafin de l'utiliser. Pour plus d'informations sur les types de tests disponibles dans Device Farm, consultezUtilisation de types de tests dans AWS Device Farm (p. 55).

Si ce n'est pas déjà fait, effectuez les étapes 1 à 3 avant de configurer les types de tests.Note

Si vous utilisez des emplacements d'appareils (p. 8), la fonction d'emplacement d'appareil estdésactivée par défaut.

AppiumDevice Farm prend en charge Appium Java JUnit et TestNG pour Android.

• Appium Java JUnit (p. 62)

Version de l'API 2015-06-23282

Page 292: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurConfiguration des types de tests

• Appium Java TestNG (p. 57)

Vous pouvez choisir useTestNG() ou useJUnit(). JUnit est la valeur par défaut et n'a pas besoind'être explicitement spécifié.

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

Explorateur intégréDevice Farm fournit un explorateur d'applications intégré permettant de tester les flux utilisateur via votreapplication sans devoir écrire des scripts de test personnalisés. Vous pouvez spécifier un nom d'utilisateuret un mot de passe afin de tester les scénarios nécessitant une connexion. Voici comment configurer lenom d'utilisateur et le mot de passe :

appexplorer { username "my-username" password "my-password" }

Pour plus d'informations, consultez Explorateur intégré (Android) (p. 134).

Fuzz intégréDevice Farm fournit un type de test Fuzz intégré qui envoie de manière aléatoire des événementsd'interface utilisateur aux appareils et fournit ensuite les résultats.

fuzz {

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

}

Pour plus d'informations, consultez Fuzz intégré (Android et iOS) (p. 135).

CalabashDevice Farm fournit la prise en charge de Calabash pour Android. Pour plus d'informations sur lapréparation des tests Calabash Android, consultez Calabash (p. 79).

calabash { tests file("path to zip file") // required tags "my tags" // optional calabash tags profile "my profile" // optional calabash profile }

InstrumentationDevice Farm fournit la prise en charge d'Instrumentation (JUnit, Espresso, Robotium et tous les tests baséssur Instrumentation) pour Android. Pour plus d'informations, consultez Utilisation d'Instrumentation pourAndroid et AWS Device Farm (p. 81).

Version de l'API 2015-06-23283

Page 293: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeurDépendances

Lorsque vous exécutez un test d'instrumentation dans Gradle, Device Farm utilise le fichier .apk généré àpartir de votre répertoire androidTest comme source pour vos tests.

instrumentation {

filter "test filter per developer docs" // optional

}

UI AutomatorChargez votre application et les tests basés sur UI Automator dans un fichier .jar.

uiautomator { tests file("path to uiautomator jar file") // required filter "test filter per developer docs" // optional

}

Pour plus d'informations, consultez UI Automator (p. 82).

DépendancesExécution

• Le plug-in Gradle Device Farm nécessite le kit SDK AWS Mobile 1.10.15 ou version ultérieure. Pour plusd'informations et pour installer le kit SDK, consultez Kit SDK AWS Mobile.

• Android tools builder test api 0.5.2• Apache Commons Lang3 3.3.4

Pour les tests d'unité

• Testng 6.8.8• Jmockit 1.19• Android gradle tools 1.3.0

Version de l'API 2015-06-23284

Page 294: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Historique du documentLe tableau suivant décrit les modifications importantes apportées à la documentation depuis la dernièreversion de ce manuel.

Modification Description Date demodification

Prise en charge dePython 3

Device Farm prend désormais en charge Python 3 dans lestests en mode personnalisé. En savoir plus sur l'utilisation dePython 3 dans vos packages de test :

• the section called “Appium Python” (p. 98)• the section called “Appium Python” (p. 70)

20 avril 2020

Nouvellesinformations surla sécurité etinformations surle balisage desressources AWS.

Pour faciliter la sécurisation des services AWS et la rendreplus complète, une nouvelle section sur la sécurité aété créée. Pour en savoir plus, consultez Sécurité dansAWS Device Farm (p. 253)

Une nouvelle section sur le balisage dans Device Farm a étéajoutée. Pour de plus amples informations sur le balisage,consultez Balisage dans Device Farm (p. 53).

27 mars 2020

Suppressiond'accès direct auxpériphériques.

L'accès direct aux périphériques (débogage à distance sur despériphériques privés) n'est plus disponible pour une utilisationgénérale. Pour toute question relative à la future disponibilité del'accès direct aux périphériques, contactez-nous.

9septembre 2019

Mise à jour de laconfiguration du plug-in Gradle

Une configuration de plug-in Gradle révisée inclut désormaisune version personnalisable de la configuration Gradle, avecdes paramètres facultatifs mis en commentaire. En savoir plussur Configuration du plug-in Gradle Device Farm (p. 279).

16 août 2019

Nouvelle exigencepour les exécutions detest avec XCTest

Pour les exécutions de test qui utilisent l'infrastructure XCTest,Device Farm a besoin désormais d'un package d'applicationconçue pour les tests. En savoir plus sur the section called“XCTest” (p. 109).

4 février 2019

Prise en charge destypes de test AppiumNode.js et Ruby dansdes environnementspersonnalisés

Vous pouvez désormais exécuter vos tests dans lesenvironnements de test personnalisés Appium Node.js etAppium Ruby. En savoir plus sur Utilisation de types de testsdans AWS Device Farm (p. 55).

10 janvier 2019

Prise en charge dela version 1.7.2 duserveur Appium dansles environnementsstandard etpersonnalisés.Prise en chargede la version 1.8.1en utilisant unfichier YAML de

Vous pouvez désormais exécuter vos tests dans lesenvironnements de test standard et personnalisés avec lesversions 1.72, 1.71 et 1.6.5 du serveur Appium. Vous pouvezégalement exécuter vos tests avec les versions 1.8.1 et1.8.0 en utilisant un fichier YAML de spécification de testpersonnalisé dans un environnement de test personnalisé. Ensavoir plus sur Utilisation de types de tests dans AWS DeviceFarm (p. 55).

2 octobre 2018

Version de l'API 2015-06-23285

Page 295: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Modification Description Date demodification

spécification de testpersonnalisé dans unenvironnement de testpersonnalisé.

Environnements detest personnalisés

Avec un environnement de test personnalisé, vous pouvez vousassurer que vos tests s'exécutent comme ils le font dans votreenvironnement local. Device Farm offre désormais la prise encharge des journaux en direct et du streaming vidéo en continu,afin que vous puissiez obtenir des commentaires instantanéssur vos tests qui sont exécutés dans un environnement de testpersonnalisé. En savoir plus sur Utilisation d'environnements detest personnalisés (p. 137).

16 août 2018

Prise en charge del'utilisation de DeviceFarm en tant quefournisseur de testAWS CodePipeline

Vous pouvez désormais configurer un pipeline dans AWSCodePipeline pour utiliser les exécutions d'AWS Device Farmen tant qu'actions de test dans votre processus de publication.CodePipeline vous permet de relier rapidement votre référentielaux étapes de génération et de test afin d'obtenir un systèmed'intégration continue adapté à vos besoins. En savoir plussur Utilisation d'AWS Device Farm dans une étape de testCodePipeline (p. 170).

19 juillet 2018

Prise en charge desappareils privés

Vous pouvez désormais utiliser des appareils privés pourplanifier des séries de tests et démarrer des sessions d'accèsà distance. Vous pouvez gérer les profils et les paramètresde ces appareils, créer des points de terminaison AmazonVPC pour tester les applications privées et créer des sessionsde débogage à distance. En savoir plus sur Utilisation desappareils privés dans AWS Device Farm (p. 148).

2 mai 2018

Prise en charged'Appium 1.6.3

Vous pouvez désormais définir la version d'Appium pour vostests personnalisés Appium.

21 mars 2017

Définir le délaid'exécution des sériesde tests

Vous pouvez définir le délai d'exécution d'une série de tests oupour tous les tests d'un projet. En savoir plus sur Définir le délaid'exécution des tests dans AWS Device Farm (p. 34).

9 février 2017

Mise en forme réseau Vous pouvez désormais simuler des connexions et desconditions réseau pour une série de tests. En savoir plus surSimuler des connexions et des conditions réseau (p. 35).

8 décembre2016

Nouvelle sectionde résolution desproblèmes

Vous pouvez désormais résoudre les problèmes de chargementde packages de tests à l'aide d'un ensemble de procéduresconçu pour corriger les messages d'erreur que vous pouvezrencontrer dans la console Device Farm. En savoir plus surDépannage (p. 180).

10 août 2016

Sessions d'accèsdistant

Vous pouvez désormais accéder à distance et interagir avec unseul appareil dans la console. En savoir plus sur Utilisation del'accès à distance (p. 144).

19 avril 2016

Libre-service pourles emplacementsd'appareils

Vous pouvez désormais acheter des emplacements d'appareilsà l'aide d'AWS Management Console, de l'AWS CommandLine Interface ou de l'API. Découvrez comment Acheter desemplacements d'appareils (p. 8).

22 mars 2016

Version de l'API 2015-06-23286

Page 296: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Modification Description Date demodification

Comment arrêter lesexécutions de test

Vous pouvez désormais arrêter les exécutions de test àl'aide d'AWS Management Console, de l'AWS CommandLine Interface ou de l'API. Découvrez comment Arrêter uneexécution dans AWS Device Farm (p. 37).

22 mars 2016

Nouveaux types detests XCTest UI

Vous pouvez désormais exécuter des tests personnalisésXCTest UI sur des applications iOS. En savoir plus sur lestypes de tests XCTest UI (p. 111).

8 mars 2016

Nouveaux types detests Appium écrits enPython

Vous pouvez désormais exécuter des tests personnalisésAppium Python sur des applications Android, iOS et Web. Ensavoir plus sur Utilisation de types de tests dans AWS DeviceFarm (p. 55).

19 janvier 2016

Types de testsd'application Web

Vous pouvez désormais exécuter des tests personnalisésAppium Java JUnit et TestNG sur des applications Web. Ensavoir plus sur Utilisation des tests d'applications Web dansAWS Device Farm (p. 112).

19 novembre 2015

Plug-in AWS DeviceFarm Gradle

Découvrez comment installer et utiliser le Plug-in Device FarmGradle (p. 279).

28 septembre2015

Nouveau test Androidintégré : explorateur

En savoir plus sur Explorateur intégré (Android) (p. 134). Le testd'explorateur analyse chaque écran de votre application commes'il était un utilisateur final et effectue des captures d'écran àmesure qu'il explore.

16 septembre 2015

Ajout de la prise encharge d'iOS

En savoir plus sur les tests d'appareils iOS et l'exécution detests iOS (y compris XCTest) dans Utilisation de types de testsdans AWS Device Farm (p. 55).

4 août 2015

Première versionpublique

Il s'agit de la première version publique du Manuel dudéveloppeur AWS Device Farm.

13 juillet 2015

Version de l'API 2015-06-23287

Page 297: AWS Device Farm · Appium Java TestNG..... 54 Appium Java JUnit..... 59 Appium Node.js..... 64 Version de l'API 2015-06-23 iv. AWS Device Farm Manuel du développeur

AWS Device Farm Manuel du développeur

Glossaire AWSPour la terminologie AWS la plus récente, consultez le Glossaire AWS dans le document AWS GeneralReference.

Version de l'API 2015-06-23288