Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Intégrer Device Farm à un système de construction Gradle
Le plugin Device Farm Gradle permet l'intégration de AWS Device Farm au système de build Gradle dans Android Studio. Pour plus d'informations, consultez Gradle
Note
Pour télécharger le plugin Gradle, rendez-vous sur GitHub
Le plugin Device Farm Gradle fournit les fonctionnalités Device Farm à partir de votre environnement Android Studio. Vous pouvez lancer les tests sur de vrais téléphones et tablettes Android hébergés par Device Farm.
Cette section contient une série de procédures pour configurer et utiliser le plugin Device Farm Gradle.
Rubriques
Dépendances
Exécution
-
Le plugin Device Farm Gradle nécessite le AWS Mobile SDK 1.10.15 ou version ultérieure. Pour plus d'informations et pour installer leSDK, voir AWSMobile SDK
. -
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
Étape 1 : Création du plugin AWS Device Farm Gradle
Ce plugin permet l'intégration de AWS Device Farm au système de construction 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 souhaitez autoriser Gradle à télécharger le plug-in directement, ignorez cette étape et passez à Étape 2 : Configuration du plugin AWS Device Farm Gradle.
Pour créer le plug-in
Accédez au dépôt GitHub
et clonez-le. Créez le plug-in à l'aide de
gradle install
.Le plug-in est installé sur votre référentiel Maven local.
Étape suivante : Étape 2 : Configuration du plugin AWS Device Farm Gradle
Étape 2 : Configuration du plugin AWS Device Farm Gradle
Si 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 plugin Device Farm Gradle.
Pour configurer le plug-in AWS Device Farm Gradle
-
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' } }
-
Configurez le plug-in dans votre fichier
build.gradle
. Le configuration spécifique au test suivante doit 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") // 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") } }
-
Exécutez votre test Device Farm à l'aide de la tâche suivante :
gradle devicefarmUpload
.La sortie de compilation affichera un lien vers la console Device Farm où vous pourrez surveiller l'exécution de vos tests.
Étape suivante : Génération d'un IAM utilisateur dans le plugin Device Farm Gradle
Étape 3 : Génération d'un IAM utilisateur dans le plugin Device Farm Gradle
AWS Identity and Access Management (IAM) vous aide à gérer les autorisations et les politiques relatives à l'utilisation des AWS ressources. Cette rubrique explique comment créer un IAM utilisateur autorisé à accéder aux ressources de AWS Device Farm.
Si ce n'est pas déjà fait, effectuez les étapes 1 et 2 avant de générer un IAM utilisateur.
Nous vous recommandons de ne pas utiliser votre compte AWS root pour accéder à Device Farm. Créez plutôt un nouvel IAM utilisateur (ou utilisez un IAM utilisateur existant) dans votre AWS compte, puis accédez à Device Farm avec cet IAM utilisateur.
Note
Le compte AWS root ou IAM l'utilisateur que vous utilisez pour effectuer les étapes suivantes doit être autorisé à créer la IAM politique suivante et à l'associer à l'IAMutilisateur. Pour plus d'informations, consultez Utilisation de stratégies.
Pour créer un nouvel utilisateur doté de la politique d'accès appropriée dans IAM
Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/
. Choisissez Utilisateurs.
-
Choisissez Créer des utilisateurs.
-
Entrez le nom d'utilisateur de votre choix.
Par exemple,
GradleUser
. -
Sélectionnez Create (Créer).
-
Choisissez Télécharger les informations d'identification et enregistrez-les à un emplacement où vous pourrez facilement les récupérer ultérieurement.
-
Choisissez Close (Fermer).
-
Choisissez le nom d'utilisateur dans la liste.
-
Sous Autorisations, développez l'en-tête Stratégies en ligne en cliquant sur la flèche vers le bas située à droite.
-
Choisissez Cliquez ici là où il est écrit « Il n'y a aucune politique en ligne à afficher ». Pour en créer un, cliquez ici.
-
Sur l'écran Set Permissions (Réglez les permissions), choisissez Stratégie personnalisée.
-
Choisissez Select (Sélectionner).
-
Attribuez un nom à votre stratégie, par exemple
AWSDeviceFarmGradlePolicy
. -
Collez la stratégie suivante dans Document de stratégie.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeviceFarmAll", "Effect": "Allow", "Action": [ "devicefarm:*" ], "Resource": [ "*" ] } ] }
Choisissez Apply Policy (Appliquer la stratégie).
Étape suivante: Configuration des types de tests.
Pour plus d'informations, voir Création d'un IAM utilisateur (AWS Management Console) ouConfiguration.
Étape 4 : Configuration des types de tests
Par défaut, le plugin AWS Device Farm Gradle exécute le Instrumentation pour Android et AWS Device Farm test. Si vous souhaitez exécuter vos propres tests ou spécifier des paramètres supplémentaires, vous pouvez choisir de configurer un type de test. Cette rubrique fournit des informations sur chaque type de test disponible, ainsi que la procédure à suivre dans Android Studio pour le configurer afin de l'utiliser. Pour plus d'informations sur les types de tests disponibles dans Device Farm, consultezFrameworks de test et tests intégrés dans AWS Device Farm.
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, la fonction d'emplacement d'appareil est désactivée par défaut.
Appium
Device Farm prend en charge Appium Java et JUnit TestNG pour Android.
Vous pouvez choisir useTestNG()
ou useJUnit()
. JUnit
est la valeur par défaut et n'a pas besoin d'être explicitement spécifié.
appium { tests file("path to zip file") // required useTestNG() // or useJUnit() }
Intégré : fuzz
Device Farm propose un type de test de fuzz intégré, qui envoie de manière aléatoire les événements de l'interface utilisateur aux appareils, puis communique les résultats.
fuzz { eventThrottle 50 // optional default eventCount 6000 // optional default randomizerSeed 1234 // optional default blank }
Pour de plus amples informations, veuillez consulter Exécution du test de fuzz intégré à Device Farm (Android et iOS).
Instrumentation
Device Farm prend en charge l'instrumentation (EspressoJUnit, Robotium ou tout autre test basé sur l'instrumentation) pour Android. Pour de plus amples informations, veuillez consulter Instrumentation pour Android et AWS Device Farm.
Lors de l'exécution d'un test d'instrumentation dans Gradle, Device Farm utilise le .apk
fichier généré à partir de votre androidTestrépertoire comme source de vos tests.
instrumentation { filter "test filter per developer docs" // optional }