Integrazione dei test Appium con Device Farm - AWS Device Farm

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Integrazione dei test Appium con Device Farm

Usa le seguenti istruzioni per integrare i test Appium con AWS Device Farm. Per ulteriori informazioni sull'utilizzo dei test Appium in Device Farm, vedere. Test Appium e AWS Device Farm

Configura il tuo pacchetto di test Appium

Utilizza le seguenti istruzioni per configurare il pacchetto del test.

Java (JUnit)
  1. Modifica pom.xml per impostare la confezione su un JAR file:

    <groupId>com.acme</groupId> <artifactId>acme-myApp-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>
  2. Modifica pom.xml per utilizzarlo maven-jar-plugin per creare i test in un JAR file.

    Il seguente plugin crea il codice sorgente del test (qualsiasi cosa nella src/test directory) in un JAR file:

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>
  3. Modifica pom.xml per utilizzarlo maven-dependency-plugin per creare dipendenze come JAR file.

    Il seguente plugin copia le tue dipendenze nella dependency-jars directory:

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>
  4. Salvate il seguente XML assieme in. src/main/assembly/zip.xml

    Di seguito XML è riportata una definizione di assembly che, una volta configurata, indica a Maven di creare un file.zip che contenga tutto ciò che si trova nella radice della directory di output della build e della directory: dependency-jars

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>
  5. Modifica pom.xml per utilizzarlo per maven-assembly-plugin impacchettare i test e tutte le dipendenze in un unico file.zip.

    Il seguente plugin utilizza l'assembly precedente per creare un file.zip denominato zip-with-dependencies nella directory di output della build ogni volta che viene eseguito: mvn package

    <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>
Nota

Se ricevi un messaggio di errore indicante che l'annotazione non è supportata nella versione 1.3, aggiungi quanto segue a pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>
Java (TestNG)
  1. Modifica pom.xml per impostare la confezione su un JAR file:

    <groupId>com.acme</groupId> <artifactId>acme-myApp-appium</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>
  2. Modifica pom.xml per utilizzarlo maven-jar-plugin per creare i test in un JAR file.

    Il seguente plugin crea il codice sorgente del test (qualsiasi cosa nella src/test directory) in un JAR file:

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin>
  3. Modifica pom.xml per utilizzarlo maven-dependency-plugin per creare dipendenze come JAR file.

    Il seguente plugin copia le tue dipendenze nella dependency-jars directory:

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.10</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> </configuration> </execution> </executions> </plugin>
  4. Salvate il seguente XML assieme in. src/main/assembly/zip.xml

    Di seguito XML è riportata una definizione di assembly che, una volta configurata, indica a Maven di creare un file.zip che contenga tutto ciò che si trova nella radice della directory di output della build e della directory: dependency-jars

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> <id>zip</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>./</outputDirectory> <includes> <include>/dependency-jars/</include> </includes> </fileSet> </fileSets> </assembly>
  5. Modifica pom.xml per utilizzarlo per maven-assembly-plugin impacchettare i test e tutte le dipendenze in un unico file.zip.

    Il seguente plugin utilizza l'assembly precedente per creare un file.zip denominato zip-with-dependencies nella directory di output della build ogni volta che viene eseguito: mvn package

    <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>zip-with-dependencies</finalName> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/zip.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin>
Nota

Se ricevi un messaggio di errore indicante che l'annotazione non è supportata nella versione 1.3, aggiungi quanto segue a pom.xml:

<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>
Node.JS

Per impacchettare i test di Appium Node.js e caricarli su Device Farm, è necessario installare quanto segue sul computer locale:

  • Node Version Manager (nvm)

    Utilizzare questo strumento per sviluppare e creare pacchetti di test in modo che inutili dipendenze non siano incluse nel pacchetto di test.

  • Node.js

  • npm-bundle (installato a livello globale)

  1. Verificare che nvm sia presente

    command -v nvm

    Dovresti vedere nvm come output.

    Per ulteriori informazioni, vedere nvm on. GitHub

  2. Eseguire questo comando per installare Node.js:

    nvm install node

    È possibile specificare una determinata versione di Node.js:

    nvm install 11.4.0
  3. Verificare che la versione corretta di Node sia in uso:

    node -v
  4. Installare npm-bundle globalmente:

    npm install -g npm-bundle
