Testowanie mobilne - Selendroid Framework
Selendroid to platforma automatyzacji testów do testowania natywnych i hybrydowych aplikacji systemu Android. Testy Selendroid są pisane przy użyciu klienta API Selenium Webdriver.
Korzyści z Selendroid
W pełni kompatybilny z protokołem JSON Wire / Selenium 3 Ready.
Nie jest wymagana modyfikacja testowanej aplikacji w celu jej zautomatyzowania.
Testowanie sieci mobilnej za pomocą wbudowanej aplikacji webview dla sterowników na Androida.
Ta sama koncepcja automatyzacji aplikacji natywnych lub hybrydowych.
Elementy interfejsu użytkownika można znaleźć za pomocą różnych typów lokalizatorów.
Obsługiwane są gesty: Advanced User Interactions API.
Istniejące emulatory są uruchamiane automatycznie.
Selendroid obsługuje podłączanie urządzeń sprzętowych na gorąco.
Pełna integracja jako węzeł w Selenium Grid w celu skalowania i równoległego testowania.
Obsługa wielu docelowych interfejsów API systemu Android (od 10 do 19).
Wbudowany Inspector w celu uproszczenia tworzenia przypadków testowych.
Selendroid można rozszerzyć w czasie wykonywania za pomocą własnych rozszerzeń.
Selendroid może współdziałać z wieloma urządzeniami z Androidem (emulatorami lub urządzeniami sprzętowymi) w tym samym czasie.
Wady Selendroid
Wadą tego narzędzia jest to, że jest dość powolne i na niektórych komputerach z mniej niż 4 GB pamięci RAM jest bezużyteczne.
Jak korzystać z Selendroid
Step 1- Warunkiem korzystania z oprogramowania Robotium jest Java SDK (minimum 1,6). Jeśli nie masz zainstalowanej Javy w swoim systemie, wykonaj czynności podane poniżej.
Pobierz JDK i JRE z Oracle JavaSE
Zaakceptuj umowę licencyjną.
Zainstaluj JDK i JRE.
Ustaw zmienną środowiskową, jak pokazano na zrzucie ekranu poniżej.
Step 2- Pobierz Android Studio z SDK Android (zajmie to trochę czasu ze względu na rozmiar pliku).
- Kliknij dwukrotnie plik exe i uruchom instalator.
- Kontynuuj ze wszystkimi domyślnymi opcjami.
- Ustaw ANDROID_HOME.
Step 3- Pobierz pliki jar Selenium i aplikację testową z Selendroid
- Pobierz plik słoika selenu i aplikację testową.
- Umieść go w dowolnym folderze, np. D: \ SelendroidJars.
Step 4 - Urządzenie fizyczne z kablem USB.
Upewnij się, że urządzenie jest podłączone do stacji roboczej za pomocą kabla USB.
Upewnij się, że tryb debugowania USB (w ustawieniach → Opcje programisty) jest włączony.
Przetestuj aplikację za pomocą Selendroid
Aby przetestować aplikację za pomocą Selendroid, wykonaj kroki podane poniżej -
Step 1 - Zainstaluj Eclipse.
Step 2 - Utwórz projekt Java.
Step 3 - Dodaj pobrany plik jar Selendroid do nowo utworzonego projektu.
Step 4 - Dodaj pobrane pliki jar Selenium do nowo utworzonego projektu.
Step 5 - Skonfiguruj testNG w Eclipse.
Step 6- Połącz urządzenia mobilne z systemem za pomocą kabla USB. Ustaw tryb debugowania USB w opcjach programisty w ustawieniach.
Step 7- Uruchom serwer Selendroid. Otwórz wiersz polecenia i napisz następujący kod i naciśnij Enter -
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Autonomiczny Selendroid uruchomi serwer http na porcie 4444 i przeskanuje wszystkie urządzenia wirtualne z Androidem (avd), które utworzył użytkownik (~ / .android / avd /).
Otwórz przeglądarkę internetową i przejdź do: http://localhost:4444/wd/hub/status.
Step 8- Utwórz projekt Java; dodaj biblioteki Selendroid Standalone, Selenium Jars i JUnit do ścieżki kompilacji.
Step 9 - Utwórz pakiet w ramach projektu Java.
Step 10 - Utwórz klasę pod pakietem i napisz następujący kod.
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 - Uruchom klasę z konfiguracją uruchamiania testNG.