Appium Maven-afhængighed: Opsætning med Eclipse Projekteksempel
⚡ Smart opsummering
Appium Maven-afhængighedsstyring lader et mobilt automatiseringsprojekt deklarere java-client-artefakten i pom.xml, så Maven automatisk løser alle jar-filer, og den samme build kører på enhver maskine uden manuelle downloads.
Hvad er Apache Maven?
Apache Maven er en Java-baseret projektledelse og automatiseringsværktøj. Det giver en multitasking-ramme for udviklere at lette den komplette byggelivscyklus for Java applikationer. Maven er foruddefineret og erklæret i et XML-format kaldet POM (Project Object Model) og refereret til som 'pom.xml.' Det kan også bruges til andre sprog som C#, Scala, Ruby osv.
Ved hjælp af Maven-frameworket kan du nemt administrere følgende opgaver i ethvert projekt:
- Byg cyklus
- Projektdokumentation
- Rapporter kontrol
- Scrums ledelse
- Udgivelsesinformation
Grundlæggende anvendelser af Maven er:
- Håndhæver en standard mappestruktur.
- Giv en genanvendelig og nem at vedligeholde projektstruktur.
- Løs pakkeafhængigheder.
- Giv en konfigurationsstyringsramme.
Den evne til at løse afhængigheder er præcis, hvad en Appium projektets behov, fordi Java klienten trækker en kæde af Selenium krukker som ingen ønsker at downloade manuelt.
Hent Appium Maven afhængigheder
Før du begynder at skrive en Appium afhængighedstest med Maven, skal du downloade Appium Maven-afhængighed — den Appium JAR-downloadfil — fra Maven central repository hjemmesideSkærmbilledet nedenfor viser listen over java-client-artefakter på Maven Central, hvor alle publicerede versioner og deres færdige kodestykker er tilgængelige.
Eller tilføj direkte POM.xml-artefakten nævnt nedenfor:
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>3.4.1</version> </dependency>
⚠️ Versionsnotat: og 3.4.1 Koordinaten ovenfor er det originale eksempel og viser stadig blokkens korrekte form. Den er ældre end W3C WebDriver-protokollen, så et nyt projekt burde opdatere versionen. I skrivende stund er den nuværende udgivelse på Maven Central 10.1.1, hvilket kræver Selenium 4.42.0 eller nyere.
<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>10.1.1</version> </dependency>
Gå venligst igennem vores Maven tutorial for at lære at konfigurere Maven med Eclipse.
Appium Maven-projektstruktur og nødvendige afhængigheder
Maven pålægger et fast layout, og kendskabet til det forhindrer det meste af den forvirring, der følger senere i denne gennemgang. Et genereret projekt indeholder fire placeringer, der er vigtige:
- pom.xml — Projektobjektmodellen i projektroden, hvor alle afhængigheder og plugins er deklareret.
- src / main / java — applikations- og hjælpeklasser.
- src/test/java — testklasser og den eneste mappe, som Surefire-pluginet scanner, når du kører et build.
- mål — kompilerede output- og testrapporter, regenereret på hver build.
Appium java-client er den eneste obligatoriske afhængighed, fordi den deklarerer Selenium API-, fjerndriver- og supportartefakter transitivt. Mange teams fastlåser stadig Selenium eksplicit så versionen er synlig ét sted, og tilføj en testløber:
<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>
Hold de to versioner kompatible. En Java-klientudgivelse angiver Selenium det understøtter, og blander en gammel klient med en meget nyere Selenium er den mest almindelige årsag til en NoSuchMethodError under kørsel. java-klient-arkiv dokumenterer parringen for hver udgivelse.
Testapplikation med Appium og Maven
Med afhængigheden på plads, Eclipse Arbejdsgangen nedenfor opbygger et kørbart projekt fra bunden. Efter konfiguration af Appium Java Maven-plugin Eclipse, arbejdsområdet er klar til at teste enhver Android .apk ansøgning med Appium og Maven, som vist i Appium Maven projekt eksempel nedenfor.
Trin 1) I dette trin,
- Gå til NYT >> vælg Maven-projekt
- Klik på knappen 'næste'
Guiden til nyt projekt åbnes med Maven Project fremhævet, som vist her.
Trin 2) Indtast derefter ' i vinduet 'Nyt Maven-projekt'Appium Test' i kolonnerne Gruppe-id og Artefakt-id. I dette trin skal du indtaste:
- Gruppe-id
- Artefakt-id
- Version
- Emballage
- Navn og Description
- Finish
Den udfyldte New Maven Project-formular ser ud som på skærmbilledet nedenfor.
Hvis du klikker på knappen Udfør, åbnes en ny klasse under det definerede gruppe-id (AppiumTest) navn.
Trin 3) At starte med Appium scriptet, højreklik på 'src/main/java' i Stifinder-vinduet i venstre side. Vælg derefter Ny >> klasse. Skriv Appium kode inde i den valgte klasse.
Kontekstmenuen, der bruges til at oprette klassen, er vist nedenfor.
Trin 4) I det samme projekt skal du klikke på pom.xml i venstre Explorer-menu. Alle afhængigheder vil som standard være synlige i fanen 'pom.xml'. Se billedet nedenfor.
Hvis standard pom.xml ikke findes, skal du blot tilføje alle Maven-filerne. Appium afhængigheder, f.eks.trachentet fra Mavens centrale repository-websted:
https://central.sonatype.com/artifact/io.appium/java-client
Den redigerede pom.xml med Appium Tilføjede afhængigheder er vist nedenfor.
Trin 5) Højreklik nu på 'pom.xml' i venstre Explorer eller på XML-koden for 'AppiumTest-projektet. Klik derefter på indstillingen 'Kør som >> Maven Clean', som vist nedenfor.
Mens du kører, kan du se alle Maven-relaterede jar-filer og en succesmeddelelse, som i konsoloutputtet nedenfor. Sådan kører du en Appium Java klient Maven-afhængighedstest i et Maven-konfigureret miljø.
Sådan kører du Appium Test med Maven-kommandoer
Eclipse Menuen er praktisk, men det samme build skal køre uovervåget på en build-server, og der er kommandolinjen den eneste mulighed. Åbn en terminal i den mappe, der indeholder pom.xml, og brug disse kommandoer.
mvn clean mvn clean test mvn clean install mvn test -Dtest=LoginTest
Hver af dem har et specifikt job:
- mvn clean sletter
targetmappe, så intet gammelt overlever i den næste build. Dette er kommandoen Eclipse gennemgang af ovenstående udløsere. - mvn ren test kompilerer projektet og udfører testklasserne. Maven Surefire-plugin'et henter dem automatisk fra
src/test/java, ved hjælp af standard inkluderingsmønstreneTest*.java,*Test.java,*Tests.javaog*TestCase.java. - ren installation af mvn kører testene og placerer derefter den pakkede artefakt i dit lokale arkiv, så et andet projekt kan stole på det.
- mvn test -Dtest=LoginTest indsnævrer kørslen til en enkelt klasse, mens du fejlsøger.
To punkter fanger folk. For det første Appium Serveren skal allerede køre, og en enhed eller emulator skal være tilsluttet, før buildet starter, fordi Maven ikke starter nogen af dem — bekræft enheden med en adb tjek først. Dernæst skrives resultaterne til target/surefire-reports, som er den mappe, et CI-job skal arkivere. Surefire brugervejledning dækker konfigurationsmulighederne i detaljer, og de samme kommandoer driver en Appium suite fra Jenkins.
Fælles Appium Maven-fejl og hvordan man retter dem
De fleste fejl i en Appium Maven-opsætningen skyldes en håndfuld gentagne årsager snarere end selve testkoden. Tabellen nedenfor knytter hvert symptom til dets sædvanlige løsning.
| Symptom | Sandsynlig årsag | Fix |
| Kunne ikke løse afhængigheder for io.appium:java-client | Forkert versionsstreng eller ingen netværksadgang til Maven Central | Kopier koordinaten direkte fra Maven Central-listen og kør buildet igen. |
| NoSuchMethodError eller NoClassDefFoundError fra en Selenium klasse | Java-client og Selenium-Java versionerne er inkompatible | Matche Selenium version til det område, som java-client-udgivelsen erklærer |
| Testene kompileres, men ingen kører | Testklasser findes i src/main/java, eller klassenavnet matcher ikke et Surefire-inkluderingsmønster | Flyt dem til src/test/java og navngiv klassen, så den ender på Test. |
| Forbindelse afvist på port 4723 | Appium serveren kører ikke | Start Appium serveren før build'en |
| Ugyldig eller ikke-understøttet funktion | Ældre funktionsnavne brugt med en moderne driver | Revse den nuværende ønskede evner til din platform |
| Ikke-understøttet klassefilens hovedversion | Den JDK, der bruges af Maven, adskiller sig fra compilerniveauet i pom.xml | Juster egenskaberne maven.compiler.source og target med dine installerede JDK |
Når et build fejler, skal du læse den første fejl, som Maven udskriver, i stedet for den sidste. De senere linjer er normalt konsekvenser af den første manglende artefakt.








