Appium Εξάρτηση Maven: Ρύθμιση με Eclipse Παράδειγμα έργου

⚡ Έξυπνη Σύνοψη

Appium Η διαχείριση εξαρτήσεων του Maven επιτρέπει σε ένα έργο αυτοματισμού για κινητά να δηλώσει το artifact του java-client στο pom.xml, έτσι ώστε το Maven να επιλύει αυτόματα κάθε jar και η ίδια έκδοση να εκτελείται σε οποιοδήποτε μηχάνημα χωρίς χειροκίνητες λήψεις.

  • ???? Τι κάνει η Maven: Apache Maven διαχειρίζεται τον κύκλο ζωής κατασκευής και επιλύει τις εξαρτήσεις από ένα μόνο δηλωτικό αρχείο pom.xml.
  • ☑️ Ένα τεχνούργημα: Η εξάρτηση io.appium java-client τραβάει το Selenium API, απομακρυσμένο πρόγραμμα οδήγησης και jar υποστήριξης μεταβατικά.
  • Πεδίο έκδοσης: Αντιστοιχίστε την έκδοση του java-client με το Selenium εύρος που δηλώνει για να αποφύγει το NoSuchMethodError κατά τον χρόνο εκτέλεσης.
  • 🧪 Σταθερή διάταξη: Το Surefire εκτελεί μόνο τις κλάσεις στην περιοχή src/test/java, επομένως οι δοκιμές που δεν έχουν τοποθετηθεί σωστά μεταγλωττίζονται αλλά δεν εκτελούνται ποτέ.
  • Γραμμή εντολών: Το mvn clean test μεταγλωττίζει και εκτελεί τη σουίτα, γράφοντας τα αποτελέσματα σε target/surefire-reports.
  • 📊 Απαιτούμενα: Το Maven δεν ξεκινά ποτέ το Appium διακομιστή ή συσκευή, επομένως και τα δύο πρέπει να είναι έτοιμα πριν ξεκινήσει η κατασκευή.

Appium Ρύθμιση εξαρτήσεων Maven με το pom.xml και το artifact java-client

Τι είναι Apache Maven?

Apache Maven είναι ένα Java-Βασισμένο εργαλείο διαχείρισης έργου και αυτοματισμού. Παρέχει ένα πλαίσιο πολλαπλών εργασιών για προγραμματιστές για να διευκολύνουν τον πλήρη κύκλο ζωής του build Java εφαρμογές. Το Maven είναι προκαθορισμένο και δηλωμένο σε μορφή XML που ονομάζεται POM (Project Object Model) και αναφέρεται ως "pom.xml". Μπορεί επίσης να χρησιμοποιηθεί για άλλες γλώσσες όπως C#, Scala, Ruby κ.λπ.

Χρησιμοποιώντας το πλαίσιο Maven, μπορείτε εύκολα να διαχειριστείτε τις ακόλουθες εργασίες σε οποιοδήποτε έργο:

  • Δημιουργία κύκλου
  • Τεκμηρίωση Έργου
  • Έλεγχοι αναφοράς
  • Διαχείριση Scrums
  • Πληροφορίες Έκδοσης

Οι βασικές χρήσεις του Maven είναι:

  • Επιβάλλει μια τυπική δομή καταλόγου.
  • Παρέχετε μια επαναχρησιμοποιήσιμη και εύκολη στη συντήρηση δομή του έργου.
  • Επίλυση εξαρτήσεων πακέτων.
  • Παρέχετε ένα πλαίσιο διαχείρισης διαμόρφωσης.

Αυτή η ικανότητα επίλυσης εξαρτήσεων είναι ακριβώς αυτό που ένας Appium ανάγκες του έργου, επειδή Java ο πελάτης τραβάει μια αλυσίδα από Selenium jars που κανείς δεν θέλει να κατεβάσει χειροκίνητα.

Λήψη Appium Εξαρτήσεις Maven

