Tests sous Android
Mise en place de l'environnement
(inspiré partiellement de Android Driver @ Selenium HQ)
-
Télécharger selenium android server
-
Démarrer l'émulateur (si vous ne savez pas comment faire vous pouvez essayer ainsi ... )
android create avd -n my_android -t 12 -c 100M
où : - -t indique la plateforme (la liste complète est disponible avecandroid list targets
- -c indique la taille de la sdcard -
Installer le apk sur votre émulateur
adb -s <serialId> -e install -r android-server-2.32.0.apk
-
Exécuter l'application soit depuis votre émulateur, soit directement depuis la ligne de commande
adb -s <serialId> shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity
-
Réaliser le tunnel entre les appels qui se feront pour les tests sur la machine locale et l'émulateur
adb -s <serialId> forward tcp:8080 tcp:8080
Mise en place avec Selendroid
(inspiré partiellement de [http://selendroid.io/])
- Télécharger Selendroid android server ou intégrer les déclaration suivantes dans votre projet maven
<dependency>
<groupId>io.selendroid</groupId>
<version>0.17.0</version>
<artifactId>selendroid-standalone</artifactId>
</dependency>
<dependency>
<groupId>io.selendroid</groupId>
<version>0.17.0</version>
<artifactId>selendroid-client</artifactId>
</dependency>
- Démarrer le serveur selendroid relayant vos commandes aux avds enregistrés dans votre profil.
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
- Vous pouvez consulter la liste des avds enregistrés en accédant à [http://localhost:4444/wd/hub/status]
- Selon les SelendroidCapabilities, Selendroid permet d'effectuer des tests navigateur (browserName - défini) ou tests d'application (aut - défini).
Adapter les tests écrits pour Firefox
- Reprenez le projet avec les tests écrits pour Firefox et remplacez le WebDriver par
WebDriver driver = new AndroidDriver();
/* ou si vous utilisez Selendroid...
SelendroidCapabilities capa = new SelendroidCapabilities("io.selendroid.testapp:0.17.0");
WebDriver driver = new SelendroidDriver(capa);
*/
- Exécuter les tests, en vous assurant que l'application WebDriver tournent sur l'émulateur et que le tunnel a bien été créé
Ecriture des nouveaux tests
- En partant de l'exemple ci-dessous construisez un projet Java ne contenant que des classes de tests
import junit.framework.TestCase;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.android.AndroidDriver;
public class OneTest extends TestCase {
public void testGoogle() throws Exception {
WebDriver driver = new AndroidDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("M2ESERV");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
-
Ajouter à Library le JUnit3.8 et Selenium Java Bindings
-
Exécutez le test case
-
Ecrivez d'autres test cases sur votre propre application Android, ou bien, sur Treasure Hunt, mis à disposition dans le module Web A