Pour appliquer le fichier testng.xml au package de test Appium TestNG pour AWS Device Farm, je dois ajouter le fichier testng.xml à la racine du fichier *-tests.jar. Comment puis-je procéder ?

Pour démontrer l'utilisation du fichier testng.xml, vous pouvez utiliser le projet de tests Device Farm Appium de la page GitHub aws-samples, créer le fichier testng.xml, puis utiliser Maven pour créer le package des tests. Ensuite, à l'aide de l'exemple d'application Device Farm pour projet Android de la page GitHub aws-samples, vous pouvez créer un exemple d'application Android qui sera utilisé sur un appareil test.

Remarque : dans l'environnement standard de Device Farm, seul un sous-ensemble de fonctionnalités est pris en charge pour le fichier testng.xml. S'il s'agit d'une priorité, la balise include, la balise exclude, le regroupement complexe ou l'utilisation des paramètres du fichier testng.xml sont obligatoires pour le projet, puis utilisez les environnements personnalisés.

1.    Téléchargez ou clonez l'exemple de projet test Javaaws-device-farm-appium-tests-for-sample-app, extrayez le projet si nécessaire, puis remplacez le répertoire actif par celui de ce projet.

cd aws-device-farm-appium-tests-for-sample-app/

2.    Créez le répertoire /src/test/resources :

mkdir src/test/resources

Le Super POM est configuré de façon à ajouter tous les fichiers dans le répertoire des ressources au fichier *- tests.jar.

Pour consulter le Super POM du projet, exécutez cette commande :

mvn help:effective-pom

Vous pouvez également implémenter les balises testResources dans pom.xml afin de référencer explicitement un autre répertoire outre src/test/resources :

<testResources>
     <testResource>
        <directory>${project.basedir}/src/test/resources</directory>
     </testResource>
</testResources>

3.    Créez le fichier testng.xml dans le répertoire src/test/resources, puis ajoutez la classe AlertPageTest au fichier :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Default Suite">
    <test name="test">
        <classes>
            <class name="Tests.AlertPageTest"/> <!--Package.ClassName-->
        </classes>
    </test>
</suite>

4.    Modifiez the pom.xml de façon à inclure le plug-in surefire afin de référencer le fichier testng.xml pour des exécutions locales :

<plugin>
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12.4</version> 
    <configuration>
       <suiteXmlFiles> <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile></suiteXmlFiles>
    </configuration>
</plugin>

Cette étape est facultative si le projet doit uniquement être exécuté dans Device Farm. Toutefois, il est recommandé d'exécuter les tests localement avant de les charger dans Device Farm.

5.    Supprimez le contenu du répertoire cible, puis créez le package des tests à l'aide des commandes Maven clean et package. L'option -DskipTests=true spécifie que la build ne doit pas exécuter les tests unitaires.

mvn clean package -DskipTests=true

La commande package crée le fichier zip-with-dependencies.zip dans le répertoire cible avec le fichier *-tests.jar.

6.    Utilisez la commande xf pour extraire le jar afin de vérifier que le fichier testng.xml se trouve à la racine :

jar xf nameOfTheProjectFromPom-1.0-SNAPSHOT-tests.jar

D'autre part, la commande unzip peut également extraire le contenu du fichier jar :

unzip nameOfTheProjectFromPom-1.0-SNAPSHOT-tests.jar -d sampletestsjarcontents

7.    Clonez l'exemple d'application android aws-device-farm-sample-app-for-android d'aws-samples sur GitHub, puis utilisez-le pour un test dans Device Farm.

https://github.com/awslabs/aws-device-farm-sample-app-for-android

Clonez ce projet ou téléchargez une version zip de celui-ci, puis passez dans le répertoire /aws-device-farm-sample-app-for-android :

git clone https://github.com/awslabs/aws-device-farm-sample-app-for-android.git
cd aws-device-farm-sample-app-for-android/

8.    Ajoutez la variable ANDROID_HOME au chemin d'accès si elle ne s'y trouve pas, puis générez le projet.

Pour Windows :

Définissez la variable ANDROID_HOME dans les variables environnementales du chemin d'accès.

Générez le projet en exécutant la commande gradle avec un paramètre assembleDebug :

gradlew.bat assembleDebug

Pour macOS ou Linux :

Ajoutez la ligne suivante au fichier /.bash_profile :

export ANDROID_HOME=/Users/$(whoami)/Library/Android/sdk

Rechargez le profil à l'aide de la commande source :

source ~/.bash_profile

Générez le projet en exécutant la commande gradle avec un paramètre assembleDebug :

./gradlew assembleDebug

Cette opération crée un fichier app-debug.apk dans le répertoire ./app/build/outputs/apk qui est utilisé lors des tests sur Device Farm.

9.    Planifiez un test dans Device Farm, puis vérifiez qu'il a uniquement exécuté les tests dans la classe AlertPageTest.java.

Toutes les suites (Setup Suite, Tests.AlertPageTest, Teardown Suite) devraient indiquer une réussite.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 26/09/2018