Πριν ξεκινήσετε να γράφετε ένα Appium δοκιμή εξάρτησης με το Maven, πρέπει να κατεβάσετε το Appium Εξάρτηση από το Maven — η Appium Αρχείο λήψης JAR — από το Ιστότοπος κεντρικού αποθετηρίου MavenΤο παρακάτω στιγμιότυπο οθόνης δείχνει την καταχώριση artifact του java-client στο Maven Central, όπου είναι διαθέσιμη κάθε δημοσιευμένη έκδοση και το έτοιμο απόσπασμά της.

Appium Καταχώριση τεχνουργήματος java-client στη σελίδα αναζήτησης του κεντρικού αποθετηρίου Maven

Ή προσθέστε απευθείας το τεχνούργημα POM.xml που αναφέρεται παρακάτω:

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

⚠️ Σημείωση έκδοσης: ο 3.4.1 Η παραπάνω συντεταγμένη είναι το αρχικό παράδειγμα και εξακολουθεί να δείχνει το σωστό σχήμα του μπλοκ. Προηγείται του πρωτοκόλλου W3C WebDriver, επομένως ένα νέο έργο θα πρέπει να αναβαθμίσει την έκδοση. Κατά τη στιγμή της συγγραφής, η τρέχουσα έκδοση στο Maven Central είναι 10.1.1, που απαιτεί Selenium 4.42.0 ή μεταγενέστερα.

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

Παρακαλώ περάστε από το δικό μας Εκμάθηση Maven για να μάθετε πώς να ρυθμίζετε τις παραμέτρους του Maven με Eclipse.

Appium Δομή Έργου Maven και Απαιτούμενες Εξαρτήσεις

Το Maven επιβάλλει μια σταθερή διάταξη και γνωρίζοντας ότι αποτρέπει το μεγαλύτερο μέρος της σύγχυσης που ακολουθεί αργότερα σε αυτήν την αναλυτική παρουσίαση. Ένα δημιουργημένο έργο περιέχει τέσσερις τοποθεσίες που έχουν σημασία:

  • pom.xml — το Μοντέλο Αντικειμένου Έργου στη ρίζα του έργου, όπου δηλώνεται κάθε εξάρτηση και πρόσθετο (plugin).
  • src / main / java — κλάσεις εφαρμογών και βοηθητικές κλάσεις.
  • src/test/java — δοκιμαστικές κλάσεις και ο μόνος κατάλογος που σαρώνει το πρόσθετο Surefire όταν εκτελείτε μια έκδοση.
  • στόχος — συγκέντρωσε αναφορές εξόδου και δοκιμών, οι οποίες αναδημιουργήθηκαν σε κάθε έκδοση.

The Appium Το java-client είναι η μόνη υποχρεωτική εξάρτηση, επειδή δηλώνει το Selenium API, απομακρυσμένο πρόγραμμα οδήγησης και αντικείμενα υποστήριξης μεταβατικά. Πολλές ομάδες εξακολουθούν να καρφιτσώνουν Selenium ρητά ώστε η έκδοση να είναι ορατή σε ένα μέρος και να προσθέσετε έναν δοκιμαστικό εκτελέστη:

<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>

Διατηρήστε τις δύο εκδόσεις συμβατές. Μια έκδοση Java-client αναφέρει το Selenium εύρος που υποστηρίζει και συνδυάζοντας έναν παλιό πελάτη με έναν πολύ νεότερο Selenium είναι η πιο συνηθισμένη αιτία ενός NoSuchMethodError κατά τον χρόνο εκτέλεσης. αποθετήριο java-client καταγράφει την αντιστοίχιση για κάθε κυκλοφορία.

Δοκιμή εφαρμογής με Appium και Maven

Με την εξάρτηση σε ισχύ, το Eclipse η παρακάτω ροή εργασίας δημιουργεί ένα εκτελέσιμο έργο από την αρχή. Μετά τη διαμόρφωση του Appium Java Πρόσθετο Maven Eclipse, ο χώρος εργασίας είναι έτοιμος να δοκιμάσει οποιαδήποτε Android .apk εφαρμογή με Appium και Maven, όπως φαίνεται στο Appium Παράδειγμα έργου Maven παρακάτω.

Βήμα 1) Στο στάδιο αυτό,

  1. Μεταβείτε στο NEW >> επιλέξτε το έργο Maven
  2. Κάντε κλικ στο κουμπί «επόμενο»

