Appium Maven-beroende: Konfigurera med Eclipse Projektexempel

โšก Smart sammanfattning

Appium Maven-beroendehantering lรฅter ett mobilt automatiseringsprojekt deklarera java-client-artefakten i pom.xml, sรฅ att Maven lรถser varje jar-fil automatiskt och samma build kรถrs pรฅ vilken maskin som helst utan manuella nedladdningar.

  • ???? Vad Maven gรถr: Apache Maven hanterar bygglivscykeln och lรถser beroenden frรฅn en enda deklarativ pom.xml-fil.
  • โ˜‘๏ธ En artefakt: Java-client-beroendet io.appium hรคmtar Selenium API, fjรคrrdrivrutin och support-JAR-filer transitivt.
  • โœ… Versionsdisciplin: Matcha java-client-versionen med Selenium intervallet som den deklarerar fรถr att undvika NoSuchMethodError vid kรถrning.
  • ๐Ÿงช Fast layout: Surefire kรถr bara klasserna under src/test/java, sรฅ felplacerade tester kompileras men kรถrs aldrig.
  • ๐Ÿ› ๏ธ Kommandorad: mvn clean test kompilerar och kรถr sviten, och skriver resultaten till target/surefire-reports.
  • ๐Ÿ“Š Fรถrkunskaper: Maven startar aldrig Appium server eller en enhet, sรฅ bรฅda mรฅste vara redo innan bygget bรถrjar.

Appium Maven-beroendekonfiguration med pom.xml och java-client-artefakten

Vad รคr Apache Maven?

Apache Maven รคr en Java-baserat projektlednings- och automationsverktyg. Det tillhandahรฅller ett multitasking-ramverk fรถr utvecklare att fรถrenkla hela bygglivscykeln fรถr Java applikationer. Maven รคr fรถrdefinierat och deklarerat i ett XML-format som kallas POM (Project Object Model) och kallas "pom.xml". Den kan ocksรฅ anvรคndas fรถr andra sprรฅk som C#, Scala, Ruby, etc.

Med hjรคlp av Maven-ramverket kan du enkelt hantera fรถljande uppgifter i vilket projekt som helst:

  • Bygg cykel
  • Projektdokumentation
  • Rapportera kontroller
  • Scrumshantering
  • Slรคpp information

Grundlรคggande anvรคndningsomrรฅden fรถr Maven รคr:

  • Genomfรถr en standardkatalogstruktur.
  • Ge en รฅteranvรคndbar och lรคttskรถtt projektstruktur.
  • Lรถs paketberoenden.
  • Tillhandahรฅll ett ramverk fรถr konfigurationshantering.

Den fรถrmรฅgan att lรถsa beroenden รคr precis vad en Appium projektets behov, eftersom Java klienten drar in en kedja av Selenium burkar som ingen vill ladda ner fรถr hand.

Ladda ner Appium Maven beroenden

Innan du bรถrjar skriva en Appium beroendetest med Maven, du behรถver ladda ner Appium Maven-beroendet โ€” Appium JAR-nedladdningsfil โ€” frรฅn Mavens centrala arkivwebbplatsSkรคrmdumpen nedan visar listan รถver java-client-artefakter pรฅ Maven Central, dรคr varje publicerad version och dess fรคrdiga kodavsnitt รคr tillgรคngliga.

Appium Listning av java-client-artefakter pรฅ Mavens centrala arkivs sรถksida

Eller lรคgg direkt till POM.xml-artefakten som nรคmns nedan:

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

โš ๏ธ Versionsnotering: d 3.4.1 Koordinaten ovan รคr originalexemplet och visar fortfarande blockets korrekta form. Den รคr รคldre รคn W3C WebDriver-protokollet, sรฅ ett nytt projekt bรถr uppdatera versionen. I skrivande stund รคr den nuvarande utgรฅvan pรฅ Maven Central 10.1.1, vilket krรคver Selenium 4.42.0 eller senare.

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

Gรฅ gรคrna igenom vรฅr Maven handledning fรถr att lรคra dig hur du konfigurerar Maven med Eclipse.

Appium Maven-projektstruktur och nรถdvรคndiga beroenden

Maven anvรคnder en fast layout, och att veta den fรถrhindrar det mesta av den fรถrvirring som fรถljer senare i den hรคr genomgรฅngen. Ett genererat projekt innehรฅller fyra viktiga platser:

  • pom.xml โ€” Projektobjektmodellen vid projektroten, dรคr varje beroende och plugin deklareras.
  • src / main / java โ€” applikations- och hjรคlpklasser.
  • src/test/java โ€” testklasser och den enda katalogen som Surefire-pluginet skannar nรคr du kรถr en build.
  • mรฅl โ€” sammanstรคllda utdata och testrapporter, regenererade fรถr varje version.

