Appium Dépendance Maven : Configuration avec Eclipse Exemple de projet

⚡ Résumé intelligent

Appium La gestion des dépendances Maven permet à un projet d'automatisation mobile de déclarer l'artefact java-client dans le fichier pom.xml, de sorte que Maven résolve automatiquement chaque fichier jar et que la même compilation s'exécute sur n'importe quelle machine sans téléchargement manuel.

  • 🔴 Ce que fait Maven : Apache Maven Gère le cycle de vie de la compilation et résout les dépendances à partir d'un seul fichier pom.xml déclaratif.
  • ☑️ Un artefact : La dépendance io.appium java-client importe le Selenium API, pilote distant et fichiers JAR de support transitivement.
  • ✅ Discipline de la version : Faites correspondre la version du client Java à la version Selenium La plage qu'elle déclare permet d'éviter l'erreur NoSuchMethodError lors de l'exécution.
  • 🧪 Mise en page fixe : Surefire n'exécute que les classes situées sous src/test/java ; par conséquent, les tests mal placés sont compilés mais ne sont jamais exécutés.
  • ️ Ligne de commande mvn clean test compile et exécute la suite, en écrivant les résultats dans target/surefire-reports.
  • (I.e. Pré-requis : Maven ne commence jamais le Appium Un serveur ou un appareil doit être prêt avant le début de la compilation.

Appium Configuration des dépendances Maven avec pom.xml et l'artefact java-client

Qu'est-ce que le Apache Maven?

Apache Maven est une Javaoutil de gestion de projet et d'automatisation basé sur . Il fournit un cadre multitâche aux développeurs pour faciliter le cycle de vie complet de la construction pour Java candidatures. Maven est prédéfini et déclaré dans un format XML appelé POM (Project Object Model) et appelé « pom.xml ». Il peut également être utilisé pour d’autres langages comme C#, Scala, Ruby, etc.

Grâce au framework Maven, vous pouvez facilement gérer les tâches suivantes dans n'importe quel projet :

  • Cycle de construction
  • Documentation du projet
  • Vérifications des rapports
  • Gestion des Scrums
  • Divulguer des renseignements

Les utilisations de base de Maven sont :

  • Applique une structure de répertoires standard.
  • Fournir une structure de projet réutilisable et facile à entretenir.
  • Résolvez les dépendances des packages.
  • Fournir un cadre de gestion de configuration.

Cette capacité à résoudre les dépendances est exactement ce qu'un Appium le projet a besoin, car le Java le client déclenche une chaîne de Selenium Des fichiers JAR que personne ne veut télécharger manuellement.

Télécharger Appium Dépendances Maven

Avant de commencer à écrire un Appium Pour effectuer un test de dépendance avec Maven, vous devez télécharger le Appium Dépendance Maven — la Appium Télécharger le fichier JAR — depuis Site web du dépôt central MavenLa capture d'écran ci-dessous montre la liste des artefacts java-client sur Maven Central, où chaque version publiée et son extrait de code prêt à l'emploi sont disponibles.

Appium Liste des artefacts java-client sur la page de recherche du dépôt central Maven

Ou ajoutez directement l'artefact POM.xml mentionné ci-dessous :

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>3.4.1</version>
</dependency>

⚠️ Note de version : le 3.4.1 Les coordonnées ci-dessus correspondent à l'exemple original et montrent toujours la forme correcte du bloc. Cet exemple est antérieur au protocole WebDriver du W3C ; par conséquent, un nouveau projet devrait utiliser une version plus récente. À l'heure où j'écris ces lignes, la version disponible sur Maven Central est : 10.1.1, ce qui nécessite Selenium 4.42.0 ou plus tard.

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>10.1.1</version>
</dependency>

Veuillez consulter notre Tutoriel Maven pour apprendre à configurer Maven avec Eclipse.

Appium Structure du projet Maven et dépendances requises

Maven impose une structure fixe, et la connaître permet d'éviter la plupart des confusions qui surviendront plus tard dans ce guide. Un projet généré contient quatre emplacements importants :

  • pom.xml — le modèle objet du projet à la racine du projet, où chaque dépendance et chaque plugin est déclaré.
  • src / main / java — classes d'application et classes auxiliaires.
  • src/test/java — les classes de test, et le seul répertoire que le plugin Surefire analyse lors de l'exécution d'une compilation.
  • l'objectif — Résultats compilés et rapports de tests, régénérés à chaque compilation.

Le Appium java-client est la seule dépendance obligatoire, car elle déclare le Selenium API, pilote distant et artefacts de support de manière transitive. De nombreuses équipes continuent de les épingler. Selenium Indiquez explicitement la version afin qu'elle soit visible à un seul endroit, et ajoutez un outil d'exécution de tests :

<dependencies>
  <dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>10.1.1</version>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.42.0</version>
  </dependency>
</dependencies>

Maintenez la compatibilité entre les deux versions. Une version du client Java indique que Selenium la gamme qu'il prend en charge, et le mélange d'un ancien client avec un client beaucoup plus récent Selenium est la cause la plus fréquente d'une erreur NoSuchMethodError lors de l'exécution. dépôt client Java documente l'association pour chaque sortie.

Application de test avec Appium et Maven

Avec cette dépendance établie, le Eclipse Le flux de travail ci-dessous permet de créer un projet exécutable à partir de zéro. Après avoir configuré le Appium Java Plug-in Maven dans EclipseL'espace de travail est prêt à tester n'importe quel Android .apk application avec Appium et Maven, comme le montre le Appium Exemple de projet Maven ci-dessous.

Étape 1) Dans cette étape,

  1. Allez dans NOUVEAU >> sélectionnez le projet Maven
  2. Cliquez sur le bouton « suivant ».