Ο οδηγός νέου έργου ανοίγει με επισημασμένο το Maven Project, όπως φαίνεται εδώ.

Eclipse Οδηγός νέου έργου με επιλεγμένο το Maven Project

Βήμα 2) Στη συνέχεια, στο παράθυρο 'New Maven Project', πληκτρολογήστε 'Appium Test' στις στήλες Group Id και Artifact Id. Σε αυτό το βήμα, πρέπει να εισαγάγετε:

  1. Αναγνωριστικό ομάδας
  2. Αναγνωριστικό τεχνουργήματος
  3. Έκδοση
  4. συσκευασία
  5. Όνομα και Descriptιόν
  6. φινίρισμα

Η συμπληρωμένη φόρμα του New Maven Project μοιάζει με το παρακάτω στιγμιότυπο οθόνης.

Παράθυρο Νέου Έργου Maven με συμπληρωμένα τα Αναγνωριστικό Ομάδας, Αναγνωριστικό Τεχνουργήματος, Έκδοση και Συσκευασία

Κάνοντας κλικ στο κουμπί Τέλος, θα ανοίξει μια νέα κλάση με το καθορισμένο αναγνωριστικό ομάδας (AppiumΔοκιμή) όνομα.

Βήμα 3) Για να ξεκινήσετε με το Appium script, κάντε δεξί κλικ στο 'src/main/java' στο αριστερό παράθυρο της εξερεύνησης. Στη συνέχεια, επιλέξτε Νέα >> κλάση. Γράψτε την Appium κωδικός μέσα στην επιλεγμένη τάξη.

Το μενού περιβάλλοντος που χρησιμοποιήθηκε για τη δημιουργία αυτής της κλάσης εμφανίζεται παρακάτω.

Κάντε δεξί κλικ στο μενού στο src/main/java που εμφανίζει τις επιλογές Νέα και Κλάση στο Eclipse εξερευνητής

Βήμα 4) Στο ίδιο έργο, κάντε κλικ στο pom.xml στο αριστερό μενού εξερεύνησης. Όλες οι εξαρτήσεις θα είναι ορατές από προεπιλογή στην καρτέλα 'pom.xml'. Ανατρέξτε στην παρακάτω εικόνα.

καρτέλα επεξεργασίας pom.xml σε Eclipse καταγραφή των επιλυμένων εξαρτήσεων έργου

Εάν το προεπιλεγμένο pom.xml δεν υπάρχει, τότε απλώς προσθέστε όλα τα Maven Appium εξαρτήσεις, π.χ.tracαπό την ιστοσελίδα του κεντρικού αποθετηρίου Maven:

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

Το επεξεργασμένο pom.xml με το Appium Οι εξαρτήσεις που προστέθηκαν εμφανίζονται παρακάτω.

προβολή πηγαίου κώδικα pom.xml μετά το Appium Η εξάρτηση java-client έχει επικολληθεί

Βήμα 5) Τώρα, κάντε δεξί κλικ στο 'pom.xml' στην αριστερή εξερεύνηση ή στον κώδικα XML για το 'AppiumΈργο Test'. Στη συνέχεια, κάντε κλικ στην επιλογή 'Εκτέλεση ως >> Maven Clean', όπως φαίνεται παρακάτω.

Eclipse Υπομενού Εκτέλεση ως με επισημασμένη την επιλογή Maven Clean

Κατά την εκτέλεση, μπορείτε να δείτε όλα τα αρχεία jar που σχετίζονται με το Maven και ένα μήνυμα επιτυχίας, όπως στην έξοδο της κονσόλας παρακάτω. Έτσι εκτελείτε ένα Appium Java δοκιμή εξάρτησης Maven πελάτη σε περιβάλλον διαμορφωμένο από Maven.

Eclipse κονσόλα που εμφανίζει τα ληφθέντα αρχεία Maven jar και το μήνυμα επιτυχίας κατασκευής

Τρόπος εκτέλεσης Appium Δοκιμές με εντολές Maven

