Discuteremo come scrivere Appium test script in questo tutorial. Possiamo testare le nostre applicazioni su simulatore e dispositivi reali. Appium supporta sia le piattaforme Android che iOS.
Argomenti trattati :
Come trovare il pacchetto dell'app e l'attività in Android
Per eseguire il tuo Script di test di Appium in Android dispositivi, dobbiamo passare il pacchetto dell'app e l'attività dell'app in base alle capacità desiderate. Esistono un paio di modi per ottenere l'attività dell'app e il pacchetto dell'app. Ne discuteremo qui. Per questo esempio, sceglieremo l'app di contatto. Segui i passaggi seguenti per ottenere l'attività e il pacchetto dell'app.
Per Windows
finestra adb shell dumpsys | trova -E mCurrentFocus
Per Mac / Linux
finestra adb shell dumpsys | grep mCurrentFocus

Come creare il tuo primo progetto per i test Appium
Per creare il progetto Appium Testing, abbiamo bisogno di client Maven, TestNG e Appium Java. Ne discuteremo in dettaglio di seguito.
Prerequisito
Come creare un progetto Maven
Per creare un progetto avanzato per i test Appium, fai clic su File e scegli Nuovo–> Progetto.

Successivamente, seleziona Maven e fai clic su Avanti

Chiederà Groupid e Artifactid. Si prega di fornire lo stesso. Si prega di controllare l'immagine sottostante per riferimento.

Ora seleziona il nome del progetto e fai clic su Fine.


