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 Maven gør: Apache Maven administrerer byggelivscyklussen og løser afhængigheder fra en enkelt deklarativ pom.xml-fil.
  • ☑️ Én artefakt: io.appium java-client-afhængigheden trækker ind Selenium API, fjerndriver og support-JAR'er transitivt.
  • Versionsdisciplin: Match java-client-udgivelsen med Selenium det område, den erklærer for at undgå NoSuchMethodError under kørsel.
  • 🧪 Fast layout: Surefire udfører kun klasserne under src/test/java, så forkert placerede tests kompilerer, men kører aldrig.
  • 🛠️ Kommandolinje: mvn clean test kompilerer og udfører pakken og skriver resultater til target/surefire-reports.
  • 📊 Forudsætninger: Maven starter aldrig Appium server eller en enhed, så begge skal være klar, før byggeprocessen begynder.

Appium Opsætning af Maven-afhængighed med pom.xml og java-client-artefakten

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.

Appium Liste over java-klient-artefakter på Mavens centrale arkivs søgeside

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,

  1. Gå til NYT >> vælg Maven-projekt
  2. Klik på knappen 'næste'

Guiden til nyt projekt åbnes med Maven Project fremhævet, som vist her.

Eclipse Ny projektguide med Maven Project valgt

Trin 2) Indtast derefter ' i vinduet 'Nyt Maven-projekt'Appium Test' i kolonnerne Gruppe-id og Artefakt-id. I dette trin skal du indtaste:

  1. Gruppe-id
  2. Artefakt-id
  3. Version
  4. Emballage
  5. Navn og Description
  6. Finish

Den udfyldte New Maven Project-formular ser ud som på skærmbilledet nedenfor.

Nyt Maven-projektvindue med udfyldt gruppe-id, artefakt-id, version og emballage

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.

Højreklikmenuen på src/main/java viser Ny og Klasse i Eclipse opdagelsesrejsende

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.

pom.xml editor-fanen i Eclipse en liste over de løste projektafhængigheder

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.

pom.xml kildevisning efter Appium java-client-afhængigheden er blevet indsat i

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.

Eclipse Undermenuen Kør som med indstillingen Maven Clean fremhævet

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

Eclipse Konsol, der viser de downloadede Maven jar-filer og beskeden om, at build-processen er gennemført

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 target mappe, 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ønstrene Test*.java, *Test.java, *Tests.java og *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.

Ofte Stillede Spørgsmål

Tag den nyeste udgivelse, der er angivet på Maven Central, i stedet for en version kopieret fra en gammel tutorial. I skrivende stund er det 10.1.1, hvilket forventes Selenium 4.42.0 eller nyere på klassestien.

Maskinlæringsmodeller reparerer elementlokaliseringsværktøjer efter en ændring af brugergrænsefladen, grupperer duplikatfejl på tværs af enheder og forudsiger, hvilke tests en commit sandsynligvis vil bryde, så en kortere Maven-kørsel dækker det risikable område.

Copilot fuldfører elementerne groupId, artifactId og version fra en kommentar på én linje. Det antyder ofte et forældet versionsnummer, så bekræft koordinaten mod Maven Central, før du committer filen.

Ikke strengt taget. Java-klienten erklærer Selenium artefakter transitivt. Mange teams fastlåser stadig selenium-java eksplicit, så versionen er synlig, og opgraderinger er bevidste snarere end utilsigtede.

Begge løser de samme artefakter. Maven bruger deklarativ XML og er egnet til teams, der ønsker en fast livscyklus. Gradle manuskripter i Groovy eller Kotlin og bygger trinvis, hvilket hjælper på store multimodul-repositories.

I src/test/java. Surefire scanner kun den mappe under en build, så en klasse, der efterlades i src/main/java, kompilerer, men udføres aldrig, hvilket ligner en lydløst videregivende suite.

Nej. Maven løser kun jar-filer og kører kun tests. Start Appium serveren og tilslut først en enhed eller emulator, eller start serveren fra din testopsætningsmetode eller et CI-pipelinetrin.

Tjek arkivet ud, start Appium serveren og en enhed, og kør derefter en mvn clean test. Archi`ve target/surefire-reports` som build-artefakt, så fejl forbliver læsbare, efter agenten er ødelagt.

Opsummer dette indlæg med: