|
|
|
# Tests sous Android
|
|
|
|
|
|
|
|
## Mise en place de l'environnement
|
|
|
|
(inspiré partiellement de [Android Driver @ Selenium HQ](http://code.google.com/p/selenium/wiki/AndroidDriver#Setup_the_Emulator))
|
|
|
|
|
|
|
|
- Télécharger [selenium android server](http://code.google.com/p/selenium/downloads/detail?name=android-server-2.32.0.apk&can=2&q=)
|
|
|
|
|
|
|
|
- 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 avec ```android 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](https://github.com/selendroid/selendroid/releases/) 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](http://code.google.com/p/selenium/downloads/detail?name=selenium-java-2.37.0.zip&can=2&q=)
|
|
|
|
|
|
|
|
- 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 |
|
|
\ No newline at end of file |