Dobbiamo aggiungere la dipendenza testNG nel pom.xml per verificare la tua applicazione. Aggiungi sotto le dipendenze nel tuo pom.xml come mostrato nell'immagine sopra.
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>7.2.0</version>
<scope>test</scope>
</dependency>
</dependencies>
Capacità desiderate Appium testing
Nei test Appium, abbiamo bisogno delle capacità desiderate per interagire con i dispositivi. Capacità desiderate sono parametri inviati come coppia chiave-valore codificata in formato JSON per interagire con i dispositivi Android / iOS. I client Appium inviano queste informazioni al server Appium quando inizia una nuova sessione. Ogni client Appium sviluppa capacità a modo suo. Ma alla fine, tutti i parametri verranno inviati in formato JSON al server. Per maggiori dettagli sulle capacità desiderate, fare clic qui collegamento.
Come aggiungere le funzionalità desiderate per Android
Per interagire con i tuoi dispositivi Android con il tuo server Appium, dobbiamo passare le capacità desiderate specifiche. Aiuterà il server Appium a identificare in modo univoco i dispositivi Android collegati. Di seguito gli elenchi:
1. Devi passare la chiave come "nomepiattaforma"O" MobileCapabilityType.PLATFORM_NAME"E valore come"androide"
2. Devi passare la chiave come "platformVersion" o "MobileCapabilityType.VERSIONE_PIATTAFORMA"E valore come" 23 "[questo valore è la versione api della versione Android]
3. Devi passare la chiave come "nome del dispositivo" o "MobileCapabilityType.NOME DEL DISPOSITIVO"E valore come"Nexus 5X"[Aggiorna il valore con il nome del tuo dispositivo]
4. Devi passare la chiave come "nomeautomazione" o "MobileCapabilityType.AUTOMATION_NAME"E valore come"UIAutomator2"[Devi usare UIAutomator if UIAutomator2 non funziona]
5. Devi passare la chiave come "udid" o "MobileCapabilityType.TU HAI FATTO"E valore come"emulatore-5554"
6. Devi passare la chiave come "pacchetto app"E valore come"contatti.com.android"[Aggiorna i pacchetti dell'app della tua app]
7. Devi passare la chiave come "appActivity"E valore come"com.android.contacts.activities.PeopleActivity"[Aggiorna l'attività dell'app della tua app]
8. Fare riferimento all'immagine sottostante per i dettagli:

Come aggiungere le funzionalità desiderate per iPhone
Per interagire con i tuoi dispositivi Android con il tuo server Appium, dobbiamo passare le capacità desiderate specifiche. Aiuterà il server Appium a identificare in modo univoco i dispositivi Android collegati. Di seguito gli elenchi:
1. Devi passare la chiave come "nomepiattaforma"O" MobileCapabilityType.PLATFORM_NAME"E valore come"iOS"
2. Devi passare la chiave come "platformVersion" o "MobileCapabilityType.VERSIONE_PIATTAFORMA"E valore come"13.6"[Controlla la versione del tuo sistema operativo]
3. Devi passare la chiave come "nome del dispositivo" o "MobileCapabilityType.NOME DEL DISPOSITIVO"E valore come"iPhone 11 Pro Max"[Aggiorna il valore con il nome del tuo dispositivo]
4. Devi passare la chiave come "nomeautomazione" o "MobileCapabilityType.AUTOMATION_NAME"E valore come"XCUITest"[ uso XCUITest(iOS 9.3 e versioni successive) o UIAutomazione(iOS 9.3 e versioni precedenti)]
5. Devi passare la chiave come "udid" o "MobileCapabilityType.TU HAI FATTO"E valore come"3C4B567E-C4E4-445D-A613-F4867DD2FF67"[Aggiorna con il tuo ID dispositivo]
6. Fare riferimento all'immagine sottostante per i dettagli:

Come scrivere uno script di test Appium (Android)
- Per scrivere il tuo primo script di test Appium, inizialmente, dobbiamo ottenere l'ID dispositivo dei dispositivi Android o dell'emulatore collegati. Per ottenere l'ID del dispositivo, apri il terminale o il prompt dei comandi e digita "adb devices". Mostrerà l'elenco dei dispositivi.
- Dopodiché, dobbiamo creare una classe java. Per creare una classe java, vai alla cartella "/ src / main / java /" nel tuo IDE, fai clic destro su di essa e scegli new -> Java Class.
- Ora aggiungeremo un metodo di configurazione in Prima del test e crea un'istanza di AndroidDriver.
- Dobbiamo aggiungere le capacità desiderate mostrato sopra per impostare i parametri del dispositivo.
- Creeremo ora un file URL con i dettagli del mozzo dove il file Appium è in esecuzione.
- Ora chiameremo AndroidDriver costruttore e passare l'URL e le capacità desiderate per inizializzare il driver.
- Nel metodo Test, eseguiremo le azioni e affermeremo i risultati desiderati. Sapere come ispezionare l'elemento sull'iPhone, fare riferimento a questo collegamento. Per conoscere i metodi Appium, clicca qui.
- Abbiamo fornito un codice di esempio di seguito come riferimento. Per favore, esaminalo.
- Nel metodo AfterTest, chiuderemo il driver per chiudere la sessione corrente.
Come creare una classe Java per i test di Appium
Per creare una classe java, guarda l'immagine qui sotto:

Esempio di codice di test Appium in Android
import io.appium.java_client.MobileElement; import io.appium.java_client.android .AndroidDriver; import io.appium.java_client.remote .MobileCapabilityType; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote .DesiredCapabilities; import org.openqa.selenium.support .ui.ExpectedConditions; import org.openqa.selenium.support .ui.WebDriverWait; import org.testng.Assert; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; public class RunFirstTestAndroid { private AndroidDriver driver; @BeforeTest public void setup() throws MalformedURLException { DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); desiredCapabilities .setCapability ("platformName", "Android"); //desiredCapabilities // .setCapability(MobileCapabilityType // .PLATFORM_NAME, "Android"); desiredCapabilities .setCapability ("platformVersion", "23"); //desiredCapabilities // .setCapability(MobileCapabilityType // .PLATFORM_VERSION, "23"); desiredCapabilities .setCapability ("deviceName", "Nexus 5X"); //desiredCapabilities // .setCapability(MobileCapabilityType // .DEVICE_NAME, "Nexus 5X"); desiredCapabilities .setCapability ("automationName", "UIAutomator2"); desiredCapabilities .setCapability (MobileCapabilityType.UDID, "emulator-5554"); desiredCapabilities .setCapability ("udid", "emulator-5554"); desiredCapabilities .setCapability( "ensureWebviewsHavePages", true); desiredCapabilities .setCapability ("appPackage", "com.android.contacts"); //desiredCapabilities // .setCapability(MobileCapabilityType // .App, "com.android.contacts"); desiredCapabilities .setCapability ("appActivity", "com.android.contacts" + ".activities.PeopleActivity"); URL remoteUrl = new URL("http://127.0.0.1:4723/wd/hub"); driver = new AndroidDriver(remoteUrl, desiredCapabilities); driver.manage().timeouts() .implicitlyWait(20, TimeUnit.SECONDS); } @Test public void sampleTest() throws InterruptedException { //Adding new contact driver.findElementByAccessibilityId ("add new contact") .click(); //clicking on OK button WebElement element=driver .findElementById ("com.android.contacts" + ":id/right_button"); element.click(); //Updating the firstname driver.findElementByXPath( "/hierarchy/android.widget." + "FrameLayout/android.view" + ".ViewGroup/android.widget" + ".FrameLayout[2]/android" + ".widget.FrameLayout/android.widget" + ".ScrollView/android.widget" + ". LinearLayout/android.widget" + ".LinearLayout[2]/android.widget" + ".LinearLayout/android.widget" + ".LinearLayout/android.widget" + ".LinearLayout/" + "android.widget.EditText" ) .sendKeys("Ciao"); //aggiornamento del driver del numero di telefono .findElementByXPath("//android.widget" + ".EditText[@text='Phone']") .sendKeys("1234567890"); //aggiornamento del driver ID e-mail .findElementByXPath("//android.widget" + ".EditText[@text='Email']") .sendKeys("xyz@gmail.com"); //salva il driver del contatto .findElementById("com.android" + ".contacts" + ":id/menu_save") .click(); WebDriverWait wait=nuovo WebDriverWait(driver,30); WebElement el=driver .findElementByXPath("//android.view" + ".View[@content-desc=\"Hello\"]"); wait.until(ExpectedConditions .visibilityOfAllElements(el)); Assert.assertEquals(el .getAttribute("content-desc"),"Ciao"); Assert.assertEquals(driver .findElementByXPath("\t\n" + "//android.widget" + ".RelativeLayout[@content-desc=" + "\"Chiama Mobile 1 234-567-890\"]" + "/android.widget.TextView[1]") .getText(),"1 234-567-890"); Assert.assertEquals(driver.
Come scrivere uno script di test Appium su iPhone
- Per scrivere il tuo primo script di test Appium, inizialmente, dobbiamo ottenere l'ID del dispositivo dei dispositivi iPhone o del simulatore collegati. Per ottenere l'ID del dispositivo, apri il tipo di terminale "xcrun simctl list | egrep '(Avviato).' "Mostrerà l'elenco dei dispositivi. per favore fare riferimento a questo collegamento per ulteriori informazioni.
- Dopodiché, dobbiamo creare una classe java. Per creare una classe java, vai alla cartella "/ src / main / java /" nel tuo IDE, fai clic destro su di essa e scegli new -> Java Class.
- Ora aggiungeremo un metodo di configurazione in Prima del test e crea un'istanza di Driver IOS.
- Dobbiamo aggiungere le capacità desiderate mostrato sopra per impostare i parametri del dispositivo.
- Creeremo ora un file URL con i dettagli del mozzo dove il file Appium è in esecuzione.
- Ora chiameremo il driver IOSDriver costruttore e passare l'URL e le capacità desiderate per inizializzare il driver.
- Nel metodo Test, eseguiremo le azioni e affermeremo i risultati desiderati. Sapere come ispezionare l'elemento sull'iPhone, fare riferimento a questo collegamento. Per conoscere i metodi Appium, clicca qui.
- Abbiamo fornito un codice di esempio di seguito come riferimento. Per favore, esaminalo.
- Nel metodo AfterTest, chiuderemo il driver per chiudere la sessione corrente.
Esempio di codice di test Appium per iPhone
import io.appium.java_client.MobileElement; importa io.appium.java_client.ios.IOSDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote .DesiredCapabilities; import org.openqa.selenium.support .ui.ExpectedConditions; import org.openqa.selenium.support .ui.WebDriverWait; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.net.MalformedURLException; importare java.net.URL; importare java.util.concurrent.TimeUnit; classe pubblica RunFirstiOSTest { driver IOSDriver privato; @BeforeClass DesiredCapabilities desireCapabilities = new DesiredCapabilities(); desireCapabilities .setCapability("platformName", "iOS"); desireCapabilities .setCapability("platformVersion", "13.6"); desireCapabilities .setCapability("deviceName", "iPhone 11 Pro Max"); desireCapabilities .setCapability("AutomationName", "XCUITest"); desireCapabilities .setCapability("udid", "3C4B567E-C4E4-445D-A613-F4867DD2FF67"); URL remoteUrl = nuovo URL("http://127.0.0.1:4723/wd/hub"); driver = new IOSDriver(remoteUrl, desireCapabilities); driver.manage().timeouts() .implicitlyWait(20, TimeUnit.SECONDS); } @Test public void sampleTest() { // Fare clic sull'app di contatto MobileElement el1 = (MobileElement) driver .findElementByAccessibilityId ("Contatti"); el1.click(); //Cliccando su Aggiungi contatto MobileElement el2 = (MobileElement) driver .findElementByAccessibilityId ("Aggiungi"); el2.click(); //Invio del valore al nome MobileElement el3 = (MobileElement) driver .findElementByAccessibilityId ("Nome"); el3.sendKeys("Nome1"); //Invio del valore al Cognome driver.findElementByAccessibilityId ("Cognome") .sendKeys("Cognome"); //Invio del valore al driver dell'azienda .findElementByAccessibilityId ("Azienda") .sendKeys("xyz"); //Facendo clic sul driver principale .findElementByXPath ("//XCUIElementTypeCell[@name=\"add phone\"]") .click(); //Esempio di attesa esplicita.
testNG Asserzione
Nel codice precedente, abbiamo utilizzato testNG Assert per verificare i dati previsti con i dati effettivi che stiamo ottenendo dagli elementi utilizzando i metodi getText () o getAttributes. Assert ci aiuta a far passare il test case se le condizioni soddisfano; in caso contrario, fallisce il test case.
Conclusione
Fino ad ora, abbiamo coperto come scrivere i tuoi primi script di test Appium in Android e iOS, come usare le capacità desiderate, come creare un progetto esperto. Nella prossima sessione discuteremo Domande e risposte sui test Appium. Per un tutorial completo su Appium, puoi clicca qui.