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.