The Eclipse Το μενού είναι βολικό, αλλά η ίδια έκδοση πρέπει να εκτελείται χωρίς παρακολούθηση σε έναν διακομιστή έκδοσης, και εκεί η γραμμή εντολών είναι η μόνη επιλογή. Ανοίξτε ένα τερματικό στον φάκελο που περιέχει το pom.xml και χρησιμοποιήστε αυτές τις εντολές.

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

Ο καθένας έχει μια ξεχωριστή δουλειά:

  • mvn καθαρό διαγράφει το target κατάλογο, ώστε τίποτα παλιό να μην επιβιώνει στην επόμενη έκδοση. Αυτή είναι η εντολή Eclipse αναλυτική παρουσίαση πάνω από τους εναύσματα.
  • δοκιμή καθαρού mvn μεταγλωττίζει το έργο και εκτελεί τις κλάσεις δοκιμών. Το πρόσθετο Maven Surefire τις αναλαμβάνει αυτόματα από src/test/java, χρησιμοποιώντας τα προεπιλεγμένα μοτίβα συμπερίληψης Test*.java, *Test.java, *Tests.java και *TestCase.java.
  • καθαρή εγκατάσταση mvn εκτελεί τις δοκιμές και στη συνέχεια τοποθετεί το συσκευασμένο τεχνούργημα στο τοπικό σας αποθετήριο, ώστε ένα άλλο έργο να μπορεί να βασιστεί σε αυτό.
  • mvn test -Dtest=LoginTest περιορίζει την εκτέλεση σε μία μόνο κλάση ενώ κάνετε εντοπισμό σφαλμάτων.

Δύο σημεία αποθαρρύνουν τους ανθρώπους. Πρώτον, το Appium Ο διακομιστής πρέπει να εκτελείται ήδη και να έχει συνδεθεί μια συσκευή ή ένας εξομοιωτής πριν ξεκινήσει η δημιουργία, επειδή το Maven δεν εκκινεί κανένα από τα δύο — επαληθεύστε τη συσκευή με ένα adb ελέγξτε πρώτα. Δεύτερον, τα αποτελέσματα γράφονται σε target/surefire-reports, ο οποίος είναι ο φάκελος που θα πρέπει να αρχειοθετήσει μια εργασία CI. Οδηγός χρήσης Surefire καλύπτει λεπτομερώς τις επιλογές διαμόρφωσης και οι ίδιες εντολές οδηγούν ένα Appium σουίτα από Jenkins.

Κοινός Appium Σφάλματα Maven και πώς να τα διορθώσετε

Οι περισσότερες αποτυχίες σε ένα Appium Η εγκατάσταση του Maven προέρχεται από μια σειρά επαναλήψιμων αιτιών και όχι από τον ίδιο τον κώδικα δοκιμής. Ο παρακάτω πίνακας αντιστοιχίζει κάθε σύμπτωμα με τη συνήθη επίλυσή του.

Σύμπτωμα Πιθανή αιτία σταθερός
Δεν ήταν δυνατή η επίλυση των εξαρτήσεων για το io.appium:java-client Λάθος συμβολοσειρά έκδοσης ή δεν υπάρχει πρόσβαση δικτύου στο Maven Central Αντιγράψτε τη συντεταγμένη απευθείας από την καταχώριση του Maven Central και εκτελέστε ξανά την κατασκευή
NoSuchMethodError ή NoClassDefFoundError από ένα Selenium τάξη Οι εκδόσεις java-client και selenium-java δεν είναι συμβατές Ταίριαξε το Selenium έκδοση στο εύρος που δηλώνει η έκδοση java-client
Οι δοκιμές μεταγλωττίζονται αλλά καμία δεν εκτελείται Οι δοκιμαστικές κλάσεις βρίσκονται στο src/main/java ή το όνομα της κλάσης δεν ταιριάζει με ένα μοτίβο συμπερίληψης Surefire. Μετακινήστε τα στο src/test/java και ονομάστε την κλάση έτσι ώστε να τελειώνει σε Test
Η σύνδεση απορρίφθηκε στη θύρα 4723 The Appium ο διακομιστής δεν λειτουργεί Ξεκινήστε το Appium διακομιστή πριν από την κατασκευή
Μη έγκυρη ή μη υποστηριζόμενη δυνατότητα Ονόματα παλαιών δυνατοτήτων που χρησιμοποιούνται με ένα σύγχρονο πρόγραμμα οδήγησης Revδείτε το ρεύμα επιθυμητές δυνατότητες για την πλατφόρμα σας
Μη υποστηριζόμενη κύρια έκδοση αρχείου κλάσης Το JDK που χρησιμοποιείται από το Maven διαφέρει από το επίπεδο μεταγλωττιστή στο pom.xml Ευθυγραμμίστε τις ιδιότητες maven.compiler.source και target με τις εγκατεστημένες σας JDK

Όταν μια κατασκευή αποτυγχάνει, διαβάστε το πρώτο σφάλμα που εκτυπώνει το Maven και όχι το τελευταίο. Οι τελευταίες γραμμές είναι συνήθως συνέπειες του πρώτου χαμένου τεχνουργήματος.

Συχνές Ερωτήσεις

Πάρτε την νεότερη έκδοση που αναφέρεται στο Maven Central αντί για μια έκδοση που αντιγράφηκε από ένα παλιό σεμινάριο. Τη στιγμή που γράφονται αυτές οι γραμμές, αυτή είναι η 10.1.1, η οποία αναμένει Selenium 4.42.0 ή νεότερη έκδοση στη διαδρομή κλάσεων.

Τα μοντέλα μηχανικής μάθησης επιδιορθώνουν τους εντοπιστές στοιχείων μετά από μια αλλαγή στο UI, ομαδοποιούν διπλότυπες αποτυχίες σε όλες τις συσκευές και προβλέπουν ποιες δοκιμές είναι πιθανό να αποτύχουν με μια υποβολή, επομένως μια μικρότερη εκτέλεση του Maven καλύπτει την επικίνδυνη περιοχή.

Το Copilot συμπληρώνει τα στοιχεία groupId, artifactId και version από ένα σχόλιο μίας γραμμής. Συχνά υποδηλώνει έναν παλιό αριθμό έκδοσης, επομένως επιβεβαιώστε τη συντεταγμένη με το Maven Central πριν από την υποβολή του αρχείου.

Όχι αυστηρά. Ο java-client δηλώνει το Selenium Τα artifacts μεταβατικά. Πολλές ομάδες εξακολουθούν να καρφιτσώνουν το selenium-java ρητά, ώστε η έκδοση να είναι ορατή και οι αναβαθμίσεις να είναι σκόπιμες και όχι τυχαίες.

Και τα δύο επιλύουν τα ίδια προβλήματα. Το Maven χρησιμοποιεί δηλωτική XML και είναι κατάλληλο για ομάδες που θέλουν έναν σταθερό κύκλο ζωής. Gradle σενάρια σε Groovy ή Kotlin και κατασκευάζεται σταδιακά, κάτι που βοηθά σε μεγάλα αποθετήρια πολλαπλών ενοτήτων.

Στο src/test/java. Το Surefire σαρώνει μόνο αυτόν τον κατάλογο κατά τη διάρκεια μιας κατασκευής, επομένως μια κλάση που απομένει στο src/main/java μεταγλωττίζεται αλλά δεν εκτελείται ποτέ, κάτι που μοιάζει με μια σουίτα που περνάει σιωπηλά.

Όχι. Το Maven επιλύει τα jars και εκτελεί μόνο δοκιμές. Ξεκινήστε το Appium διακομιστή και συνδέστε πρώτα μια συσκευή ή εξομοιωτή ή εκκινήστε τον διακομιστή από τη μέθοδο δοκιμής ρύθμισης ή ένα βήμα αγωγού CI.

Ελέγξτε το αποθετήριο, ξεκινήστε το Appium διακομιστή και μια συσκευή και, στη συνέχεια, εκτελέστε τη δοκιμή mvn clean test. ArchiΟι αναφορές ve target/surefire ως τεχνούργημα δημιουργίας, έτσι ώστε οι αποτυχίες να παραμένουν αναγνώσιμες μετά την καταστροφή του παράγοντα.

Συνοψίστε αυτήν την ανάρτηση με: