Recherche…


Syntaxe

  • Instrumentation getInstrumentation ()
  • UIDevice UiDevice.getInstance (Instrumentation d'instrumentation)
  • booléen UIDevice.pressHome ()
  • booléen UIDevice.pressBack ()
  • booléen UIDevice.pressRecentApps ()
  • annuler UIDevice.wakeUp ()
  • booléen UIDevice.swipe (int startX, int startY, int endX, int endY, int étapes)
  • booléen UIDevice.drag (int startX, int startY, int endX, int endY, int étapes)
  • UIObject2 UIDevice.findObject (By.desc (String contentDesc))
  • booléen UIObject2.click ()

Remarques

UIAutomator est particulièrement utile pour tester les user stories. Vous rencontrez des problèmes si les éléments de vue ne possèdent ni un identifiant de ressource unique ni un contenu-desc . Dans la plupart des cas, il existe un moyen de terminer le test de toute façon, ce qui prend beaucoup de temps. Si vous pouvez influencer le code de votre application, UIAutomator peut être votre outil de test.

Préparez votre projet et écrivez le premier test UIAutomator

Ajoutez les bibliothèques requises dans la section dépendances du build.gradle de votre module Android:

android {
...
  defaultConfig {
    ...
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  }
}

dependencies {
  ...
  androidTestCompile 'com.android.support.test:runner:0.5'
  androidTestCompile 'com.android.support.test:rules:0.5'
  androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
  androidTestCompile 'com.android.support:support-annotations:23.4.0'
}

⚠ Notez bien entendu que les versions peuvent différer dans le même temps.

Après cette synchronisation avec les modifications.

Ajoutez ensuite une nouvelle classe Java dans le dossier androidTest:

public class InterAppTest extends InstrumentationTestCase {

  private UiDevice device;

  @Override
  public void setUp() throws Exception {
     device = UiDevice.getInstance(getInstrumentation());
  }

  public void testPressHome() throws Exception {
    device.pressHome();
  }
}

En faisant un clic droit sur l'onglet de la classe et sur "Exécuter" InterAppTest "exécute ce test.

Rédiger des tests plus complexes à l'aide de UIAutomatorViewer

Pour permettre l'écriture de tests d'interface utilisateur plus complexes, UIAutomatorViewer est nécessaire. L'outil situé dans / tools / fait une capture d'écran en plein écran incluant les dispositions des vues actuellement affichées. Voir la photo suivante pour avoir une idée de ce qui est montré:

entrer la description de l'image ici

Pour les tests de l'interface utilisateur, nous recherchons un identifiant de ressource , un contenu-desc ou quelque chose d'autre pour identifier une vue et l'utiliser dans nos tests.

Le uiautomatorviewer est exécuté via le terminal.

Si, par exemple, nous voulons maintenant cliquer sur le bouton des applications, puis ouvrir une application et la balayer, voici à quoi la méthode de test peut ressembler:

public void testOpenMyApp() throws Exception {
    // wake up your device
    device.wakeUp();

    // switch to launcher (hide the previous application, if some is opened)
    device.pressHome();

    // enter applications menu (timeout=200ms)
    device.wait(Until.hasObject(By.desc(("Apps"))), 200);
    UiObject2 appsButton = device.findObject(By.desc(("Apps")));
    assertNotNull(appsButton);
    appsButton.click();

    // enter some application (timeout=200ms)
    device.wait(Until.hasObject(By.desc(("MyApplication"))), 200);
    UiObject2 someAppIcon = device.findObject(By.desc(("MyApplication")));
    assertNotNull(someAppIcon);
    someAppIcon.click();

    // do a swipe (steps=20 is 0.1 sec.)
    device.swipe(200, 1200, 1300, 1200, 20);
    assertTrue(isSomeConditionTrue)
}

Création d'une suite de tests de tests UIAutomator

La combinaison des tests UIAutomator à une suite de tests est rapide:

package de.androidtest.myapplication;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({InterAppTest1.class, InterAppTest2.class})
public class AppTestSuite {}

Exécuter un test similaire à un seul test en cliquant à droite et exécutez la suite.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow