Appium Maven ovisnost: Postavljanje s Eclipse Primjer projekta

⚡ Pametni sažetak

Appium Upravljanje ovisnostima u Mavenu omogućuje projektu mobilne automatizacije deklariranje artefakta java-klijenta u pom.xml datoteci, tako da Maven automatski rješava svaki JAR i ista se izrada pokreće na bilo kojem računalu bez ručnog preuzimanja.

  • ???? Što Maven radi: Apache Maven upravlja životnim ciklusom izgradnje i rješava ovisnosti iz jedne deklarativne pom.xml datoteke.
  • ☑️ Jedan artefakt: Ovisnost io.appium java-client povlači Selenium API, udaljeni upravljački program i JAR-ovi podrške tranzitivno.
  • ✅ Disciplina verzije: Uskladite izdanje Java klijenta s Selenium raspon koji deklarira kako bi se izbjegla NoSuchMethodError tijekom izvođenja.
  • 🧪 Fiksni raspored: Surefire izvršava samo klase unutar src/test/java, tako da se testovi na pogrešnim mjestima kompajliraju, ali se nikada ne pokreću.
  • 🛠️ Komandna linija: mvn clean test kompajlira i izvršava paket, zapisujući rezultate u target/surefire-reports.
  • 📊 Preduvjeti: Maven nikad ne pokreće Appium poslužitelj ili uređaj, tako da oboje moraju biti spremni prije početka izgradnje.

Appium Postavljanje ovisnosti Mavena s pom.xml i artefaktom java-client

Što je Apache Maven?

Apache Maven je Javaalat za upravljanje projektima i automatizaciju. Programerima pruža višezadaćni okvir za olakšavanje kompletnog životnog ciklusa izrade Java aplikacije. Maven je unaprijed definiran i deklariran u XML formatu koji se zove POM (Project Object Model) i naziva se "pom.xml". Također se može koristiti za druge jezike kao što su C#, Scala, Ruby itd.

Pomoću Maven frameworka možete jednostavno upravljati sljedećim zadacima u bilo kojem projektu:

  • Ciklus izgradnje
  • Projektna dokumentacija
  • Prijavite provjere
  • Scrums upravljanje
  • Informacije o izdanju

Osnovne upotrebe Mavena su:

  • Provodi standardnu ​​strukturu imenika.
  • Osigurajte višekratnu strukturu projekta koja se lako održava.
  • Riješite ovisnosti paketa.
  • Osigurajte okvir za upravljanje konfiguracijom.

Ta sposobnost rješavanja ovisnosti je upravo ono što Appium potrebe projekta, jer Java klijent povlači lanac Selenium jar datoteke koje nitko ne želi ručno preuzeti.

Preuzimanje Appium Ovisnosti o Mavenu

Prije nego što počnete pisati Appium test ovisnosti s Mavenom, potrebno je preuzeti Appium Ovisnost od Mavena — Appium JAR datoteka za preuzimanje — iz Web stranica centralnog repozitorija MavenaSnimka zaslona u nastavku prikazuje popis artefakata java-klijenata na Maven Centralu, gdje su dostupne svaka objavljena verzija i njezin gotov isječak.

Appium Popis artefakata java-client na stranici za pretraživanje centralnog repozitorija Maven

Ili izravno dodajte artefakt POM.xml spomenut u nastavku:

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

⚠️ Napomena o verziji: o 3.4.1 Gornja koordinata je originalni primjer i još uvijek prikazuje ispravan oblik bloka. Stariji je od W3C WebDriver protokola, tako da bi novi projekt trebao podići verziju. U vrijeme pisanja ovog teksta, trenutno izdanje na Maven Centralu je 10.1.1, što zahtijeva Selenium 4.42.0 ili noviji.

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

Molimo prođite kroz naš Maven vodič kako biste naučili kako konfigurirati Maven s Eclipse.

Appium Struktura Maven projekta i potrebne ovisnosti

Maven nameće fiksni raspored, a poznavanje tog rasporeda sprječava većinu zbrke koja slijedi kasnije u ovom vodiču. Generirani projekt sadrži četiri važne lokacije:

  • pom.xml — Objektni Model Projekta u korijenu projekta, gdje je deklarirana svaka ovisnost i dodatak.
  • src / main / java — aplikacije i pomoćne klase.
  • src/test/java — testne klase i jedini direktorij koji Surefire dodatak skenira kada pokrenete izgradnju.
  • meta — sastavljen izlaz i izvješća o testiranju, regenerirana pri svakoj izgradnji.

The Appium java-client je jedina obavezna ovisnost jer deklarira Selenium API, udaljeni upravljački program i tranzitivno podržavaju artefakte. Mnogi timovi još uvijek pričvršćuju Selenium eksplicitno tako da je verzija vidljiva na jednom mjestu i dodajte pokretač testa:

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

Održavajte kompatibilnost dvije verzije. Izdanje Java klijenta navodi da Selenium raspon koji podržava i miješanje starog klijenta s mnogo novijim Selenium je najčešći uzrok NoSuchMethodError tijekom izvođenja. repozitorij java-klijenata dokumentira uparivanje za svako izdanje.

Testiranje aplikacije s Appium i Maven

S obzirom na postojeću ovisnost, Eclipse Donji tijek rada izrađuje pokrenuti projekt od nule. Nakon konfiguriranja Appium Java Maven dodatak Eclipse, radni prostor je spreman za testiranje bilo kojeg Android .apk aplikacija s Appium i Maven, kao što je prikazano u Appium Primjer Maven projekta ispod.

Korak 1) U ovom koraku

  1. Idite na NOVO >> odaberite Maven projekt
  2. Kliknite na gumb 'sljedeće'

Čarobnjak za novi projekt otvara se s označenim Maven projektom, kao što je ovdje prikazano.

Eclipse Čarobnjak za novi projekt s odabranim Maven projektom

Korak 2) Zatim u prozor 'Novi Maven projekt' unesite 'Appium Test' u stupcima ID grupe i ID artefakta. U ovom koraku morate unijeti:

  1. ID grupe
  2. Id artefakta
  3. Verzija
  4. Ambalaža
  5. Ime i Description
  6. završiti

Ispunjeni obrazac za novi Maven projekt izgleda kao na snimci zaslona ispod.

Prozor novog Maven projekta s ispunjenim ID-om grupe, ID-om artefakta, verzijom i pakiranjem

Klikom na gumb Završi otvorit će se novi razred pod definiranim ID-om grupe (AppiumTest) ime.

Korak 3) Za početak s Appium skriptu, desnom tipkom miša kliknite na 'src/main/java' u lijevom prozoru istraživača. Zatim odaberite Nova >> klasa. Napišite Appium kod unutar odabrane klase.

Kontekstni izbornik koji se koristi za stvaranje te klase prikazan je u nastavku.

Desni klik na izbornik src/main/java prikazuje Novo i Klasu u Eclipse istraživač

Korak 4) U istom projektu kliknite na pom.xml u lijevom izborniku istraživača. Sve ovisnosti bit će vidljive prema zadanim postavkama na kartici 'pom.xml'. Pogledajte sliku ispod.

kartica uređivača pom.xml u Eclipse popis riješenih ovisnosti projekta

Ako zadana datoteka pom.xml ne postoji, samo dodajte sve Maven datoteke Appium ovisnosti, npr.tracpreuzeto s web stranice centralnog repozitorija Mavena:

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

Uređena datoteka pom.xml s Appium Dodane ovisnosti prikazane su u nastavku.

izvorni prikaz pom.xml nakon Appium Zavisnost java-klijenta je zalijepljena

Korak 5) Sada desnom tipkom miša kliknite na 'pom.xml' u lijevom istraživaču ili na XML kod za 'AppiumTest' projekt. Zatim kliknite opciju 'Pokreni kao >> Maven Clean', kao što je prikazano dolje.

Eclipse Podmeni Pokreni kao s označenom opcijom Maven Clean

Tijekom pokretanja možete vidjeti sve jar datoteke povezane s Mavenom i poruku o uspjehu, kao u izlazu konzole ispod. Ovako se pokreće Appium Java Test ovisnosti klijenta Maven u okruženju konfiguriranom za Maven.

Eclipse konzola koja prikazuje preuzete Maven jar datoteke i poruku o uspješnoj izgradnji

Kako trčati Appium Testovi s Maven naredbama

The Eclipse Izbornik je praktičan, ali ista izgradnja mora se izvršavati bez nadzora na poslužitelju za izradu, a tamo je naredbeni redak jedina opcija. Otvorite terminal u mapi koja sadrži pom.xml i upotrijebite ove naredbe.

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

Svaki od njih ima zaseban zadatak:

  • mvn clean briše target direktorij tako da ništa zastarjelo ne preživi u sljedećoj izgradnji. Ovo je naredba Eclipse vodič iznad okidača.
  • mvn čisti test kompajlira projekt i izvršava testne klase. Maven Surefire dodatak ih automatski preuzima iz src/test/java, koristeći zadane obrasce uključivanja Test*.java, *Test.java, *Tests.java i *TestCase.java.
  • mvn čista instalacija pokreće testove, a zatim smješta zapakirani artefakt u vaše lokalno spremište, tako da se drugi projekt može osloniti na njega.
  • mvn test -Dtest=TestPrijave sužava izvršavanje na jednu klasu tijekom otklanjanja grešaka.

Dvije stvari privlače ljude. Prvo, Appium Poslužitelj već mora biti pokrenut, a uređaj ili emulator moraju biti spojeni prije početka izgradnje, jer Maven ne pokreće nijedan od njih — provjerite uređaj s ADB prvo provjerite. Drugo, rezultati se zapisuju u target/surefire-reports, što je mapa koju CI zadatak treba arhivirati. Vodič za korištenje Surefirea detaljno pokriva opcije konfiguracije, a iste naredbe pokreću Appium apartman iz Jenkins.

Zajednički Appium Maven greške i kako ih ispraviti

Većina neuspjeha u Appium Maven postavke dolaze iz nekoliko ponovljivih uzroka, a ne iz samog testnog koda. Tablica u nastavku prikazuje svaki simptom u odnosu na njegovo uobičajeno rješenje.

Simptom Vjerojatni uzrok Popraviti
Nije moguće riješiti ovisnosti za io.appium:java-client Pogrešan niz verzija ili nema mrežnog pristupa Maven Centralu Kopirajte koordinate direktno iz Maven Central popisa i ponovno pokrenite izgradnju
NoSuchMethodError ili NoClassDefFoundError iz Selenium razred Verzije java-client i selenium-java nisu kompatibilne Odgovarati Selenium verzija u rasponu koji izdanje Java-klijenta deklarira
Testovi se kompajliraju, ali se ne izvršavaju Testne klase nalaze se u src/main/java ili naziv klase ne odgovara Surefire uzorku uključivanja Premjestite ih u src/test/java i nazovite klasu tako da završava na Test
Veza odbijena na portu 4723 The Appium poslužitelj ne radi Pokrenite Appium poslužitelj prije izgradnje
Nevažeća ili nepodržana mogućnost Nazivi starih mogućnosti koji se koriste s modernim upravljačkim programom Revpogledajte trenutno željene mogućnosti za vašu platformu
Nepodržana glavna verzija datoteke klase JDK koji koristi Maven razlikuje se od razine kompajlera u pom.xml Uskladite svojstva maven.compiler.source i target s vašim instaliranim JDK

Kada izgradnja ne uspije, pročitajte prvu grešku koju Maven ispisuje, a ne posljednju. Kasniji redovi su obično posljedice prvog nedostajućeg artefakta.

Pitanja i odgovori

Uzmite najnovije izdanje navedeno na Maven Centralu, a ne verziju kopiranu iz starog tutorijala. U vrijeme pisanja ovog teksta to je 10.1.1, što očekuje Selenium 4.42.0 ili noviji na classpathu.

Modeli strojnog učenja popravljaju lokatore elemenata nakon promjene korisničkog sučelja, grupiraju duplicirane greške na različitim uređajima i predviđaju koje testove će commit vjerojatno pokvariti, tako da kraće Maven izvođenje pokriva rizično područje.

Copilot dovršava elemente groupId, artifactId i version iz jednolinijskog komentara. Često predlaže zastarjeli broj verzije, stoga provjerite koordinate u Maven Centralu prije slanja datoteke.

Ne strogo. Java-klijent deklarira Selenium artefakte tranzitivno. Mnogi timovi još uvijek eksplicitno pričvršćuju selenium-java tako da je verzija vidljiva i nadogradnje su namjerne, a ne slučajne.

Oba rješavaju iste artefakte. Maven koristi deklarativni XML i odgovara timovima koji žele fiksni životni ciklus. Gradle skripte u Groovy ili Kotlin i gradi inkrementalno, što pomaže na velikim višemodularnim repozitorijima.

U src/test/java. Surefire skenira taj direktorij samo tijekom izgradnje, tako da se klasa ostavljena u src/main/java kompajlira, ali se nikada ne izvršava, što izgleda kao tiho prolazeći paket.

Ne. Maven rješava jar datoteke i pokreće samo testove. Pokrenite Appium poslužitelj i prvo spojite uređaj ili emulator ili pokrenite poslužitelj iz metode postavljanja testa ili koraka CI cjevovoda.

Provjerite repozitorij, pokrenite Appium poslužitelj i uređaj, a zatim pokrenite mvn clean test. ArchiKoristi target/surefire-reports kao artefakt izgradnje kako bi greške ostale čitljive nakon što je agent uništen.

Sažmite ovu objavu uz: