Appium Dipendenza Maven: Configura con Eclipse Esempio di progetto

⚡ Riepilogo intelligente

Appium La gestione delle dipendenze di Maven consente a un progetto di automazione mobile di dichiarare l'artefatto java-client nel file pom.xml, in modo che Maven risolva automaticamente ogni file jar e la stessa build venga eseguita su qualsiasi macchina senza bisogno di download manuali.

  • 🔴 Cosa fa Maven: Apache Maven Gestisce il ciclo di vita della build e risolve le dipendenze da un singolo file pom.xml dichiarativo.
  • ☑️ Un manufatto: La dipendenza io.appium java-client include Selenium API, driver remoto e jar di supporto in modo transitivo.
  • Disciplina di versione: Abbina la versione del client Java alla Selenium intervallo che dichiara per evitare NoSuchMethodError in fase di esecuzione.
  • 🧪 Layout fisso: Surefire esegue solo le classi presenti nella directory src/test/java, quindi i test posizionati in modo errato vengono compilati ma non vengono mai eseguiti.
  • Riga di comando: Il comando mvn clean test compila ed esegue la suite, scrivendo i risultati nella directory target/surefire-reports.
  • 📊 Prerequisiti: Maven non inizia mai il Appium server o dispositivo, quindi entrambi devono essere pronti prima dell'inizio della compilazione.

Appium Configurazione delle dipendenze Maven con pom.xml e l'artefatto java-client

Cosa è Apache Maven?

Apache Maven è un Javastrumento di gestione e automazione dei progetti basato su PC. Fornisce un framework multitasking per gli sviluppatori per facilitare il ciclo di vita completo della build Java applicazioni. Maven è predefinito e dichiarato in un formato XML chiamato POM (Project Object Model) e denominato "pom.xml". Può essere utilizzato anche per altri linguaggi come C#, Scala, Ruby, ecc.

Utilizzando il framework Maven, è possibile gestire facilmente le seguenti attività in qualsiasi progetto:

  • Ciclo di costruzione
  • Documentazione del progetto
  • Segnala controlli
  • Gestione delle mischie
  • Informazioni sulla versione

Gli utilizzi di base di Maven sono:

  • Applica una struttura di directory standard.
  • Fornire una struttura di progetto riutilizzabile e di facile manutenzione.
  • Risolvere le dipendenze dei pacchetti.
  • Fornire un quadro di gestione della configurazione.

Quella capacità di risoluzione delle dipendenze è esattamente ciò che un Appium esigenze del progetto, perché il Java il cliente tira fuori una catena di Selenium file jar che nessuno vuole scaricare manualmente.

Scaricare Appium Dipendenze Mavenven

Prima di iniziare a scrivere un Appium test di dipendenza con Maven, è necessario scaricare il Appium dipendenza Maven — la Appium Scarica il file JAR — dal Sito web del repository centrale di MavenLo screenshot qui sotto mostra l'elenco degli artefatti java-client su Maven Central, dove sono disponibili tutte le versioni pubblicate e i relativi snippet precompilati.

Appium Elenco degli artefatti java-client nella pagina di ricerca del repository centrale di Maven

Oppure aggiungi direttamente l'artefatto POM.xml menzionato di seguito:

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

⚠️ Nota sulla versione: , il 3.4.1 La coordinata sopra è l'esempio originale e mostra ancora la forma corretta del blocco. È precedente al protocollo W3C WebDriver, quindi un nuovo progetto dovrebbe aggiornare la versione. Al momento della stesura di questo testo, la versione corrente su Maven Central è 10.1.1, che richiede Selenium 4.42.0 o successivo.

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

Per favore, consulta il nostro Tutorial per esperti per sapere come configurare Maven con Eclipse.

Appium Struttura del progetto Maven e dipendenze richieste

Maven impone una struttura fissa, e conoscerla previene gran parte della confusione che seguirà in seguito in questa guida. Un progetto generato contiene quattro posizioni importanti:

  • pom.xml — il Project Object Model nella directory principale del progetto, dove vengono dichiarate tutte le dipendenze e i plugin.
  • src / main / java — classi applicative e di supporto.
  • src/test/java — classi di test e l'unica directory che il plugin Surefire analizza quando si esegue una build.
  • bersaglio — output compilato e report di test, rigenerati a ogni compilazione.

Migliori Appium java-client è l'unica dipendenza obbligatoria, perché dichiara il Selenium API, driver remoti e artefatti di supporto in modo transitivo. Molti team ancora fissano Selenium esplicitamente in modo che la versione sia visibile in un unico posto e aggiungi un test runner:

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