L'assistant de création de projet s'ouvre avec le projet Maven mis en surbrillance, comme illustré ici.

Eclipse Assistant Nouveau projet avec projet Maven sélectionné

Étape 2) Ensuite, dans la fenêtre « Nouveau projet Maven », saisissez «Appium Saisissez « Test » dans les colonnes ID du groupe et ID de l'artefact. À cette étape, vous devez saisir :

  1. Identifiant du groupe
  2. ID d'artefact
  3. Version
  4. Emballage
  5. Nom et Description CMS
  6. Finition

Le formulaire « Nouveau projet Maven » complété ressemble à la capture d'écran ci-dessous.

Nouvelle fenêtre de projet Maven avec l'ID de groupe, l'ID d'artefact, la version et le packaging renseignés.

Cliquer sur le bouton Terminer ouvrira une nouvelle classe sous l'identifiant de groupe défini (AppiumNom du test.

Étape 3) Pour commencer avec le Appium Dans le script, faites un clic droit sur « src/main/java » dans la fenêtre de l'explorateur située à gauche. Sélectionnez ensuite Nouveau >> Classe. Saisissez le code suivant : Appium code à l’intérieur de la classe sélectionnée.

Le menu contextuel utilisé pour créer cette classe est présenté ci-dessous.

Menu contextuel (clic droit) sur src/main/java affichant Nouveau et Classe dans Eclipse explorateur

Étape 4) Dans le même projet, cliquez sur pom.xml dans le menu de l'explorateur situé à gauche. Toutes les dépendances seront visibles par défaut dans l'onglet « pom.xml ». Voir l'image ci-dessous.

onglet éditeur pom.xml dans Eclipse liste des dépendances de projet résolues

Si le fichier pom.xml par défaut n'existe pas, ajoutez simplement tous les éléments Maven. Appium dépendances, par exempletracted du site web du dépôt central Maven :

https://central.sonatype.com/artifact/io.appium/java-client

Le fichier pom.xml modifié avec le Appium Les dépendances ajoutées sont indiquées ci-dessous.

vue source du fichier pom.xml après le Appium La dépendance java-client a été collée dans

Étape 5) Maintenant, cliquez avec le bouton droit sur « pom.xml » dans l'explorateur de gauche, ou sur le code XML du «AppiumCréez un projet de test. Cliquez ensuite sur l'option « Exécuter en tant que >> Maven Clean », comme indiqué ci-dessous.

Eclipse Sous-menu Exécuter en tant que, avec l'option Maven Clean sélectionnée

Pendant l'exécution, vous pouvez voir tous les fichiers JAR liés à Maven et un message de réussite, comme dans la sortie console ci-dessous. Voici comment exécuter une commande Maven. Appium Java Test de dépendance Maven côté client dans un environnement configuré avec Maven.

Eclipse La console affiche les fichiers JAR Maven téléchargés et le message de réussite de la compilation.

Comment courir Appium Tests avec les commandes Maven

Le Eclipse Le menu est pratique, mais la même compilation doit s'exécuter automatiquement sur un serveur de compilation, et dans ce cas, la ligne de commande est la seule option. Ouvrez un terminal dans le dossier contenant le fichier pom.xml et utilisez ces commandes.

mvn clean
mvn clean test
mvn clean install
mvn test -Dtest=LoginTest

Chacun a un rôle bien défini :

  • mvn propre supprime le target Le répertoire permet de supprimer les fichiers obsolètes lors de la prochaine compilation. Voici la commande : Eclipse Explication détaillée des déclencheurs ci-dessus.
  • test propre mvn Il compile le projet et exécute les classes de test. Le plugin Maven Surefire les récupère automatiquement depuis src/test/java, en utilisant les modèles d'inclusion par défaut Test*.java, *Test.java, *Tests.java et *TestCase.java.
  • mvn propre installer Il exécute les tests puis place l'artefact empaqueté dans votre dépôt local, afin qu'un autre projet puisse en dépendre.
  • mvn test -Dtest=LoginTest réduit l'exécution à une seule classe pendant le débogage.

