Selendroid Návod pro začátečníky s příkladem
Vyvinuli jste někdy Android aplikaci a publikovat ji na Google Play? Co uděláte, když dostanete uživatelskou recenzi jako –
Když publikujete aplikaci na Google Play, musí být dobře otestována, abyste se vyhnuli potenciálním chybám. Existuje spousta testovacích scénářů, které by měly být provedeny před publikováním aplikace. Chcete-li uložit Testování úsilí, potřebujete testovací nástroj. Jeden z nejlepších testovacích nástrojů pro Android aplikace je Selendroid.
Co je to Selendroid?
Selendroid je testovací automatizační framework pro více typů mobilních aplikací: domácí si hybrid Android aplikace a mobilní web.
Testy můžete psát pomocí Selenium 2 klientská API. Protože Selendroid stále znovu využívá stávající Selenium infrastrukturu pro web
Selendroid je výkonný testovací nástroj. Dá se použít na emulátory a skutečné zařízení
Proč potřebujeme Selendroid?
Selendroid je skvělý testovací nástroj. Ale stále můžete pochybovat o jeho užitečnosti.
Tato část představí důležité funkce Selendroid odpovědět na otázku, proč potřebujete Selendroid.
- Testovanou aplikaci můžete otestovat pomocí Selendroid bez jakékoli úpravy aplikace. Potřebujete pouze binární soubor (APK) nainstalovaný v počítači. Aby bylo možné nainstalovat binární soubor do zařízení, testovací aplikace a mobilní aplikace musí být podepsány stejným podpisovým klíčem
- Selendroid testovací aplikace může komunikovat s více zařízeními nebo simulátory současně. Je to velká výhoda Selendroid. Svou aplikaci tak můžete otestovat různými způsoby Android zařízení pro kontrolu kompatibility.
- Selendroid může simulovat akce lidského uživatele v aplikaci, jako je dotyk, přejetí, přetažení na zařízení
- Během testování můžete změnit hardwarová zařízení (zapojit a odpojit), aniž byste test restartovali nebo zastavili. Selendroid automaticky rozpozná nová zařízení
- Odpovídající Android verze API vyšší, Selendroid podporuje také nové Android API (Od API 10 do API 19)
- Selendroid má také vestavěný nástroj inspektor, který vám pomůže identifikovat prvek uživatelského rozhraní testované aplikace. Například tlačítko ID, textové pole, textové zobrazení…
Selendroid Architecture
Selendroid je založen na Android přístrojový rámec. Selendroid testy jsou psány na základě Selenium Klientské API webového ovladače, takže podporuje plnou integraci s proudem Selenium rámce.
Následující obrázek popisuje architekturu Selendroid
Selendroid obsahuje 4 hlavní složky:
- Klient webového ovladače – The Java klientská knihovna založená na Selenium. Tato knihovna by měla být nainstalována na počítači (který se používá k vývoji testovacích případů)
- Selendroid-Server – Server, který běží v testované aplikaci Android zařízení nebo simulátoru. Toto jsou hlavní součásti a Selendroid architektura
- Android Driver-App – vestavěná Android ovladač, aplikace Web View pro testování mobilního webu.
- Selendroid-Samostatný – Tato součást se používá k instalaci Selendroid server a testovaná aplikace (AUT)
Začínáme s Selendroid
Už jste poznali důležitost Selendroid. Teď si ušpiníme ruce Selendroid.
Před prvním testem je třeba provést 3 kroky Selendroid
Nastavení a Selendroid životní prostředí
Selendroid umí pracovat na Windows, Linux a Mac OS. V tomto tutoriálu nastavíme Selendroid v OS Windows.
Před použitím Selendroid, musíte nejprve nainstalovat následující balíček
- Java SDK (minimálně 1.6)
Musíte přijmout licenční smlouvu a stáhnout si instalátor java (vyberte základ x64 nebo x86 na vašem operačním systému)
Stáhněte a nainstalujte Java SDK jako normální software
- Nejnovější verze Android SDK
- Váš počítač musí mít alespoň jeden Android Virtuální zařízení (AVD), nebo skutečné Android zařízení připojené k PC.
- Selendroid Samostatný se závislostmi, Selendroid Klient, a Selenium Klient
- Eclipse software
- Nastavte JAVA_HOME a ANDROID_HOME
Krok 1) V okně klepněte pravým tlačítkem myši na Počítač -> Nemovitosti -> Pokročilé nastavení systému
Krok 2) Zobrazí se okno Vlastnosti systému, vyberte kartu Upřesnit -> Proměnné prostředí
Krok 3) V okně Prostředí klikněte na Nový -> Zadejte proměnnou ANDROID_HOME následovně
Hodnota proměnné je cesta k android-sdks, které jste již nainstalovali.
Najděte systémovou proměnnou Path -> Změnit -> Přidejte následující řádek za aktuální řádek
Podobně jako u ANDROID_HOME přidejte novou proměnnou JAVA_HOME s hodnotou uvedenou níže
Hodnota je Cesta k vašemu Java Instalace JDK
Krok 4) Restartujte počítač -> Hotovo
Jak spustit Selendroid
Krok 1) Testování aplikace
Můžete použít stávající Selendroid testovací aplikaci, abyste zjistili, jak Selendroid funguje (Odkaz na ukázku testované aplikace)
Po dokončení stahování zkopírujte tento soubor APK a výše uvedené Selendroid Samostatná nádoba soubor do složky s názvem „Guru99″
Krok 2) Spusťte Selendroid
Otevřete terminál Windows & přejděte do složky Guru99 vytvořené v kroku 1.
Spusťte následující příkaz
Výstup se zobrazí následovně
Po spuštění tohoto příkazu Selendroid-Spustí se samostatný HTTP server! Výchozí číslo portu tohoto serveru je 4444. Všechna hardwarová zařízení a také Android Virtuální zařízení, bude skenováno a rozpoznáno automaticky. Selendroid bude identifikovat Android cílová verze a velikost obrazovky zařízení.
Chcete-li zkontrolovat Android cílovou verzi a také informace o zařízení, můžete v prohlížeči spustit následující URL: http://localhost:4444/wd/hub/status
.
Selendroid základní příkaz
Tato část vám představí některé základní Selendroid- Samostatný příkazový řádek. Můžete je použít k nastavení Selendroid testovací prostředí
- Nastavení portu Selendroid
Výchozí port Selendroid je 4444. Můžete však přejít na jiný port přidáním parametru do příkazu ke spuštění Selendroid
Parametr: -port [číslo portu]
Například:
Ve výše uvedeném příkazu je 5555 nový port.
Takže URL ke kontrole Android cílová verze se změní na: http://localhost:5555/wd/hub/status
- Zadejte umístění testované aplikace (binární soubor APK). Selendroid často vyžadoval absolutní cestu k tomuto souboru
Parametr: -app [cesta k souboru]
Například:
Ve výše uvedeném příkazu, Selendroid automaticky najděte binární souborovou základnu na „C:\Guru99App.apk“, abyste získali informace o testované aplikaci.
Zkontrolujte adresu URL
http://localhost:4444/wd/hub/status
, uvidíte tyto informace - Změňte port Selendroid používá ke komunikaci s instrumentačním serverem. Selendroid používá port 8080 jako výchozí
Parametr: -selendroidServerPort [číslo portu]
Příklad
Port je nyní změněn na 9000
- Změňte časový limit pro spuštění emulátorů. Jednotkou jsou milisekundy.
Parametr: -timeoutEmulatorStart
Ve výchozím nastavení Selendroid počká 300,000 200,000 milisekund, než se emulátor spustí. Můžete změnit na nový časový limit (XNUMX XNUMX ms) příkazem
Po této době vypršela naše platnost, pokud nelze emulátor spustit, Selendroid vyvolá chybu výjimky (Při hledání zařízení/emulátorů došlo k chybě.) a poté se zastaví
- Když spustíte Selendroid příkaz na terminálu, uvidíte na obrazovce vytištěný protokol. Typ protokolu, který vidíte, můžete změnit přidáním následujícího parametru
Parametr: -logLevel [typ logu]
Hodnoty úrovně protokolu jsou ERROR, WARNING, INFO, DEBUG a VERBOSE. Výchozí: ERROR.
Například nastavit Selendroid chcete-li vytisknout pouze protokol WARNING, můžete použít tento příkaz
Jedno Selendroid vytiskněte pouze protokol VAROVÁNÍ
Začněte svůj první test s Selendroid
Tato část je krok za krokem průvodce vytvořením vašeho prvního testovacího skriptu pomocí Selendroid
Předpokládejme, že máme Android aplikace pod testovacím názvem Guru99App. Aplikace obsahuje textové pole a název tlačítka „Zobrazit text“.
Musíme provést následující Testovací případ použitím Selendroid
testovacích případů | Stav | Očekávaný výstup |
---|---|---|
|
K dispozici je binární soubor testované aplikace
Zařízení je připojeno k PC |
Text „Text Zobrazit zde“ se změní na text
který uživatel zadá do textového pole |
Krok 1) Vytvořit Java projekt v Eclipse
Krok 2) Přidejte selen a Selendroid jar soubor v prostředích Eclipse
Klepněte pravým tlačítkem myši na Guru99Test Project -> Vytvořit cestu -> Přidat externí ArchiVes
Přejděte do složky, ve které jsou uloženy soubory jar
Měly by být přidány 3 soubory jar
- selendroid-client-0.10.0.jar : Selendroid Java klientská knihovna
- selendroid-standalone-0.11.0-with-dependencies : Selendroid samostatná serverová knihovna
- selen-java-2.40.0.jar : Selenium Knihovna webových ovladačů
Vybrat vše -> Zvolte Otevřít pro přidání souboru jar do projektu
Krok 3) po přidání výše uvedené knihovny budou tyto knihovny přidány do referenčních knihoven testovacího projektu. Tester může použít API těchto knihoven k vývoji testovacího programu
Vytvořte balíček „com.guru.test“ a přidejte java soubor „Guru99Test.java“ jako níže
Klepněte pravým tlačítkem myši na Guru99Test -> Nový -> Balíček
Napište com.guru.test do pole Name na New Java Dialog Package à Dokončit
Jedno Eclipse vytvoří ve struktuře zdrojového kódu seznam složek a podsložek, jako je tento
Krok 4) instalovat TestNG for Eclipse
In Eclipse, Nápověda -> Nainstalujte nový software, v dialogovém okně Install klikněte na Přidat a zadejte následující
- Jméno: TestNG
- pronájem: https://github.com/selendroid/selendroid
Stiskněte tlačítko OK -> Dále k instalaci TestNG
Krok 5) Zkopírujte soubor Guru99App.apk do složky Test App
Krok 6) Získejte ID testované aplikace.
Předpokládejme, že máme název souboru APK Guru99App.apk. Postupujte podle kroku popsaného v předchozí části a spusťte příkaz na terminálu
Otevřete následující odkaz v prohlížeči: http://localhost:4444/wd/hub/status
.
Zobrazí se informace o zařízení, zkopírujte hodnotu appId „com.guru99app:1.0“
Krok 7) Otevřete soubor Guru99Test.java (v ukázkovém kódu) a změňte jej následovně
Chcete-li vytvořit novou testovací relaci s Selendroid, musíte zadat ID aplikace ve formátu: com.guru99app:1.0. Toto ID aplikace lze identifikovat v kroku 6. Pokud nenastavíte ID aplikace odpovídající Android zařízení, testovací relace vyvolá chybu a nespustí se.
Po inicializaci nalezeného zařízení Selendroid vytvoří přizpůsobený selendroid-server a nainstaluje Selendroid server na něm
Selendroid také nainstaluje testovanou aplikaci a spustí selendroid-server na zařízení
Po úspěšné inicializaci testovací relace se spustí testovací příkaz na zařízení. (Například zadání textu, stiskněte tlačítko…). Pokud test připojí testovací relaci, emulátor se automaticky zastaví
Krok 8) Spusťte novou testovací relaci
Spustit Selendroid serveru pomocí následujícího příkazu na terminálu, jako je krok 6
Po Selendroid Server spuštěn, otevřete ukázkový testovací projekt Guru99test na Eclipse, nastavte zarážku na řádku 77 v souboru Guru99Test.java dvojitým kliknutím na řádek 77 -> Zobrazí se tečka jako níže
Zahajte testovací relaci kliknutím pravým tlačítkem na projekt Guru99Test -> Ladit jako -> Testng Test.
Začne testovací relace, jak je uvedeno níže
Krok 9) Získejte ID prvku GUI testované aplikace
Po úspěšném spuštění testovací relace otevřete prohlížeč a přejděte na adresu URL http://localhost:4444/inspector
Uvidíte, že se testovaná aplikace spouští, jak je uvedeno níže
Použijte ukazatel myši na každý prvek uživatelského rozhraní AUT (tlačítko, textové pole, textový štítek), ID každého prvku se zvýrazní v pravém panelu
Po tomto kroku můžete získat ID každého výše uvedeného prvku uživatelského rozhraní
- Tlačítko Zobrazit textové ID: “btnShow"
- ID textového pole: “edtText"
- ID textu štítku: “txtView"
Tato ID budou použita v dalším kroku
Krok 10) Zadejte testovací program, jak je uvedeno níže
Testovací program využívající Selendroid obsahuje 3 sekce
Test nastavení:
Následuje kód pro test nastavení, který nastaví podmínku pro testovací relaci. V případě chyby Selendroid vyvolá výjimku a testovací aplikace se zastaví.
Kód obsahuje komentáře pro vysvětlení každého prohlášení.
package com.guru.test; import io.selendroid.SelendroidCapabilities; import io.selendroid.SelendroidConfiguration; import io.selendroid.SelendroidDriver; import io.selendroid.SelendroidLauncher; import io.selendroid.device.DeviceTargetPlatform; 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; /** * @author Guru99 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new SelendroidDriver(capa); }
Provést test
Níže je uveden kód pro provedení testu. Kód obsahuje komentáře
Zde jsou opět testovací kroky
- Zadejte text „Ahoj Guru“
- Klepněte na tlačítko Zobrazit textové tlačítko
- Počkej chvíli
- Ověřte, že aplikace zobrazuje text při vstupu uživatele do textového pole (např. zobrazte text „Hello Guru“)
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
Dokončit test
Následující kód dokončí test zastavením Selendroid Řidič.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Podrobnosti můžete vidět v ukázkovém kódu zahrnutém v tomto článku.
Krok 10) mítinky Connect Android zařízení k PC přes USB kabel. Body k pozorování -
- Ujistěte se, že zařízení nemá nakonfigurován zámek obrazovky.
- Zařízení musí být připojeno přes USB k počítači, na kterém běží samostatná komponenta selendroid.
- Zařízení by se mělo nainstalovat minimálně Android Target Verze API 10
Krok 11) Spusťte testovací aplikaci: Klepněte pravým tlačítkem myši na Guru99test -> Běž jako -> TestNG test
Krok 10) Spuštění skriptu se provede následovně
Krok 12) Po dokončení testu, TestNG auto generuje zprávu o testu následovně
Dobrá práce, teď máte test hotový.
Shrnutí
- Selendroid je velmi výkonný nástroj pro testování Android nativní aplikace, hybridní aplikace i webová aplikace.
- Lze jej použít na skutečných zařízeních i na simulátoru.
- Umožňuje také spouštět testy paralelně spuštěním testu na více zařízeních.
- Celá Selendroid sada se skládá ze čtyř částí:
- klient webového ovladače,
- Selendroid-server,
- Android Driver Driver
- Selendroid-samostatný
- Chcete-li použít Selendroid potřebujete Java JDK, Android SDK a Eclipse nainstalován.