Python
  1. Si consiglia vivamente di configurare un virtualenv Python per lo sviluppo e di impacchettare i test in modo che le dipendenze non necessarie siano escluse dal pacchetto dell'applicazione.

    $ virtualenv workspace $ cd workspace $ source bin/activate
    Suggerimento
    • Non creare un virtualenv Python con l'opzione --system-site-packages, in quanto eredita pacchetti dalla directory site-packages globale. Questo può causare l'inclusione di dipendenze nell'ambiente virtuale non richieste dai test.

    • Verificare inoltre che i test non utilizzino dipendenze dipendenti da librerie native, in quanto queste librerie native potrebbero non essere presenti sull'istanza in cui sono eseguiti i test.

  2. Installare py.test nell'ambiente virtuale.

    $ pip install pytest
  3. Installare il client Appium Python nell'ambiente virtuale.

    $ pip install Appium-Python-Client
  4. A meno che non si specifichi un percorso diverso in modalità personalizzata, Device Farm prevede che i test vengano archiviati intests/. È possibile utilizzare find per mostrare tutti i file all'interno di una cartella:

    $ find tests/

    Verifica che questi file contengano suite di test che desideri eseguire su Device Farm

    tests/ tests/my-first-tests.py tests/my-second-tests/py
  5. Eseguire questo comando dalla cartella dell'area di lavoro dell'ambiente virtuale in modo da visualizzare un elenco di test senza eseguirli.

    $ py.test --collect-only tests/

    Conferma che l'output mostri i test che desideri eseguire su Device Farm.

  6. Pulire tutti i file memorizzati nella cache nella cartella dei test:

    $ find . -name '__pycache__' -type d -exec rm -r {} + $ find . -name '*.pyc' -exec rm -f {} + $ find . -name '*.pyo' -exec rm -f {} + $ find . -name '*~' -exec rm -f {} +
  7. Eseguire il comando seguente nell'area di lavoro, per generare il file requirements.txt:

    $ pip freeze > requirements.txt
Ruby

Per impacchettare i test di Appium Ruby e caricarli su Device Farm, è necessario installare quanto segue sul computer locale:

  • Gestore delle versioni di Ruby () RVM

    Utilizzare questo strumento a riga di comando per sviluppare e creare pacchetti di test in modo che inutili dipendenze non siano incluse nel pacchetto di test.

  • Ruby

  • Bundler (viene in genere installato con Ruby).

  1. Installa le chiavi richieste e Ruby. RVM Per istruzioni, consulta Installazione RVM sul RVM sito Web.

    Una volta completata l'installazione, ricaricare il terminale uscendo e accedendo nuovamente.

    Nota

    RVMviene caricato come funzione solo per la shell bash.

  2. Verifica che rvm sia installato correttamente.

    command -v rvm

    Dovresti vedere rvm come output.

  3. Se vuoi installare una versione specifica di Ruby, ad esempio 2.5.3, esegui il seguente comando:

    rvm install ruby 2.5.3 --autolibs=0

    Verificare di utilizzare la versione richiesta di Ruby:

    ruby -v
  4. Configura il bundler per compilare i pacchetti per le piattaforme di test desiderate:

    bundle config specific_platform true
  5. Aggiorna il file.lock per aggiungere le piattaforme necessarie per eseguire i test.

    • Se stai compilando test da eseguire su dispositivi Android, esegui questo comando per configurare Gemfile in modo che utilizzi le dipendenze per l'host di test Android:

      bundle lock --add-platform x86_64-linux
    • Se stai compilando test da eseguire su dispositivi iOS, esegui questo comando per configurare Gemfile in modo che utilizzi le dipendenze per l'host di test iOS:

      bundle lock --add-platform x86_64-darwin
  6. La gemma bundler viene solitamente installata per impostazione predefinita. Se non lo è, installa tale elemento:

    gem install bundler -v 2.3.26

Crea un file di pacchetto di test compresso

avvertimento

In Device Farm, la struttura delle cartelle dei file nel pacchetto di test compresso è importante e alcuni strumenti di archiviazione modificheranno la struttura del ZIP file in modo implicito. Ti consigliamo di seguire le utilità della riga di comando specificate di seguito anziché utilizzare le utilità di archiviazione integrate nel file manager del desktop locale (come Finder o Windows Explorer).

Ora, raggruppare i test per Device Farm.

Java (JUnit)

Creare i test:

$ mvn clean package -DskipTests=true

Come risultato, verrà creato il file zip-with-dependencies.zip. Questo è il pacchetto di test.

Java (TestNG)

Creare i test:

$ mvn clean package -DskipTests=true

Come risultato, verrà creato il file zip-with-dependencies.zip. Questo è il pacchetto di test.

Node.JS
  1. Verifica il progetto.

    Assicurati di essere nella directory principale del progetto. È possibile visualizzare package.json nella directory principale.

  2. Esegui il comando per l'installazione delle dipendenze locali.

    npm install

    Questo comando crea inoltre una cartella node_modules all'interno della directory corrente.

    Nota

    A questo punto dovresti essere in grado di eseguire i test in locale.

  3. Esegui il comando per creare pacchetti di file nella cartella corrente .tgz*. Il file è denominato utilizzando la proprietà name nel file package.json.

    npm-bundle

    Questo file tarball (.tgz) contiene tutti i codici e le dipendenze.

  4. Esegui il comando per creare un bundle di tarball (* file.tgz) generato nel passo precedente in un singolo archivio compresso:

    zip -r MyTests.zip *.tgz

    Questo è il MyTests.zip file che carichi su Device Farm con la procedura seguente.

Python
Python 2

Generare un archivio dei pacchetti Python richiesti (chiamato "wheelhouse") usando pip:

$ pip wheel --wheel-dir wheelhouse -r requirements.txt

Creare il pacchetto dei requisiti di wheelhouse, test e pip in un archivio zip per Device Farm:

$ zip -r test_bundle.zip tests/ wheelhouse/ requirements.txt
Python 3

Creare il pacchetto dei requisiti di test e pip in un file zip:

$ zip -r test_bundle.zip tests/ requirements.txt
Ruby
  1. Esegui questo comando per creare un ambiente Ruby virtuale:

    # myGemset is the name of your virtual Ruby environment rvm gemset create myGemset
  2. Esegui questo comando per utilizzare l'ambiente appena creato:

    rvm gemset use myGemset
  3. Consulta il codice sorgente.

    Assicurati di essere nella directory principale del progetto. È possibile visualizzare Gemfile nella directory principale.

  4. Esegui questo comando per l'installazione delle dipendenze locali e di tutte le gemme da Gemfile.

    bundle install
    Nota

    A questo punto dovresti essere in grado di eseguire i test in locale. Utilizzare questo comando per eseguire un test in locale:

    bundle exec $test_command
  5. Crea un pacchetto delle gemme nella cartella vendor/cache.

    # This will copy all the .gem files needed to run your tests into the vendor/cache directory bundle package --all-platforms
  6. Eseguire il comando seguente per il bundle del codice sorgente, insieme a tutte le tue dipendenze, in un singolo archivio compresso:

    zip -r MyTests.zip Gemfile vendor/ $(any other source code directory files)

    Questo è il MyTests.zip file che carichi su Device Farm con la procedura seguente.

Carica il tuo pacchetto di test su Device Farm

Puoi usare la console Device Farm per caricare i tuoi test.

  1. Accedere alla console Device Farm all'indirizzo https://console.aws.amazon.com/devicefarm.

  2. Nel pannello di navigazione di Device Farm, scegli Mobile Device Testing, quindi scegli Progetti.

  3. Se sei un nuovo utente, scegli Nuovo progetto, inserisci un nome per il progetto, quindi scegli Invia.

    Se hai già un progetto, puoi sceglierlo per caricarvi i test.

  4. Apri il progetto, quindi selezionare Create a new run (Crea una nuova sessione).

  5. Per i test nativi di Android e iOS

    Nella pagina Scegli l'applicazione, scegli App per dispositivi mobili, quindi seleziona Scegli file per caricare il pacchetto distribuibile dell'applicazione.

    Nota

    Il file deve essere un file .apk Android oppure un file .ipa iOS. Le applicazioni iOS devono essere costruite per dispositivi reali, non per il simulatore.

    Per i test delle applicazioni Web per dispositivi mobili

    Nella pagina Scegli l'applicazione, scegli App Web.

  6. Dare al test un nome appropriato. Tale nome può contenere qualsiasi combinazione di spazi o punteggiatura.

  7. Scegli Next (Successivo).

  8. Nella pagina Configura, nella sezione Setup test framework, scegli Appium language, quindi Scegli File.

  9. Individua e seleziona il file .zip che contiene i test. Il file .zip deve presentare il formato descritto in Configura il tuo pacchetto di test Appium.

  10. Scegli Esegui il test in un ambiente personalizzato. Questo ambiente di esecuzione consente il pieno controllo sulla configurazione, lo smontaggio e l'invocazione dei test, nonché sulla scelta di versioni specifiche dei runtime e del server Appium. È possibile configurare l'ambiente personalizzato tramite il file delle specifiche di test. Per ulteriori informazioni, consulta Lavorare con ambienti di test personalizzati in AWS Device Farm.

  11. Scegli Avanti, quindi segui le istruzioni per selezionare i dispositivi e avviare l'esecuzione. Per ulteriori informazioni, consulta Creazione di un'esecuzione di test in Device Farm.

Nota

Device Farm non modifica i test Appium.

Acquisisci schermate dei tuoi test (opzionale)

Durante i test, è possibile acquisire screenshot.

Device Farm imposta la proprietà DEVICEFARM_SCREENSHOT_PATH su percorso pienamente qualificato sul sistema locale di file in cui Device Farm si aspetta il salvataggio degli screenshot Appium. La directory specifica del test in cui sono archiviati gli screenshot è definita in fase di esecuzione. Gli screenshot vengono recuperati automaticamente nei report Device Farm. Per visualizzare gli screenshot, nella console Device Farm, selezionare la sezione Screenshots (Screenshot).

Per ulteriori informazioni sull'acquisizione di schermate nei test di Appium, consulta Take Screenshot nella documentazione di Appium. API