Mantieni compatibili le due versioni. Una release di java-client afferma che Selenium gamma supportata e mescolando un vecchio client con uno molto più recente Selenium è la causa più comune di un NoSuchMethodError in fase di esecuzione. repository del client Java documenta l'abbinamento per ogni rilascio.

Applicazione di test con Appium e Maven

Con la dipendenza in essere, il Eclipse Il flusso di lavoro seguente crea un progetto eseguibile da zero. Dopo aver configurato il Appium Java Plug-in Maven Eclipse, l'area di lavoro è pronta per testare qualsiasi Android .apk applicazione con Appium e Maven, come mostrato nel Appium Esempio di progetto Maven di seguito.

Passo 1) In questa fase,

  1. Vai a NUOVO >> seleziona il progetto Maven
  2. Fai clic sul pulsante 'avanti'

La procedura guidata per la creazione di un nuovo progetto si apre con l'opzione "Progetto Maven" evidenziata, come mostrato qui.

Eclipse Creazione guidata nuovo progetto con progetto Maven selezionato

Passo 2) Quindi nella finestra 'Nuovo progetto Maven', immettere 'Appium 'Test' nelle colonne ID gruppo e ID artefatto. In questo passaggio, è necessario inserire:

  1. ID gruppo
  2. ID artefatto
  3. Versione
  4. Packaging
  5. Nome e Descriptione
  6. Finitura

Il modulo "Nuovo progetto Maven" compilato si presenta come nello screenshot qui sotto.

Nuova finestra di progetto Maven con ID gruppo, ID artefatto, versione e packaging compilati.

Facendo clic sul pulsante Fine si aprirà una nuova classe con l'ID gruppo definito (Appiumprova) nome.

Passo 3) Per iniziare con il Appium script, fai clic con il pulsante destro del mouse su 'src/main/java' nella finestra di Esplora risorse a sinistra. Quindi seleziona Nuovo >> classe. Scrivi il Appium codice all'interno della classe selezionata.

Il menu contestuale utilizzato per creare quella classe è mostrato di seguito.

Menu contestuale (clic destro) su src/main/java che mostra Nuovo e Classe in Eclipse esploratore

Passo 4) Nello stesso progetto, fai clic su pom.xml nel menu Esplora risorse a sinistra. Tutte le dipendenze saranno visibili per impostazione predefinita nella scheda 'pom.xml'. Fai riferimento all'immagine seguente.

scheda editor pom.xml in Eclipse elenco delle dipendenze del progetto risolte

Se il pom.xml predefinito non esiste, aggiungi semplicemente tutti i file Maven Appium dipendenze, ad esempiotractratto dal sito web del repository centrale di Maven:

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

Il pom.xml modificato con il Appium Le dipendenze aggiunte sono mostrate di seguito.

vista sorgente pom.xml dopo il Appium La dipendenza java-client è stata incollata

Passo 5) Ora, fai clic con il pulsante destro del mouse su 'pom.xml' nell'explorer a sinistra oppure sul codice XML per il 'AppiumProgetto "Test". Quindi fai clic sull'opzione "Esegui come >> Maven Clean", come mostrato di seguito.

Eclipse Sottomenu Esegui come con l'opzione Maven Clean evidenziata

Durante l'esecuzione, puoi vedere tutti i file jar relativi a Maven e un messaggio di successo, come nell'output della console qui sotto. Ecco come si esegue un Appium Java Test delle dipendenze client Maven in un ambiente configurato con Maven.

Eclipse console che mostra i file jar di Maven scaricati e il messaggio di successo della build

Come correre Appium Test con comandi Maven

Migliori Eclipse Il menu è comodo, ma la stessa build deve essere eseguita in modalità automatica su un server di build, e in quel caso la riga di comando è l'unica opzione. Apri un terminale nella cartella che contiene il file pom.xml e usa questi comandi.

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

Ognuno ha un compito ben preciso:

  • mvn clean elimina il target directory in modo che nulla di obsoleto sopravviva alla build successiva. Questo è il comando Eclipse la procedura guidata sopra riporta i trigger.
  • test pulito mvn compila il progetto ed esegue le classi di test. Il plugin Maven Surefire le rileva automaticamente da src/test/java, utilizzando i modelli di inclusione predefiniti Test*.java, *Test.java, *Tests.java and *TestCase.java.
  • installazione pulita mvn esegue i test e poi inserisce l'artefatto impacchettato nel repository locale, in modo che un altro progetto possa dipendere da esso.
  • mvn test -Dtest=LoginTest restringe l'esecuzione a una singola classe durante il debug.