Ocuco-landskapet Appium java-client รคr det enda obligatoriska beroendet, eftersom det deklarerar Selenium API, fjรคrrdrivrutiner och supportartefakter transitiverar. Mรฅnga team fรคster fortfarande Selenium explicit sรฅ att versionen รคr synlig pรฅ ett stรคlle, och lรคgg till en testkรถrare:

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

Hรฅll de tvรฅ versionerna kompatibla. En Java-klient-utgรฅva anger att Selenium det stรถder, och blandar en gammal klient med en mycket nyare Selenium รคr den vanligaste orsaken till ett NoSuchMethodError vid kรถrning. java-klient-arkiv dokumenterar parningen fรถr varje utgรฅva.

Testapplikation med Appium och Maven

Med beroendet pรฅ plats, den Eclipse arbetsflรถdet nedan bygger ett kรถrbart projekt frรฅn grunden. Efter att ha konfigurerat Appium Java Maven-plugin Eclipse, arbetsytan รคr redo att testa alla Android .apk ansรถkan med Appium och Maven, som visas i Appium Maven-projektexempel nedan.

Steg 1) I detta steg

  1. Gรฅ till NYTT >> vรคlj Maven-projekt
  2. Klicka pรฅ knappen 'nรคsta'

Guiden fรถr nytt projekt รถppnas med Maven Project markerat, som visas hรคr.

Eclipse Ny projektguide med Maven Project valt

Steg 2) Skriv sedan in ' i fรถnstret 'Nytt Maven-projekt'Appium Test' i kolumnerna Grupp-ID och Artefakt-ID. I det hรคr steget mรฅste du ange:

  1. Grupp-ID
  2. Artefakt-ID
  3. Version
  4. Fรถrpackning
  5. Namn och Description
  6. Finish

Det ifyllda formulรคret fรถr New Maven Project ser ut som pรฅ skรคrmdumpen nedan.

Nytt Maven-projektfรถnster med grupp-ID, artefakt-ID, version och paketering ifyllda

Om du klickar pรฅ knappen Slutfรถr รถppnas en ny klass under det definierade grupp-ID:t (AppiumTest) namn.

Steg 3) Till att bรถrja med Appium skriptet, hรถgerklicka pรฅ 'src/main/java' i Utforskarfรถnstret till vรคnster. Vรคlj sedan Ny >> klass. Skriv Appium kod i den valda klassen.

Kontextmenyn som anvรคnds fรถr att skapa den klassen visas nedan.

Hรถgerklicksmenyn pรฅ src/main/java visar Ny och Klass i Eclipse explorer

Steg 4) I samma projekt klickar du pรฅ pom.xml i den vรคnstra menyn i utforskaren. Alla beroenden kommer som standard att synas pรฅ fliken 'pom.xml'. Se bilden nedan.

pom.xml-redigerarfliken i Eclipse lista de lรถsta projektberoendena

Om standardfilen pom.xml inte finns, lรคgg bara till alla Maven-filer. Appium beroenden, t.ex.tracfrรฅn Mavens centrala arkivs webbplats:

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

Den redigerade pom.xml-filen med Appium beroenden som lagts till visas nedan.

pom.xml-kรคllvyn efter Appium java-client-beroendet har klistrats in

Steg 5) Hรถgerklicka nu pรฅ 'pom.xml' i vรคnstra utforskaren, eller pรฅ XML-koden fรถr 'AppiumTest-projektet. Klicka sedan pรฅ alternativet 'Kรถr som >> Maven Clean', som visas nedan.

Eclipse Undermenyn Kรถr som med alternativet Maven Clean markerat

Medan du kรถr kan du se alla Maven-relaterade jar-filer och ett lyckat meddelande, som i konsolutdata nedan. Sรฅ hรคr kรถr du en Appium Java klient Maven-beroendetest i en Maven-konfigurerad miljรถ.

Eclipse konsol som visar de nedladdade Maven jar-filerna och meddelandet om att bygget lyckades

Hur man kรถr Appium Tester med Maven-kommandon

Ocuco-landskapet Eclipse Menyn รคr praktisk, men samma bygg mรฅste kรถras obevakad pรฅ en byggserver, och dรคr รคr kommandoraden det enda alternativet. ร–ppna en terminal i mappen som innehรฅller pom.xml och anvรคnd dessa kommandon.

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

Var och en har ett specifikt jobb:

  • mvn clean tar bort target katalogen sรฅ att inget gammalt รถverlever i nรคsta version. Detta รคr kommandot som Eclipse genomgรฅng ovanstรฅende triggers.
  • mvn clean test kompilerar projektet och kรถr testklasserna. Maven Surefire-pluginet hรคmtar dem automatiskt frรฅn src/test/java, med standardinkluderingsmรถnster Test*.java, *Test.java, *Tests.java och *TestCase.java.
  • ren installation av mvn kรถr testerna och placerar sedan den paketerade artefakten i ditt lokala arkiv, sรฅ att ett annat projekt kan fรถrlita sig pรฅ den.
  • mvn test -Dtest=Inloggningstest begrรคnsar kรถrningen till en enda klass medan du felsรถker.

Tvรฅ punkter fรฅngar folk. Fรถr det fรถrsta Appium Servern mรฅste redan vara igรฅng och en enhet eller emulator mรฅste vara ansluten innan bygget startar, eftersom Maven inte startar nรฅgon av dem โ€” verifiera enheten med en adb kontrollera fรถrst. Sedan skrivs resultaten till target/surefire-reports, vilket รคr mappen som ett CI-jobb ska arkivera. Surefire anvรคndarguide tรคcker konfigurationsalternativen i detalj, och samma kommandon driver en Appium svit frรฅn Jenkins.

Gemensam Appium Maven-fel och hur man รฅtgรคrdar dem

De flesta misslyckanden i en Appium Maven-instรคllningarna beror snarare pรฅ en handfull repeterbara orsaker รคn pรฅ sjรคlva testkoden. Tabellen nedan mappar varje symptom till dess vanliga lรถsning.

Symptom Trolig orsak Fast
Kunde inte lรถsa beroenden fรถr io.appium:java-client Fel versionsstrรคng, eller ingen nรคtverksรฅtkomst till Maven Central Kopiera koordinaten direkt frรฅn Maven Central-listan och kรถr bygget igen.
NoSuchMethodError eller NoClassDefFoundError frรฅn en Selenium klass java-client och selenium-java-versionerna รคr inkompatibla Matcha Selenium version till det intervall som java-client-versionen deklarerar
Tester kompileras men inga kรถrs Testklasser finns i src/main/java, eller sรฅ matchar klassnamnet inte ett Surefire-inkluderingsmรถnster Flytta dem till src/test/java och namnge klassen sรฅ att den slutar pรฅ Test.
Anslutning nekad pรฅ port 4723 Ocuco-landskapet Appium servern kรถrs inte Starta Appium servern fรถre bygget
Ogiltig eller ounderstรถdd funktion ร„ldre funktionsnamn som anvรคnds med en modern drivrutin Revse strรถmmen รถnskade fรถrmรฅgor fรถr din plattform
Huvudversionen av klassfilen stรถds inte JDK:n som anvรคnds av Maven skiljer sig frรฅn kompilatornivรฅn i pom.xml. Justera egenskaperna maven.compiler.source och target med din installerade JDK

Nรคr en build misslyckas, lรคs det fรถrsta felet som Maven skriver ut snarare รคn det sista. De senare raderna รคr vanligtvis konsekvenser av den fรถrsta saknade artefakten.

Vanliga frรฅgor

Ta den senaste utgรฅvan som listas pรฅ Maven Central snarare รคn en version kopierad frรฅn en gammal handledning. I skrivande stund รคr det 10.1.1, vilket fรถrvรคntar sig Selenium 4.42.0 eller senare pรฅ klassvรคgen.

Maskininlรคrningsmodeller reparerar elementlokaliserare efter en UI-รคndring, grupperar dubbletter av fel รถver enheter och fรถrutspรฅr vilka tester en commit sannolikt kommer att bryta, sรฅ en kortare Maven-kรถrning tรคcker det riskfyllda omrรฅdet.

Copilot kompletterar elementen groupId, artifactId och version frรฅn en kommentar pรฅ en rad. Det fรถreslรฅr ofta ett inaktuellt versionsnummer, sรฅ bekrรคfta koordinaten mot Maven Central innan du bekrรคftar filen.

Inte strikt. Java-klienten deklarerar Selenium artefakter transitivert. Mรฅnga team fรคster fortfarande selenium-java explicit sรฅ att versionen รคr synlig och uppgraderingar รคr avsiktliga snarare รคn oavsiktliga.

Bรฅda lรถser samma artefakter. Maven anvรคnder deklarativ XML och passar team som vill ha en fast livscykel. Gradle skript i Groovy eller Kotlin och bygger stegvis, vilket hjรคlper till pรฅ stora multimodulfรถrrรฅd.

I src/test/java. Surefire skannar bara den katalogen under en build, sรฅ en klass som finns kvar i src/main/java kompilerar men kรถrs aldrig, vilket ser ut som en tyst skickande svit.

Nej. Maven lรถser bara burkar och kรถr tester. Starta Appium servern och anslut fรถrst en enhet eller emulator, eller starta servern frรฅn din testinstallationsmetod eller ett CI-pipeline-steg.

Kolla in fรถrrรฅdet, starta Appium servern och en enhet, kรถr sedan mvn clean test. Archi`ve target/surefire-reports` som byggartefakt sรฅ att fel fรถrblir lรคsbara efter att agenten har fรถrstรถrts.

Sammanfatta detta inlรคgg med: