Test mobile - Selendroid Framework
Selendroid è un framework di automazione dei test per testare applicazioni Android native e ibride. I test Selendroid vengono scritti utilizzando l'API client Selenium Webdriver.
Vantaggi di Selendroid
Pienamente compatibile con JSON Wire Protocol / Selenium 3 Ready.
Nessuna modifica dell'app in prova richiesta per automatizzarla.
Test del Web mobile utilizzando l'app Webview del driver Android integrata.
Stesso concetto per l'automazione di app native o ibride.
Gli elementi dell'interfaccia utente possono essere trovati da diversi tipi di localizzatore.
Sono supportati i gesti: API Advanced User Interactions.
Gli emulatori esistenti vengono avviati automaticamente.
Selendroid supporta il collegamento a caldo dei dispositivi hardware.
Integrazione completa come nodo in Selenium Grid per scalabilità e test paralleli.
Supporto per più API di destinazione Android (da 10 a 19).
Inspector integrato per semplificare lo sviluppo del test case.
Selendroid può essere esteso in fase di esecuzione con le proprie estensioni.
Selendroid può interagire con più dispositivi Android (emulatori o dispositivi hardware) contemporaneamente.
Inconvenienti di Selendroid
Lo svantaggio di questo strumento è che è piuttosto lento e su alcune macchine con meno di 4 GB di RAM è inutilizzabile.
Come usare Selendroid
Step 1- I prerequisiti per utilizzare Robotium è Java SDK (minimo 1.6). Se non hai Java installato sul tuo sistema, segui i passaggi indicati di seguito.
Scarica JDK e JRE da Oracle JavaSE
Accetta il contratto di licenza.
Installa JDK e JRE.
Imposta la variabile d'ambiente come mostrato nello screenshot qui sotto.
Step 2- Scarica Android Studio dall'SDK Android (ci vorrà del tempo a causa delle dimensioni del file).
- Fare doppio clic sull'exe ed eseguire il programma di installazione.
- Continua con tutte le opzioni predefinite.
- Imposta ANDROID_HOME.
Step 3- Scarica i file jar selenio e prova l'applicazione da Selendroid
- Scarica il file jar selenio e prova l'app.
- Inseriscilo in una cartella qualsiasi, ad esempio D: \ SelendroidJars.
Step 4 - Dispositivo fisico con cavo USB.
Assicurati che il dispositivo sia collegato alla workstation con un cavo USB.
Assicurati che la modalità di debug USB (in impostazioni → Opzioni sviluppatore) sia abilitata.
Prova un'app con Selendroid
Per testare un'app utilizzando Selendroid, segui i passaggi indicati di seguito:
Step 1 - Installa Eclipse.
Step 2 - Crea un progetto Java.
Step 3 - Aggiungi il file jar Selendroid scaricato al progetto appena creato.
Step 4 - Aggiungi i file jar Selenium scaricati al progetto appena creato.
Step 5 - Configurare testNG in Eclipse.
Step 6- Collegare i dispositivi mobili al sistema tramite cavo USB. Imposta la modalità di debug USB dalle opzioni dello sviluppatore nelle impostazioni.
Step 7- Esegui il server Selendroid. Apri il prompt dei comandi e scrivi il seguente codice e premi Invio -
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Selendroid-standalone avvierà un server http sulla porta 4444 e scansionerà tutti i dispositivi virtuali Android (avd) che l'utente ha creato (~ / .android / avd /).
Apri il browser web e vai a: http://localhost:4444/wd/hub/status.
Step 8- Crea un progetto Java; aggiungere le librerie Selendroid Standalone, i vasi Selenium e le librerie JUnit nel percorso di compilazione.
Step 9 - Crea pacchetto nel progetto Java.
Step 10 - Crea una classe sotto il pacchetto e scrivi il codice seguente.
package selTest;
import io.selendroid.SelendroidDriver;
import io.selendroid.common.SelendroidCapabilities;
import io.selendroid.standalone.SelendroidConfiguration;
import io.selendroid.standalone.SelendroidLauncher;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
public class SelendroidTest {
private WebDriver driver ;
@BeforeSuite
public void setUp() throws Exception {
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("selendroid-test-app-0.9.0.apk");
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
SelendroidCapabilities caps = new
SelendroidCapabilities("io.selendroid.testapp:0.9.0");
driver = new SelendroidDriver(caps);
}
@Test
public void selendroidTest() throws Exception {
WebElement inputField = driver.findElement(By.id("my_text_field"));
Assert.assertEquals("true", inputField.getAttribute("enabled"));
inputField.sendKeys("Selendroid");
Assert.assertEquals("Selendroid", inputField.getText());
WebElement button = driver.findElement(By.id("buttonTest"));
button.click();
button = driver.findElement(By.id("button2"));
button.click();
Thread.sleep(5000);
button = driver.findElement(By.id("startUserRegistration"));
button.click();
Thread.sleep(10000);
WebElement element = driver.findElement(By.id("label_username"));
String text = element.getText();
System.out.println(text);
element = driver.findElement(By.id("inputUsername"));
element.sendKeys("bob");
element = driver.findElement(By.id("inputEmail"));
element.sendKeys("[email protected]");
element = driver.findElement(By.id("inputPassword"));
element.clear();
element.sendKeys("test1233");
element = driver.findElement(By.id("inputName"));
element.clear();
element.sendKeys("My Name ");
element = driver.findElement(By.id("input_preferedProgrammingLanguage"));
element.click();
element = driver.findElement(By.id("text1"));
element.click();
element = driver.findElement(By.id("input_adds"));
element.click();
element = driver.findElement(By.id("btnRegisterUser"));
element.click();
element = driver.findElement(By.id("buttonRegisterUser"));
element.click();
}
@AfterSuite
public void tearDown(){
driver.quit();
}
}
Step 11 - Esegui la classe con testNG run configuration.