Appium Maven-avhengighet: Oppsett med Eclipse Eksempel på prosjekt

⚡ Smart oppsummering

Appium Maven-avhengighetshåndtering lar et mobilt automatiseringsprosjekt deklarere java-client-artefakten i pom.xml, slik at Maven løser hver jar automatisk og den samme byggingen kjører på hvilken som helst maskin uten manuelle nedlastinger.

  • ???? Hva Maven gjør: Apache Maven administrerer byggelivssyklusen og løser avhengigheter fra en enkelt deklarativ pom.xml-fil.
  • ☑️ Én gjenstand: io.appium java-client-avhengigheten henter inn Selenium API, ekstern driver og støtte-JAR-er transitivt.
  • Versjonsdisiplin: Match java-client-utgivelsen med Selenium området den deklarerer for å unngå NoSuchMethodError under kjøretid.
  • 🧪 Fast oppsett: Surefire kjører bare klassene under src/test/java, så feilplasserte tester kompileres, men kjøres aldri.
  • 🛠️ Kommandolinje: mvn clean test kompilerer og kjører programpakken, og skriver resultater til target/surefire-reports.
  • 📊 Forutsetninger: Maven starter aldri Appium server eller en enhet, så begge må være klare før byggingen begynner.

Appium Oppsett av Maven-avhengighet med pom.xml og Java-client-artefakten

Hva er Apache Maven?

Apache Maven er en Java-basert prosjektledelse og automatiseringsverktøy. Det gir et multitasking-rammeverk for utviklere å forenkle hele byggelivssyklusen for Java applikasjoner. Maven er forhåndsdefinert og erklært i et XML-format kalt POM (Project Object Model) og referert til som 'pom.xml.' Den kan også brukes for andre språk som C#, Scala, Ruby, etc.

Ved hjelp av Maven-rammeverket kan du enkelt administrere følgende oppgaver i ethvert prosjekt:

  • Bygg syklus
  • Prosjektdokumentasjon
  • Rapporter sjekker
  • Scrums ledelse
  • Slipp informasjon

Grunnleggende bruksområder for Maven er:

  • Håndhever en standard katalogstruktur.
  • Gi en gjenbrukbar og enkel å vedlikeholde prosjektstruktur.
  • Løs pakkeavhengigheter.
  • Gi et rammeverk for konfigurasjonsadministrasjon.

Den evnen til å løse avhengigheter er akkurat det en Appium prosjektets behov, fordi Java klienten trekker inn en kjede av Selenium krukker som ingen vil laste ned for hånd.

Last ned Appium Maven avhengigheter

Før du begynner å skrive en Appium avhengighetstest med Maven, må du laste ned Appium Maven-avhengighet – Appium JAR-nedlastingsfil – fra Nettsted for Mavens sentrale arkivSkjermbildet nedenfor viser listen over Java-klient-artefakter på Maven Central, der alle publiserte versjoner og det ferdige kodeutdraget er tilgjengelige.

Appium Liste over artefakter for Java-klient på søkesiden for det sentrale repositoriet i Maven

Eller legg direkte til POM.xml-artefakten som er nevnt nedenfor:

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

⚠️ Versjonsmerknad: de 3.4.1 Koordinaten ovenfor er det originale eksemplet og viser fortsatt blokkens riktige form. Den er eldre enn W3C WebDriver-protokollen, så et nytt prosjekt bør oppgradere versjonen. I skrivende stund er den nåværende utgivelsen på Maven Central 10.1.1, som krever Selenium 4.42.0 eller nyere.

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

Vennligst gå gjennom vår Maven opplæring for å lære hvordan du konfigurerer Maven med Eclipse.

Appium Maven-prosjektstruktur og nødvendige avhengigheter

Maven bruker en fast layout, og det å vite dette forhindrer mesteparten av forvirringen som følger senere i denne gjennomgangen. Et generert prosjekt inneholder fire steder som er viktige:

  • pom.xml — prosjektobjektmodellen ved prosjektroten, der alle avhengigheter og pluginer deklareres.
  • src / main / java — applikasjons- og hjelpeklasser.
  • src/test/java — testklasser, og den eneste mappen Surefire-pluginen skanner når du kjører en build.
  • mål — kompilerte utdata- og testrapporter, generert på nytt for hver versjon.