Deux points piègent les gens. Premièrement, le Appium Le serveur doit déjà être en cours d'exécution et un appareil ou un émulateur doit être connecté avant le début de la compilation, car Maven ne lance ni l'un ni l'autre ; vérifiez l'appareil avec un adb Vérifiez d'abord. Ensuite, les résultats sont écrits dans target/surefire-reports, qui est le dossier qu'une tâche d'intégration continue doit archiver. Guide d'utilisation Surefire décrit en détail les options de configuration, et les mêmes commandes permettent de piloter un Appium suite de Jenkins.

Commun Appium Erreurs Maven et comment les corriger

La plupart des échecs dans un Appium Les problèmes de configuration de Maven proviennent généralement de quelques causes récurrentes plutôt que du code de test lui-même. Le tableau ci-dessous associe chaque symptôme à sa solution habituelle.

Symptôme Cause probable Fixer
Impossible de résoudre les dépendances pour io.appium:java-client Chaîne de version incorrecte ou absence d'accès réseau à Maven Central Copiez les coordonnées directement depuis la liste Maven Central et relancez la compilation.
Erreur NoSuchMethodError ou NoClassDefFoundError provenant d'un Selenium classe Les versions de java-client et selenium-java sont incompatibles. Correspond à Selenium version conforme à la plage déclarée par la version du client Java
Les tests se compilent mais ne s'exécutent pas. Les classes de test se trouvent dans src/main/java, ou leur nom ne correspond pas à un modèle d'inclusion Surefire. Déplacez-les vers src/test/java et nommez la classe de manière à ce qu'elle se termine par Test.
Connexion refusée sur le port 4723 Le Appium Le serveur ne fonctionne pas. Commencer le Appium serveur avant la construction
Fonctionnalité non valide ou non prise en charge Noms de fonctionnalités héritées utilisés avec un pilote moderne Revvoir le courant capacités souhaitées pour votre plateforme
Version majeure du fichier de classe non prise en charge Le JDK utilisé par Maven diffère du niveau du compilateur dans le fichier pom.xml. Alignez les propriétés maven.compiler.source et target avec votre configuration installée. JDK

En cas d'échec d'une compilation, il est préférable de lire la première erreur affichée par Maven plutôt que la dernière. Les lignes suivantes sont généralement la conséquence de l'absence du premier artefact.

FAQ

Utilisez la version la plus récente disponible sur Maven Central plutôt qu'une version copiée d'un ancien tutoriel. À l'heure où j'écris ces lignes, il s'agit de la version 10.1.1, qui requiert… Selenium 4.42.0 ou version ultérieure dans le classpath.

Les modèles d'apprentissage automatique réparent les localisateurs d'éléments après une modification de l'interface utilisateur, regroupent les échecs dupliqués sur différents appareils et prédisent quels tests un commit est susceptible de casser, de sorte qu'une exécution Maven plus courte couvre la zone à risque.

Copilot complète automatiquement les éléments groupId, artifactId et version à partir d'un simple commentaire. Il suggère souvent un numéro de version obsolète ; vérifiez donc les coordonnées auprès de Maven Central avant de valider le fichier.

Pas strictement. Le client Java déclare le Selenium Les artefacts sont transitifs. De nombreuses équipes continuent de spécifier explicitement la version de selenium-java afin que celle-ci soit visible et que les mises à jour soient délibérées plutôt qu'accidentelles.

Les deux solutions permettent de résoudre les mêmes problèmes. Maven utilise du XML déclaratif et convient aux équipes qui souhaitent un cycle de vie fixe. Gradle scripts dans Groovy ou Kotlin et construit de manière incrémentale, ce qui est utile pour les grands dépôts multi-modules.

Dans src/test/java. Surefire n'analyse que ce répertoire lors d'une compilation ; par conséquent, une classe laissée dans src/main/java est compilée mais jamais exécutée, ce qui donne l'impression d'une suite de tests réussie silencieusement.

Non. Maven résout uniquement les fichiers JAR et exécute les tests. Démarrez le Appium Serveur et connectez d'abord un appareil ou un émulateur, ou lancez le serveur à partir de votre méthode de configuration de test ou d'une étape de pipeline CI.

Consultez le dépôt, démarrez le Appium serveur et périphérique, puis exécutez mvn clean test. ArchiUtilisez target/surefire-reports comme artefact de construction afin que les échecs restent lisibles après la destruction de l'agent.

Résumez cet article avec :