Test mobile - Framework Selendroid

Selendroid est un framework d'automatisation de test pour tester les applications natives et hybrides Android. Les tests Selendroid sont écrits à l'aide de l'API client Selenium Webdriver.

Avantages de Selendroid

  • Entièrement compatible avec JSON Wire Protocol / Selenium 3 Ready.

  • Aucune modification de l'application sous test requise pour l'automatiser.

  • Test du Web mobile à l'aide de l'application de visualisation Web du pilote Android intégrée.

  • Même concept pour automatiser les applications natives ou hybrides.

  • Les éléments de l'interface utilisateur peuvent être trouvés par différents types de localisateurs.

  • Les gestes sont pris en charge: API Advanced User Interactions.

  • Les émulateurs existants sont démarrés automatiquement.

  • Selendroid prend en charge le branchement à chaud des périphériques matériels.

  • Intégration complète en tant que nœud dans Selenium Grid pour la mise à l'échelle et les tests parallèles.

  • Prise en charge de plusieurs API cibles Android (10 à 19).

  • Inspecteur intégré pour simplifier le développement de cas de test.

  • Selendroid peut être étendu au moment de l'exécution avec vos propres extensions.

  • Selendroid peut interagir avec plusieurs appareils Android (émulateurs ou appareils matériels) en même temps.

Inconvénients de Selendroid

L'inconvénient de cet outil est qu'il est assez lent et sur certaines machines avec moins de 4 Go de RAM, il est inutilisable.

Comment utiliser Selendroid

Step 1- Les prérequis pour utiliser Robotium sont Java SDK (minimum 1.6). Si Java n'est pas installé sur votre système, suivez les étapes ci-dessous.

  • Téléchargez JDK et JRE à partir d' Oracle JavaSE

  • Acceptez le Contrat de License.

  • Installez JDK et JRE.

  • Définissez la variable d'environnement comme indiqué dans la capture d'écran ci-dessous.

Step 2- Téléchargez Android Studio à partir du SDK Android (cela prendra du temps en raison de la taille du fichier).

  • Double-cliquez sur l'exe et exécutez le programme d'installation.
  • Continuez avec toutes les options par défaut.
  • Définissez ANDROID_HOME.

Step 3- Téléchargez les fichiers jar Selenium et l'application de test à partir de Selendroid

  • Téléchargez le fichier jar de sélénium et testez l'application.
  • Placez-le dans n'importe quel dossier, à savoir D: \ SelendroidJars.

Step 4 - Appareil physique avec câble USB.

  • Assurez-vous que l'appareil est connecté à la station de travail avec un câble USB.

  • Assurez-vous que le mode de débogage USB (sous Paramètres → Options du développeur) est activé.

Tester une application avec Selendroid

Pour tester une application à l'aide de Selendroid, suivez les étapes ci-dessous -

Step 1 - Installez Eclipse.

Step 2 - Créez un projet Java.

Step 3 - Ajoutez le fichier jar Selendroid téléchargé au projet nouvellement créé.

Step 4 - Ajoutez les fichiers jar Selenium téléchargés au projet nouvellement créé.

Step 5 - Configurer testNG dans Eclipse.

Step 6- Connectez les appareils mobiles au système à l'aide d'un câble USB. Définissez le mode de débogage USB à partir des options du développeur sous Paramètres.

Step 7- Exécutez le serveur Selendroid. Ouvrez l'invite de commande et écrivez le code suivant et appuyez sur Entrée -

java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk

Selendroid-standalone démarrera un serveur http sur le port 4444 et analysera tous les appareils virtuels Android (avd) que l'utilisateur a créés (~ / .android / avd /).

Ouvrez le navigateur Web et accédez à: http://localhost:4444/wd/hub/status.

Step 8- Créer un projet Java; ajoutez les bibliothèques Selendroid Standalone, les jars Selenium et les bibliothèques JUnit dans le chemin de construction.

Step 9 - Créer un package sous le projet Java.

Step 10 - Créez une classe sous le package et écrivez le code suivant.

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 - Exécutez la classe avec la configuration d'exécution de testNG.