Due punti traggono in inganno le persone. Primo, il Appium Il server deve essere già in esecuzione e un dispositivo o un emulatore deve essere connesso prima dell'avvio della build, perché Maven non avvia nessuno dei due: verifica il dispositivo con un adb prima controllare. In secondo luogo, i risultati vengono scritti su target/surefire-reports, che è la cartella che un job CI dovrebbe archiviare. Guida all'uso di Surefire copre le opzioni di configurazione in dettaglio e gli stessi comandi guidano un Appium suite da Jenkins.

Uncommon Appium Errori di Maven e come risolverli

La maggior parte dei fallimenti in un Appium I problemi di configurazione di Maven derivano da una serie di cause ripetibili, piuttosto che dal codice di test stesso. La tabella seguente associa ciascun sintomo alla relativa soluzione.

Sintomo Causa probabile Fissare
Impossibile risolvere le dipendenze per io.appium:java-client Stringa di versione errata oppure nessun accesso di rete a Maven Central Copia le coordinate direttamente dall'elenco di Maven Central e riavvia la build.
NoSuchMethodError o NoClassDefFoundError da un Selenium classe Le versioni di java-client e selenium-java sono incompatibili Abbinare la Selenium versione per l'intervallo dichiarato dalla release del client Java
I test vengono compilati ma nessuno viene eseguito. Le classi di test si trovano in src/main/java oppure il nome della classe non corrisponde a un modello di inclusione di Surefire Spostali in src/test/java e rinomina la classe in modo che termini con Test
Connessione rifiutata sulla porta 4723 Migliori Appium il server non è in esecuzione Avvia la Appium server prima della build
Funzionalità non valida o non supportata Nomi di funzionalità legacy utilizzati con un driver moderno Revguarda l'attuale capacità desiderate per la tua piattaforma
Versione principale del file di classe non supportata Il JDK utilizzato da Maven differisce dal livello del compilatore specificato nel file pom.xml. Allineare le proprietà maven.compiler.source e target con quelle installate JDK

Quando una build fallisce, leggi il primo errore visualizzato da Maven anziché l'ultimo. Le righe successive sono solitamente la conseguenza del primo artefatto mancante.

DOMANDE FREQUENTI

Prendi la versione più recente elencata su Maven Central piuttosto che una versione copiata da un vecchio tutorial. Al momento della stesura di questo testo, si tratta della 10.1.1, che prevede Selenium Versione 4.42.0 o successiva nel classpath.

I modelli di machine learning riparano i localizzatori degli elementi dopo una modifica dell'interfaccia utente, raggruppano gli errori duplicati tra i dispositivi e prevedono quali test è probabile che un commit fallisca, in modo che un'esecuzione Maven più breve copra l'area a rischio.

Copilot completa gli elementi groupId, artifactId e version a partire da un commento di una sola riga. Spesso suggerisce un numero di versione obsoleto, quindi è consigliabile verificare le coordinate su Maven Central prima di confermare il file.

Non strettamente. Il client Java dichiara il Selenium artefatti in modo transitivo. Molti team bloccano ancora esplicitamente selenium-java in modo che la versione sia visibile e gli aggiornamenti siano intenzionali piuttosto che accidentali.

Entrambi gestiscono gli stessi artefatti. Maven utilizza XML dichiarativo ed è adatto ai team che desiderano un ciclo di vita fisso. Gradle sceneggiature in Groovy o Kotlin e si sviluppa in modo incrementale, il che è utile su repository multi-modulo di grandi dimensioni.

In src/test/java. Surefire analizza solo quella directory durante la compilazione, quindi una classe lasciata in src/main/java viene compilata ma non viene mai eseguita, il che sembra un test superato silenziosamente.

No. Maven risolve i jar ed esegue solo i test. Avvia il Appium Avvia il server e connetti prima un dispositivo o un emulatore, oppure avvia il server dal tuo metodo di configurazione del test o da una fase della pipeline CI.

Controlla il repository, avvia il Appium server e un dispositivo, quindi eseguire mvn clean test. ArchiUtilizzare target/surefire-reports come artefatto di build in modo che i fallimenti rimangano leggibili anche dopo la distruzione dell'agente.

Riassumi questo post con: