Appium Maven függőség: Beállítás a következővel: Eclipse Projekt példa

⚡ Okos összefoglaló

Appium A Maven függőségkezelés lehetővé teszi egy mobil automatizálási projekt számára, hogy a java-client artefaktust a pom.xml fájlban deklarálja, így a Maven automatikusan feloldja az összes jar fájlt, és ugyanaz a build bármilyen gépen fut manuális letöltés nélkül.

  • ???? Mit csinál Maven: Apache Maven egyetlen deklaratív pom.xml fájlból kezeli a build életciklusát és oldja fel a függőségeket.
  • ☑️ Egy műtárgy: Az io.appium java-client függőség beolvassa a Selenium API, távoli illesztőprogram és támogató jar fájlok tranzitíven.
  • Verziófegyelem: A Java-kliens kiadását a következőhöz igazítsa: Selenium az a tartomány, amelyet a futási időben a NoSuchMethodError elkerülése érdekében deklarál.
  • 🧪 Fix elrendezés: A Surefire csak az src/test/java könyvtárban található osztályokat hajtja végre, így a rosszul elhelyezett tesztek lefordulnak, de soha nem futnak le.
  • 🇧🇷 Parancs sor: Az mvn clean test lefordítja és végrehajtja a csomagot, az eredményeket pedig a target/surefire-reports fájlokba írja.
  • 📊 Előfeltételek: Maven soha nem kezdi el a Appium szerver vagy eszköz, tehát mindkettőnek készen kell állnia a build megkezdése előtt.

Appium Maven függőségek beállítása a pom.xml és a Java-client artifact segítségével

Mi a Apache Maven?

Apache Maven egy olyan Java-alapú projektmenedzsment és automatizálási eszköz. Többfeladatos keretrendszert biztosít a fejlesztők számára, hogy megkönnyítse a teljes összeállítási életciklust Java alkalmazások. A Maven egy POM (Project Object Model) nevű XML formátumban előre definiált és deklarált, és „pom.xml” néven szerepel. Más nyelvekhez is használható, például C#, Scala, Ruby stb.

A Maven keretrendszer használatával könnyedén kezelheti a következő feladatokat bármely projektben:

  • Építési ciklus
  • Projektdokumentáció
  • Jelentés ellenőrzések
  • Scrum menedzsment
  • Kiadási információk

A Maven alapvető felhasználási módjai a következők:

  • Szabványos címtárszerkezetet kényszerít ki.
  • Biztosítson újrafelhasználható és könnyen karbantartható projektstruktúrát.
  • Csomagfüggőségek feloldása.
  • Konfigurációkezelési keretrendszer biztosítása.

Ez a függőségfeloldási képesség pontosan az, ami egy Appium projekt igényei, mivel a Java az ügyfél egy láncot húz be Selenium olyan jar fájlok, amiket senki sem akar kézzel letölteni.

Letöltés Appium Maven-függőségek

Mielőtt elkezdenél írni egy Appium függőségi teszt Mavennel, le kell töltened a Appium Maven függőség — a Appium JAR letölthető fájl — innen: Maven központi adattár weboldalaAz alábbi képernyőkép a Java-kliens artefaktum listáját mutatja a Maven Centralon, ahol minden közzétett verzió és azok kész kódrészlete elérhető.

Appium Java-kliens artefaktum listázása a Maven központi adattár keresőoldalán

Vagy közvetlenül hozzáadhatja az alább említett POM.xml műterméket:

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

⚠️ Verzió megjegyzés: a 3.4.1 A fenti koordináta az eredeti példa, és továbbra is a blokk helyes alakját mutatja. Ez megelőzi a W3C WebDriver protokollt, így egy új projektnek kellene frissítenie a verziót. Az írás pillanatában a Maven Centralon jelenleg a következő kiadás található: 10.1.1, amely megköveteli Selenium 4.42.0 vagy újabb.

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

Kérjük, nézze át a mi oldalunkat Maven bemutató hogy megtanulja, hogyan kell konfigurálni a Maven-t Eclipse.

Appium Maven projekt felépítése és szükséges függőségei

A Maven fix elrendezést ír elő, és ennek ismerete megakadályozza a későbbiekben felmerülő zavarok nagy részét. Egy generált projekt négy fontos helyet tartalmaz:

  • pom.xml — a projekt objektummodellje a projekt gyökerében, ahol minden függőség és bővítmény deklarálva van.
  • src / main / java — alkalmazás- és segédosztályok.
  • src/test/java — tesztosztályok, és az egyetlen könyvtár, amelyet a Surefire bővítmény beolvas egy build futtatásakor.
  • cél — lefordított kimeneti és tesztjelentések, minden buildkor újragenerálva.

Az Appium A java-client az egyetlen kötelező függőség, mivel ez deklarálja a Selenium API, távoli illesztőprogram és támogatási elemek tranzitíven. Sok csapat még mindig pinel. Selenium explicit módon, hogy a verzió egy helyen látható legyen, és adj hozzá egy tesztfuttatót:

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