Ocuco Appium java-client er den eneste obligatoriske avhengigheten, fordi den deklarerer Selenium API-, fjernstyrte driver- og supportartefakter transitivt. Mange team fester fortsatt Selenium eksplisitt slik at versjonen er synlig på ett sted, og legg til en testløper:

<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 versjonene kompatible. En Java-klientutgivelse oppgir at Selenium utvalget det støtter, og blander en gammel klient med en mye nyere Selenium er den vanligste årsaken til en NoSuchMethodError under kjøretid. java-klient repository dokumenterer sammenkoblingen for hver utgivelse.

Testing av applikasjon med Appium og Maven

Med avhengigheten på plass, Eclipse Arbeidsflyten nedenfor bygger et kjørbart prosjekt fra bunnen av. Etter at du har konfigurert Appium Java Maven-plugin Eclipse, arbeidsområdet er klart til å teste alle Android .apk søknad med Appium og Maven, som vist i Appium Maven-prosjekteksempel nedenfor.

Trinn 1) I dette trinnet

  1. Gå til NYTT >> velg Maven-prosjektet
  2. Klikk på «neste»-knappen

Veiviseren for nytt prosjekt åpnes med Maven Project uthevet, som vist her.

Eclipse Ny prosjektveiviser med Maven Project valgt

Trinn 2) Deretter skriver du inn ' i vinduet 'Nytt Maven-prosjekt'.Appium Test' i kolonnene Gruppe-ID og Artefakt-ID. I dette trinnet må du angi:

  1. Gruppe-ID
  2. Artefakt-ID
  3. Versjon
  4. emballasje
  5. Navn og Description
  6. Finish

Det utfylte skjemaet for New Maven Project ser ut som skjermbildet nedenfor.

Nytt Maven-prosjektvindu med gruppe-ID, artefakt-ID, versjon og emballasje utfylt

Hvis du klikker på Fullfør-knappen, åpnes en ny klasse under den definerte gruppe-ID-en (AppiumTest) navn.

Trinn 3) For å starte med Appium skriptet, høyreklikk på 'src/main/java' i utforskervinduet til venstre. Velg deretter Ny >> klasse. Skriv Appium kode inne i den valgte klassen.

Kontekstmenyen som ble brukt til å opprette den klassen vises nedenfor.

Høyreklikk-menyen på src/main/java som viser Ny og Klasse i Eclipse explorer

Trinn 4) I det samme prosjektet klikker du på pom.xml i utforskermenyen til venstre. Alle avhengigheter vil som standard være synlige i fanen 'pom.xml'. Se bildet nedenfor.

pom.xml-redigeringsfanen i Eclipse en liste over de løste prosjektavhengighetene

Hvis standard pom.xml ikke finnes, legger du bare til alle Maven-filene. Appium avhengigheter, f.eks.tracfra nettstedet til Mavens sentrale repository:

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

Den redigerte pom.xml-filen med Appium Avhengigheter som er lagt til vises nedenfor.

pom.xml kildevisning etter Appium java-client-avhengigheten er limt inn

Trinn 5) Høyreklikk nå på 'pom.xml' i venstre utforsker, eller på XML-koden for 'AppiumTest-prosjektet. Klikk deretter på alternativet «Kjør som >> Maven Clean», som vist nedenfor.

Eclipse Undermeny for Kjør som med alternativet Maven Clean uthevet

Mens du kjører, kan du se alle Maven-relaterte jar-filer og en suksessmelding, som i konsollutdataene nedenfor. Slik kjører du en Appium Java klient Maven-avhengighetstest i et Maven-konfigurert miljø.

Eclipse konsoll som viser de nedlastede Maven jar-filene og meldingen om at byggingen var vellykket

Hvordan løpe Appium Tester med Maven-kommandoer

Ocuco Eclipse Menyen er praktisk, men den samme byggingen må kjøres uovervåket på en byggeserver, og der er kommandolinjen det eneste alternativet. Åpne en terminal i mappen som inneholder pom.xml og bruk disse kommandoene.

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

Hver av dem har en spesifikk jobb:

  • mvn clean sletter target katalogen slik at ingenting gammelt overlever i neste bygging. Dette er kommandoen Eclipse gjennomgang av triggere ovenfor.
  • mvn ren test kompilerer prosjektet og kjører testklassene. Maven Surefire-pluginen henter dem automatisk fra src/test/java, ved bruk av standard inkluderingsmønstre Test*.java, *Test.java, *Tests.java og *TestCase.java.
  • mvn ren installasjon kjører testene og plasserer deretter den pakkede artefakten i ditt lokale arkiv, slik at et annet prosjekt kan stole på den.
  • mvn test -Dtest=Innloggingstest begrenser kjøringen til én enkelt klasse mens du feilsøker.

To punkter fanger folk. For det første Appium Serveren må allerede kjøre, og en enhet eller emulator må være tilkoblet før byggingen starter, fordi Maven ikke starter noen av dem – bekreft enheten med en ADB sjekk først. Deretter skrives resultatene til target/surefire-reports, som er mappen en CI-jobb skal arkivere. Surefire bruksanvisning dekker konfigurasjonsalternativene i detalj, og de samme kommandoene driver en Appium suite fra Jenkins.

Felles Appium Maven-feil og hvordan du fikser dem

De fleste feil i en Appium Maven-oppsett kommer fra en håndfull repeterbare årsaker snarere enn fra selve testkoden. Tabellen nedenfor kartlegger hvert symptom til sin vanlige løsning.

Symptom Sannsynlig årsak Fix
Klarte ikke å løse avhengigheter for io.appium:java-client Feil versjonsstreng, eller ingen nettverkstilgang til Maven Central Kopier koordinaten direkte fra Maven Central-listen og kjør byggingen på nytt.
NoSuchMethodError eller NoClassDefFoundError fra en Selenium klasse java-client og selenium-java-versjonene er inkompatible Match Selenium versjon til området som java-klient-utgivelsen deklarerer
Tester kompileres, men ingen kjøres Testklasser ligger i src/main/java, eller klassenavnet samsvarer ikke med et Surefire-inkluderingsmønster Flytt dem til src/test/java og gi klassen et navn slik at den ender på Test.
Tilkobling avvist på port 4723 Ocuco Appium serveren kjører ikke Start Appium serveren før byggingen
Ugyldig eller ikke-støttet funksjon Navn på eldre funksjoner brukt med en moderne driver Revse strømmen ønskede evner for din plattform
Hovedversjon av klassefil som ikke støttes JDK-en som brukes av Maven er forskjellig fra kompilatornivået i pom.xml Juster egenskapene maven.compiler.source og target med den installerte JDK

Når en bygging mislykkes, les den første feilen Maven skriver ut i stedet for den siste. De senere linjene er vanligvis konsekvenser av den første manglende artefakten.

Spørsmål og svar

Ta den nyeste utgivelsen som er oppført på Maven Central i stedet for en versjon kopiert fra en gammel veiledning. I skrivende stund er det 10.1.1, som forventer Selenium 4.42.0 eller nyere på klassestien.

Maskinlæringsmodeller reparerer elementlokaliseringsverktøy etter en endring i brukergrensesnittet, grupperer duplikatfeil på tvers av enheter og forutsier hvilke tester en commit sannsynligvis vil bryte, slik at en kortere Maven-kjøring dekker det risikofylte området.

Copilot fullfører elementene groupId, artifactId og version fra en kommentar på én linje. Det antyder ofte et foreldet versjonsnummer, så bekreft koordinaten mot Maven Central før du lagrer filen.

Ikke strengt tatt. Java-klienten erklærer Selenium artefakter transitivt. Mange team fester fortsatt selenium-java eksplisitt slik at versjonen er synlig og oppgraderinger er bevisste snarere enn tilfeldige.

Begge løser de samme artefaktene. Maven bruker deklarativ XML og passer for team som ønsker en fast livssyklus. Gradle skript i Groovy eller Kotlin og bygger trinnvis, noe som hjelper på store flermodulære repositorier.

I src/test/java. Surefire skanner bare den mappen under en bygging, så en klasse som er igjen i src/main/java kompilerer, men kjøres aldri, noe som ser ut som en stille passerende suite.

Nei. Maven løser bare JAR-filer og kjører tester. Start Appium serveren og koble til en enhet eller emulator først, eller start serveren fra testoppsettmetoden din eller et CI-pipeline-trinn.

Sjekk ut depotet, start Appium serveren og en enhet, og kjør deretter en mvn clean test. Archi`ve target/surefire-reports` som byggeartefakt, slik at feil forblir lesbare etter at agenten er ødelagt.

Oppsummer dette innlegget med: