Die Verwendung der folgenden Testframeworks und Testtools wurde evaluiert und geprüft. Weitere gängige Frameworks und Testtools sind in Evaluierung. Bei Fragen zur Verwendung Ihrer favorisierten Testtools
Für den Test einer Jetpack Compose App mit Appium muss der entsprechende Espresso Treiber verwendet werden.
Folgende Beschreibung zeigt Ihnen das Vorgehen:
import io.appium.java_client.AppiumBy;
import io.appium.java_client.android.AndroidDriver;
import org.junit.*;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
public class EspressoTest {
private final String CLOUD_ACCESS_KEY = "<ACCESS_KEY>";
private final String APP_PATH = "cloud:<APP_BUNDLE_ID>";
private final String ESPRESSO_SERVER= "<ESPRESSO_SERVER_UNIQUE_NAME>";
protected AndroidDriver driver = null;
private final DesiredCapabilities dc = new DesiredCapabilities();
@Before
public void setUp() throws MalformedURLException {
dc.setCapability("accessKey", CLOUD_ACCESS_KEY);
dc.setCapability("app", APP_PATH);
dc.setCapability("espressoServerUniqueName", ESPRESSO_SERVER);
dc.setCapability("platformName", "Android");
dc.setCapability("automationName", "Espresso");
dc.setCapability("deviceQuery", "@os='android' and @category='PHONE'");
dc.setCapability("testName", "Quick Start Espresso Demo");
dc.setCapability("appium:appiumVersion", "2.0.0.beta.23");
driver = new AndroidDriver(new URL("https://mobiledevicecloud.t-systems-mms.eu/wd/hub"), dc);
driver.setSetting("driver", "compose");
}
@Test
public void quickStartEspressoDemo() {
WebElement text = driver.findElement(AppiumBy.tagName("myTextTag"));
Assert.assertEquals("Hello Espresso!", text.getText());
driver.findElement(AppiumBy.tagName("myButtonTag")).click();
driver.findElement(AppiumBy.tagName("myInputTag")).sendKeys("Mobile Device Cloud");
driver.hideKeyboard();
driver.findElement(AppiumBy.tagName("myInputButtonTag")).click();
WebElement keywords = driver.findElement(AppiumBy.tagName("myKeywordsTag"));
Assert.assertEquals("Mobile Device Cloud", keywords.getText());
}
@After
public void tearDown() {
System.out.println("Report URL: "+ driver.getCapabilities().getCapability("reportUrl"));
driver.quit();
}
}
1.
2.
3.
4.
5.
6.
Laden Sie unser
Neben Ihrer zu testenden App wird für Espresso Tests zusätzlich eine Server App benötigt. Diese wird automatisch vom Espresso-Treiber für Appium gebaut. Dafür müssen Sie einen lokalen Appium-Server installieren. Laden Sie sich
Anschließend installieren Sie Appium 2 und den Espresso-Treiber im Terminal über die folgenden Befehle:
npm install -g appium@next
appium driver install espresso
Starten Sie nun den Appium-Server mit dem Kommando:
appium
Es sollten nun die Meldungen erscheinen, dass:
Öffnen Sie die EspressoSetup.java Datei. In dieser Datei sind zwei Platzhalter, die Sie füllen müssen:
<LOCAL_APPIUM_SERVER>: Die URL zur REST-Schnittstelle Ihres lokalen Appium-Servers. Diese wird beim starten des Servers im Terminal angezeigt. (z.B. http://0.0.0.0:4723)
<APK_PATH>: Der Pfad zur APK-Datei Ihrer App, die Sie vorher mit Android Studio generiert haben. (Build → Build APK)
Fahren Sie einen Emulator in Android Studio hoch oder verbinden Sie ein echtes Android Gerät mit Ihrem Computer.
Starten Sie die EspressoSetup.java Datei entweder im Run oder im Debug Modus. Das Setup ist abgeschlossen, wenn die Tests erfolgreich durchgelaufen sind.
Während des Setups werden einige Informationen im Terminal des Appium Servers ausgegeben. Darunter auch die Zeile:
"Installing Espresso Test Server apk from the target device ..." mit einem Pfad zur Espresso-Server-APK. Kopieren Sie diese APK zusammen mit der APK Ihrer App in einen gemeinsamen Order, um Sie später wiederzufinden.
HINWEIS: Der Espresso-Server hängt stark von Ihrer App ab. Deswegen muss er immer mithilfe des Setups neu gebaut werden, wenn sich Abhängigkeiten in Ihrer App ändern.
Laden Sie Ihre App und den Espresso-Server hoch in die Mobile Device Cloud.
Vergeben Sie dem Espresso-Server einen Unique Name.
Füllen Sie die Platzhalter in der Datei MdcEspressoTest.java mit Ihren Daten.
Starten Sie die Tests im Run oder Debug Modus. Diese werden nun in der Mobile Device Cloud ausgeführt.
Anhand der Beispiele können Sie eigene Tests implementieren!