Tartsa a két verziót kompatibilisen. A Java-kliens kiadása kimondja, hogy a Selenium általa támogatott tartomány, és egy régi kliens keverése egy sokkal újabbal Selenium a NoSuchMethodError leggyakoribb oka futási időben. Java-kliens adattár dokumentálja a párosítást minden kiadáshoz.

Alkalmazás tesztelése a következővel: Appium és Maven

A függőség fennállásával a Eclipse az alábbi munkafolyamat egy futtatható projektet épít a nulláról. A konfigurálás után Appium Java Maven bővítmény Eclipse, a munkaterület készen áll bármilyen tesztelésre Android .apk alkalmazás a Appium és Maven, ahogy az a Appium Példa a Maven projektre alább.

Step 1) Ebben a lépésben a

  1. Lépjen az ÚJ oldalra >> válassza a Maven projektet
  2. Kattintson a „következő” gombra

Megnyílik az új projekt varázsló, kiemelve a Maven Projectet, ahogy az itt látható.

Eclipse Új projekt varázsló kiválasztott Maven projekttel

Step 2) Ezután az „Új Maven projekt” ablakban írja be: „Appium „Teszt” a „Csoportazonosító” és a „Tételazonosító” oszlopokban. Ebben a lépésben a következőket kell megadnia:

  1. Csoportazonosító
  2. Artefact Id
  3. Változat
  4. Csomagolás
  5. Név és Description
  6. befejez

A kitöltött New Maven Project űrlap az alábbi képernyőképen látható módon néz ki.

Új Maven projekt ablak kitöltve a csoportazonosítóval, az artifakt azonosítójával, a verzióval és a csomagolással

A Befejezés gombra kattintva egy új osztály nyílik meg a megadott csoportazonosító alatt (Appiumteszt) név.

Step 3) Kezdjük azzal, hogy a Appium szkriptet, kattintson jobb gombbal a bal oldali böngészőablakban található 'src/main/java' elemre. Ezután válassza az Új >> osztály lehetőséget. Írja be a következőt: Appium kódot a kiválasztott osztályon belül.

Az osztály létrehozásához használt helyi menü alább látható.

Jobb klikk menü a src/main/java mappában, amely az Új és Osztály elemeket mutatja Eclipse felfedező

Step 4) Ugyanebben a projektben kattintson a pom.xml fájlra a bal oldali böngésző menüben. Az összes függőség alapértelmezés szerint látható lesz a „pom.xml” lapon. Lásd az alábbi képet.

pom.xml szerkesztő fül a Eclipse a feloldott projektfüggőségek listázása

Ha az alapértelmezett pom.xml nem létezik, akkor egyszerűen adja hozzá az összes Maven-t Appium függőségek, pl.traca Maven központi adattár weboldaláról letöltöttem:

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

A szerkesztett pom.xml fájl a következővel: Appium A hozzáadott függőségek az alábbiakban láthatók.

pom.xml forrás nézet a következő után Appium A java-client függőség be lett illesztve

Step 5) Most kattintson jobb gombbal a 'pom.xml' fájlra a bal oldali böngészőben, vagy a ' XML kódjáraAppium„Teszt” projekt. Ezután kattintson a „Futtatás másként >> Maven Clean” opcióra, ahogy az alább látható.

Eclipse Futtatás másként almenü, kiemelve a Maven Clean opcióval

Futás közben láthatod az összes Mavenhez kapcsolódó jar fájlt és egy sikerüzenetet, ahogy az alább látható konzolkimenetben is látható. Így futtathatsz egy Appium Java kliens Maven függőségi teszt Maven-konfigurációjú környezetben.

Eclipse a letöltött Maven jar fájlokat és a sikeres build üzenetet mutató konzol

Hogyan kell futni Appium Maven parancsokkal végzett tesztek

Az Eclipse A menü kényelmes, de ugyanazon buildnek felügyelet nélkül kell futnia egy build szerveren, és ott a parancssor az egyetlen lehetőség. Nyiss meg egy terminált a pom.xml fájlt tartalmazó mappában, és használd ezeket a parancsokat.

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

Mindegyiknek megvan a maga külön feladata:

  • mvn tiszta törli a target könyvtárat, így semmi elavult nem marad meg a következő buildben. Ez a parancs, amelyet a Eclipse a fenti triggerek áttekintése.
  • mvn tiszta teszt lefordítja a projektet és végrehajtja a tesztosztályokat. A Maven Surefire bővítmény automatikusan kiválasztja őket a következőből: src/test/java, az alapértelmezett include minták használatával Test*.java, *Test.java, *Tests.java és a *TestCase.java.
  • mvn tiszta telepítés lefuttatja a teszteket, majd elhelyezi a becsomagolt műterméket a helyi tárolóba, hogy egy másik projekt is támaszkodhasson rá.
  • mvn test -Dtest=Bejelentkezési teszt egyetlen osztályra szűkíti a futtatást a hibakeresés során.

Két dolog ragadja meg az embereket. Először is, a Appium a szervernek már futnia kell, és egy eszközt vagy emulátort csatlakoztatni kell a build megkezdése előtt, mivel a Maven egyiket sem indítja el – ellenőrizze az eszközt egy aDB először ellenőrizze. Másodszor, az eredményeket a rendszer a következőre írja ki: target/surefire-reports, amely az a mappa, amelyet egy CI-feladatnak archiválnia kell. Surefire használati útmutató részletesen ismerteti a konfigurációs lehetőségeket, és ugyanazok a parancsok vezérlik a Appium lakosztály innen Jenkins.

Közös Appium Maven hibák és azok javítása

A legtöbb kudarc egy Appium A Maven beállításainak problémái inkább néhány ismétlődő okból erednek, mint magából a tesztkódból. Az alábbi táblázat minden tünetet a szokásos megoldáshoz rendel.

Tünet Valószínű oka Rögzít
Nem sikerült feloldani az io.appium:java-client függőségeit. Hibás verziószám, vagy nincs hálózati hozzáférés a Maven Centralhoz Másold ki a koordinátákat közvetlenül a Maven Central listából, és futtasd újra a buildet
NoSuchMethodError vagy NoClassDefFoundError egy Selenium osztály A Java-client és a Selenium-Java verziók nem kompatibilisek. Párosítsd a Selenium verzió a Java-client kiadásában deklarált tartományhoz
A tesztek lefordulnak, de egyik sem fut le A tesztosztályok a src/main/java könyvtárban találhatók, vagy az osztály neve nem egyezik a Surefire include mintájával. Helyezd át őket a src/test/java mappába, és nevezd el az osztályt úgy, hogy a vége Test legyen.
Kapcsolat elutasítva a 4723-es porton Az Appium a szerver nem fut Indítsa el a Appium szerver a build előtt
Érvénytelen vagy nem támogatott képesség A modern illesztőprogrammal használt hagyományos képességnevek Revnézd a jelenlegit kívánt képességek a platformodhoz
Nem támogatott osztályfájl főverziója A Maven által használt JDK eltér a pom.xml-ben található fordítói szinttől. Igazítsa a maven.compiler.source és target tulajdonságokat a telepített fájlhoz JDK

Amikor egy build meghiúsul, a Maven által kiírt első hibát olvassa be az utolsó helyett. A későbbi sorok általában az első hiányzó műtermék következményei.

GYIK

Válaszd a Maven Centralon listázott legújabb kiadást, ne pedig egy régi oktatóanyagból másolt verziót. Jelen írás pillanatában ez a 10.1.1-es verzió, amely a következőket várja el: Selenium 4.42.0 vagy újabb verzió az osztályútvonalon.

A gépi tanulási modellek kijavítják az elemlokátorokat a felhasználói felület változása után, csoportosítják a duplikált hibákat az eszközök között, és megjósolják, hogy egy commit mely teszteket fogja valószínűleg megtörni, így egy rövidebb Maven-futtatás lefedi a kockázatos területet.

A Copilot egy egysoros megjegyzésből egészíti ki a groupId, artifactId és version elemeket. Gyakran elavult verziószámot javasol, ezért a fájl véglegesítése előtt ellenőrizd a koordinátákat a Maven Centralban.

Nem szigorúan véve. A java-kliens deklarálja a Selenium tranzitív módon. Sok csapat még mindig explicit módon rögzíti a selenium-java-t, hogy a verzió látható legyen, és a frissítések szándékosak legyenek, ne pedig véletlenszerűek.

Mindkettő ugyanazokat a problémákat oldja meg. A Maven deklaratív XML-t használ, és megfelel azoknak a csapatoknak, amelyek fix életciklust szeretnének. Gradle szkriptek Groovy vagy Kotlin-en keresztül, és inkrementálisan épül fel, ami segít a nagy, több modulból álló adattárak kezelésében.

Az src/test/java könyvtárban. A Surefire csak a build során vizsgálja ezt a könyvtárat, így az src/main/java könyvtárban hagyott osztály lefordul, de soha nem hajtódik végre, ami úgy néz ki, mint egy csendesen áthaladó csomag.

Nem. A Maven csak JAR-okat old fel és teszteket futtat. Indítsa el a Appium kiszolgálót, és először csatlakoztasson egy eszközt vagy emulátort, vagy indítsa el a kiszolgálót a tesztbeállítási módszerből vagy egy CI-folyamatlépésből.

Nézd meg a tárhelyet, indítsd el a Appium szerver és egy eszköz, majd futtasd az mvn tiszta tesztet. ArchiA target/surefire-jelentéseket build artefaktumként használja, így a hibák az ügynök megsemmisítése után is olvashatók maradnak.

Foglald össze ezt a bejegyzést a következőképpen: