Appium è uno strumento gratuito e open source per l'automazione test di app per dispositivi mobili, Web mobile e applicazioni ibride su desktop iOS, Android e Windows. Le app native vengono create con gli SDK iOS, Android o Windows.
Le app Web mobili sono app Web a cui si accede tramite un browser mobile (Appium supporta Safari su iOS e Chrome, nonché l'app "Browser" integrata su Android).
Appium: l'automazione delle app mobili resa straordinaria

Appium è "multipiattaforma", il che significa che puoi scrivere test per più piattaforme (iOS, Android e Windows) utilizzando la stessa API. Ciò consente il riutilizzo del codice nelle suite di test iOS, Android e Windows.
Caratteristiche dell'Appio
- Appium non richiede alcun codice sorgente o librerie dall'applicazione.
- Appium ha una comunità vivace e attiva.
- Appium supporta test multipiattaforma, il che significa che può eseguire gli stessi casi di test su più piattaforme.
- Appium supporta l'esecuzione di script di test in parallelo.
- Una piccola modifica in Appium non richiede la reinstallazione dell'applicazione.
- Appium supporta molti linguaggi che dispongono di una libreria client Selenium, incluso C#, Python, Java, Ruby, PHP, JavaScript con node.js, e molti altri.
I seguenti sono i vantaggi di Appium
- Appium ti consentirà di scrivere test su piattaforme mobili utilizzando la stessa API.
- È possibile scrivere ed eseguire test utilizzando qualsiasi tipo di framework o linguaggio di test.
- Poiché Appium è una piattaforma open source, puoi facilmente contribuire ad essa.
- Appium offre supporto multipiattaforma per applicazioni mobili ibride e native.
- Appium supporta il protocollo wire JSON.
- Appium non richiede la ricompilazione dell'app.
- Appium supporta anche i test di automazione su dispositivi fisici, simulatori ed emulatori.
- Appium non si affida in alcun modo ai dispositivi mobili.
Appium presenta i seguenti inconvenienti
- Le versioni Android inferiori alla 4.2 non sono consentite per il test.
- Il supporto di Appium per i test delle app ibride è limitato. Non sarai in grado di testare l'azione che consente alle applicazioni di passare da app Web native a native.
- Non è disponibile alcun supporto per l'esecuzione di Appium Inspector su Microsoft Windows.
- Il confronto delle immagini non è supportato.
- Appium richiede molto tempo per essere configurato sia per Android che per iOS.
Concetti importanti per Appio
Nella sezione seguente esamineremo tre concetti chiave che sono fondamentali per l'architettura di Appium.
Architettura client-server in Appium
Appium è, essenzialmente, un server node.js. Il server utilizza un'architettura client-server. Il client si connette al server per accedere a qualsiasi servizio ospitato sul server, secondo l'architettura client-server. Qualsiasi interazione tra client e server assume la forma di risposte e richieste.
In Appium, il client invia richieste di automazione al server Appium. Il server elabora la richiesta in modo distinto, di cui parleremo tra poco, e quindi restituisce il risultato del test o i file di registro.
Sessioni dell'Appio
Ogni attività di "test" è contenuta all'interno di una sessione. Dato che Appium è un semplice meccanismo client-server, questo è evidente. Le richieste di post, note anche come richieste di sessione, vengono inviate al server dal client. Queste richieste contengono dati in formato oggetto JSON e la comunicazione viene effettuata tramite il protocollo JSON Wire.
Capacità desiderate
Su iOS e Android, Appium si comporta diversamente. Poiché si tratta di uno strumento “multipiattaforma”, deve essere predisposto un meccanismo per distinguere tra le richieste di sessione dei due sistemi operativi. Questa dichiarazione del problema è stata risolta anche utilizzando oggetti JSON chiamati Desired Capabilities.
Le funzionalità desiderate sono coppie di informazioni chiave-valore che differenziano la creazione di una sessione di test di un'app Android da quella di un'app iOS. Con argomenti come.
- nomepiattaforma
- nome del dispositivo
- pacchetto app
- appActivity.
Il server può facilmente distinguere tra i due sistemi operativi.
Come usare Appium
Appio su Android
Appium su Android automatizza utilizzando il framework UIAutomator. Android ha creato UIAutomator come framework per l'automazione. Quindi, diamo uno sguardo più da vicino a come funziona Appium su Android.
- Il client Appium (c/Java/Python/ecc.) si connette al server Appium e comunica con esso utilizzando il protocollo JSON Wire.
- Appium Server crea quindi una sessione di automazione per il client e verifica le funzionalità desiderate dal client. Quindi comunica con i framework forniti dal fornitore, come UIAutomator.
- Quindi, UIAutomator comunicherà con Bootstrap.jar che viene eseguito in un simulatore/emulatore/dispositivo reale per eseguire operazioni client
- In questo caso bootstrap.jar funge da server TCP attraverso il quale possiamo inviare il comando test per agire sul dispositivo Android utilizzando UIAutomator.
Appio su iOS
Appium interagisce con gli elementi dell'interfaccia utente sui dispositivi iOS utilizzando l'API XCUI Test di Apple. XCode di Apple include il framework di automazione XCUITest.
- Il client Appium (c/Java/Python/ecc.) si connette al server Appium e comunica con esso utilizzando il protocollo JSON Wire.
- Appium Server crea quindi una sessione di automazione per il client, controlla le funzionalità desiderate dal client e si connette al rispettivo framework fornito dal fornitore, come XCUI Test.
- Per le operazioni client, XCUI Test comunicherà quindi con bootstrap.js, che è in esecuzione in un simulatore/emulatore/dispositivo reale.
- js eseguirà l'azione sulla nostra applicazione in fase di test. Dopo l'esecuzione del comando, il client restituisce il messaggio al server Appium con i dettagli del log del comando eseguito.
Test mobile con TestGrid
TestGrid è il miglior strumento disponibile per automatizzare i tuoi test mobili. TestGrid supporta sia Android che iOS per il test delle app mobili. Puoi facilmente iniziare a testare la tua applicazione mobile su TestGrid in pochi clic.
Esaminare la complessità
Utilizzando TestOS di TestGrid, sarai in grado di analizzare anche le funzionalità più "complesse delle più complesse" di qualsiasi app mobile, sia essa per Android, iOS, Windows o qualsiasi altro sistema. La parte più bella è che testare una funzionalità così complicata non richiede che tu sappia o impari nulla di nuovo. Tutto ciò di cui hai bisogno sono pochi clic del mouse e TestOS!
Riutilizzare i test
Uno degli aspetti che richiedono più tempo nel testare il software delle app mobili è la riscrittura degli stessi casi di test per ogni nuovo software. Di conseguenza, TestOS è progettato per i dispositivi mobili test di automazione in modo tale che i team di QA possano salvare e riutilizzare quasi tutti i test su diverse versioni dell'app e su altre app.
Risultati migliori con meno conoscenze tecniche
Il problema principale con i test del software è che è necessario imparare molta codifica manuale e utilizzare molti strumenti, oppure è possibile assumere persone che abbiano le conoscenze e le competenze necessarie. Tuttavia, con TestOS, puoi eseguire test del software a livello di esperto per ottenere risultati migliori senza la necessità di conoscenze tecniche di "livello esperto"!
Diversi test all'interno dello stesso tutto
Intendiamo letteralmente "tutto" quando diciamo "tutto". Con gli stessi dashboard, ambiente e strumenti, puoi eseguire un'ampia gamma di test mobili, inclusi test funzionali, test delle prestazioni, test operativi, test di sicurezza e molti altri... Ciò ti consentirà di ampliare la tua attività di test in modo rapido e fluido.
Esegui i test quando e dove vuoi
Quando hai voglia di fare qualcosa, puoi farlo in modo più efficiente e risparmiare tempo, e lo stesso vale per i test. E, per soddisfare le tue sensazioni, non devi essere nel tuo ufficio o portare con te il tuo laptop per eseguire casi di test. Accedi semplicemente a un server cloud e inizia a eseguire centinaia di test quando e dove vuoi.
Ridurre le spese e aumentare i profitti
L'automazione con TestGrid TestOS nel tuo toolkit ridurrà la quantità di lavoro che i membri del tuo team devono svolgere manualmente per testare le app. Di conseguenza, la tua azienda può utilizzare meglio il proprio team e dedicare più tempo ad attività più produttive e generatrici di profitti piuttosto che ad attività noiose e dispendiose in termini di tempo.