Architettura Appium per test di applicazioni mobili

Pubblicato: 2020-06-26

Sommario

Panoramica di Appium

Appium è uno strumento/framework gratuito di test di applicazioni mobili che fornisce automazione per applicazioni mobili iOS e Android. Appium è un'architettura client-server che accetta codice di test scritto in Java, Python, Ruby, JavaScript, ecc.

Al centro, Appium è un server Web scritto nel linguaggio di programmazione Node.js che crea sessioni iOS e Android utilizzando il protocollo JSON wire.

Appium Server esegue le seguenti azioni

  • Riceve una connessione dal client sotto forma di un oggetto JSON su HTTP
  • Avvia una sessione e poi restituisce l'ID della sessione
  • Ascolta i comandi impartiti
  • Esegue questi comandi su un dispositivo mobile
  • Risponde con una risposta HTTP

Fonte

Concetti chiave di Appium

Prima di approfondire l' architettura di Appium , comprendiamo innanzitutto i concetti chiave associati all'architettura di Appium .

Cliente Appium

Il client Appium è un codice automatizzato con script scritto in qualsiasi lingua con cui ti senti a tuo agio (come PHP, Java , Phyton, ecc.). Il client Appium contiene i dettagli di configurazione del dispositivo mobile e dell'applicazione insieme alla logica/codice per eseguire i test case.

Server Appium

Il server Appium è un server HTTP scritto nel linguaggio di programmazione Node.js che riceve richieste di connessione e comandi dal client Appium in un formato JSON ed esegue tali comandi su un dispositivo mobile. Appium Server viene avviato prima di richiamare il codice di automazione.

Il server interagisce con le piattaforme iOS e Android e crea una sessione per interagire con i dispositivi finali delle applicazioni mobili.

Leggi: Le 20 migliori idee e argomenti di tendenza per progetti Android per principianti

Dispositivo finale

Il dispositivo finale è principalmente un dispositivo mobile in tempo reale o un emulatore. Gli script automatizzati vengono eseguiti nel dispositivo finale dal server Appium tramite i comandi del client.

Protocollo JSON Wire

Nell'architettura Appium, il protocollo wire JSON è un meccanismo di trasporto utilizzato per stabilire la comunicazione tra il client Appium e il server Appium. Questo protocollo controlla il comportamento di diversi dispositivi mobili durante una sessione. È un insieme di endpoint predefiniti esposti tramite API RESTful. Ad esempio, se un client desidera inviare dati a un server, il client lo converte in un oggetto JSON e lo invia al server. Il server quindi analizza l'oggetto JSON ricevuto e lo riconverte nei dati per l'uso.

Architettura di Appio

Cerchiamo ora di comprendere l' architettura di Appium .

Come accennato in precedenza, il server Appium è un server HTTP che legge le richieste HTTP dalle librerie client in formato JSON e invia queste richieste alla piattaforma appropriata. Il server Appium riconosce queste richieste e crea una sessione di automazione con il dispositivo finale corrispondente. Una volta creata la sessione, il server Appium avvia l'esecuzione dei test case nel dispositivo finale.

Il server Appium gestisce le richieste in modo diverso per iOS e Android, a seconda della piattaforma su cui è in esecuzione. Le sezioni seguenti spiegheranno come Appium esegue i comandi in modo diverso su queste piattaforme.

Appium che funziona su un dispositivo iOS

Su un dispositivo iOS, Appium utilizza l'API UIAutomation (libreria JavaScript fornita da Apple Company) per connettersi con gli elementi dell'interfaccia utente dell'applicazione.

La figura dell'architettura Appium iOS sopra descrive l' architettura Appium per l'automazione iOS. Decodifichiamo passo passo la figura dell'architettura iOS Appium :

  • Il client Appium comunica con il server Appium utilizzando il protocollo wire JSON e invia il comando in formato JSON al server.
  • Il server stabilisce quindi una connessione con il client e inoltra la richiesta all'ICS (Instruments Command Server). Il server Appium invia anche un file bootstrap.js al dispositivo iOS. ICC (client Instruments Command) quindi preleva il comando e lo esegue nel file bootstrap.js all'interno dell'ambiente del dispositivo iOS.
  • Una volta completata l'operazione di cui sopra, i dettagli del registro del comando eseguito vengono rispediti al server dal client.

Appium che funziona su un dispositivo Android

Su un dispositivo Android, Appium utilizzerà il framework UIAutomator sviluppato dagli sviluppatori Android per interagire con gli elementi dell'interfaccia utente dell'applicazione. L'UI Automator è un framework utilizzato per testare l'interfaccia utente.

La figura dell'architettura Appium Android sopra descrive l'architettura Appium per l'automazione Android. Le cifre sopra sostituiscono bootstrap.js con bootstrap.jar.

Scopri: Android SDK: un tutorial dettagliato per principianti

Decodifichiamo passo dopo passo la figura dell'architettura di Android Appium

  • Il client Appium comunica con il server Appium utilizzando il protocollo wire JSON e invia il comando in formato JSON al server.
  • Il server Appium stabilisce quindi una connessione con il client e inoltra la richiesta al controller ICS UiAutomator. Il server Appium invia anche un file bootstrap.jar al dispositivo Android. UiAutomator comanda il client, quindi preleva il comando e lo esegue nel file bootstrap.jar all'interno dell'ambiente del dispositivo Android.
  • Una volta completata l'operazione di cui sopra, i dettagli di log del comando eseguito vengono rispediti al server Appium dal client.

Leggi anche: Full-Stack vs Sviluppatore Android: quale dovresti scegliere

Conclusione

Appium è senza dubbio una delle piattaforme più popolari per il test delle applicazioni mobili. Di gran lunga, hai appreso la panoramica dell'architettura , del flusso di lavoro e del funzionamento di Appium su piattaforme iOS e Android.

Se sei interessato a saperne di più sullo sviluppo di software full-stack, dai un'occhiata al Diploma PG di upGrad e IIIT-B in Sviluppo software full-stack, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Prepararsi per una carriera del futuro

UPGRAD E DIPLOMA PG DI IIIT-BANGALORE NELLO SVILUPPO DEL SOFTWARE FULL STACK
Applica ora