Už jste někdy vyvinuli aplikaci pro Android a publikovali 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, aby se předešlo možným chybám. Existuje spousta testovacích scénářů, které by měly být provedeny před publikováním aplikace. Abyste ušetřili úsilí při testování, potřebujete testovací nástroj. Jedním z nejlepších testovacích nástrojů pro aplikaci pro Android je Selendroid.
- Co je Selendroid?
- Proč potřebujeme Selendroid?
- Selendroidní architektura
- Začínáme se Selendroidem
- Nastavení prostředí Selendroid
- Jak spustit Selendroid
- Selendroid základní příkaz
- Začněte svůj první test se Selendroidem
Co je Selendroid?
Selendroid je testovací automatizační rámec pro více typů mobilních aplikací: nativní a hybridní aplikace pro Android a mobilní web.
Testy můžete psát pomocí klientských rozhraní API Selenium 2. Protože Selendroid stále znovu využívá existující selenovou infrastrukturu pro web
Selendroid je výkonný testovací nástroj. Lze jej použít na emulátorech a reálných zařízeních
Proč potřebujeme Selendroid?
Selendroid je skvělý testovací nástroj. Stále však můžete pochybovat o jeho užitečnosti.
Tato část představí důležité funkce Selendroidu pro zodpovězení otázky, proč Selendroid potřebujete.
- Testovanou aplikaci můžete otestovat pomocí Selendroidu 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 na zařízení, musí být testovací aplikace a mobilní aplikace 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 Selendroidu. Svou aplikaci tedy můžete otestovat na různých zařízeních Android a zkontrolovat kompatibilitu.
- Selendroid může simulovat akce člověka a uživatele v aplikaci, jako je dotyk, přejetí prstem, přetažení na zařízení
- Během testování můžete hardwarová zařízení (zapojit a odpojit) změnit bez restartování nebo zastavení testu. Selendroid automaticky rozpozná nová zařízení
- V souladu s verzí Android API nahoru podporuje Selendroid také nové Android API (od API 10 do API 19)
- Selendroid má také nějaký integrovaný inspekční nástroj, který vám pomůže identifikovat prvek uživatelského rozhraní testované aplikace. Například tlačítko ID, textové pole, zobrazení textu…
Selendroidní architektura
Selendroid je založen na instrumentačním rámci Androidu. Selendroidní testy jsou psány na základě API klienta Selenium Web driver, takže podporuje plnou integraci s aktuálními selenovými rámci.
Následující obrázek popisuje architekturu Selendroidu
Selendroid obsahuje 4 hlavní komponenty:
- Web Driver Client - klientská knihovna Java založená na selenu. 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ěží, je v testované aplikaci na zařízení Android nebo simulátoru. Toto jsou hlavní součásti architektury Selendroid
- Android Driver-App - Integrovaný ovladač pro Android, aplikace Web View pro testování mobilního webu.
- Selendroid-Standalone - Tato součást se používá k instalaci serveru Selendroid a testované aplikace (AUT)
Začínáme se Selendroidem
Už jste věděli, jak důležitý je Selendroid. Nyní si zašpiníme ruce Selendroidem.
Před prvním testem se Selendroidem je třeba provést 3 kroky
Nastavení prostředí Selendroid
Selendroid může pracovat v systémech Windows, Linux a Mac OS. V tomto tutoriálu nastavíme Selendroid v OS Windows.
Před použitím Selendroidu musíte nejprve nainstalovat následující balíček
- Java SDK (minimálně 1,6)
Musíte souhlasit s licenční smlouvou a stáhnout instalační program java (v operačním systému vyberte základnu x64 nebo x86)
Stáhněte a nainstalujte sadu Java SDK jako běžný software
- Nejnovější verze sady Android SDK
- Váš počítač musí mít alespoň jedno virtuální zařízení Android (AVD) nebo skutečné zařízení Android připojené k počítači.
- Selendroid Samostatný se závislostmi, Selendroid Client a Selenium Client
- Software Eclipse
- Nastavit JAVA_HOME a ANDROID_HOME
Krok 1) V okně klikněte pravým tlačítkem na Počítač -> Vlastnosti -> Pokročilé nastavení systému
Krok 2) Zobrazení okna 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ásledujícím způsobem
Hodnota proměnné je cesta k android-sdks, které jste již nainstalovali.
Najděte systémovou proměnnou Cesta -> Upravit -> Přidat následující řádek za aktuální řádek
Podobně jako ANDROID_HOME přidejte novou proměnnou JAVA_HOME s hodnotou uvedenou níže
Hodnota je Cesta k vaší instalaci Java JDK
Krok 4) Restartujte počítač -> Hotovo
Jak spustit Selendroid
Krok 1) Získání aplikace v testu
Existující testovací aplikaci Selendroid můžete použít ke kontrole, jak Selendroid funguje (odkaz na testovanou ukázkovou aplikaci)
Po dokončení stahování zkopírujte tento soubor APK a výše uvedený samostatný soubor jar Selendroid do složky s názvem „ Guru99“
Krok 2) Spusťte Selendroid
Otevřete terminál ve Windows a 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 se spustí samostatný server HTTP Selendroid! Výchozí číslo portu tohoto serveru je 4444. Všechna hardwarová zařízení i virtuální zařízení Android budou automaticky skenována a rozpoznána. Selendroid identifikuje cílovou verzi systému Android a velikost obrazovky zařízení.
Chcete-li zkontrolovat cílovou verzi systému Android a informace o zařízení, můžete v prohlížeči spustit následující adresu URL:
http: // localhost: 4444 / wd / hub / status.
Selendroid základní příkaz
Tato část představuje základní příkazový řádek Selendroid-Standalone. Můžete je použít k nastavení testovacího prostředí Selendroid
- Nastavení portu Selendroid
Výchozí port Selendroidu je 4444. Můžete však změnit jiný port přidáním parametru do příkazu pro spuštění Selendroidu
Parametr: -port [číslo portu]
Například:
Ve výše uvedeném příkazu je 5555 nový port.
Takže adresa URL ke kontrole cílové verze systému Android se změní na: http: // localhost: 5555 / wd / hub / status
- Zadejte umístění testované aplikace (binární soubor APK). Selendroid pro tento soubor často vyžadoval absolutní cestu
Parametr: -app [cesta k souboru]
Například:
Ve výše uvedeném příkazu Selendroid automaticky vyhledá základnu binárního souboru v souboru „C: \ Guru99App.apk“, aby získal informace o testované aplikaci.
Zkontrolujte URL http: // localhost: 4444 / wd / hub / status, uvidíte tyto informace
- Změňte port, který Selendroid používá ke komunikaci s přístrojovým serverem. Selendroid používá jako výchozí port 8080
Parametr: -selendroidServerPort [číslo portu]
Příklad
Port je nyní změněn na 9000
- Změňte časový limit pro spuštění emulátorů. Jednotka je milisekund.
Parametr: -timeoutEmulatorStart
Ve výchozím nastavení bude Selendroid čekat 300 000 milisekund, dokud se emulátor nespustí. Příkazem můžete změnit nový časový limit (200 000 ms)
Po této době náš vypršel, pokud emulátor nelze spustit, Selendroid hodí chybu výjimky (došlo k chybě při hledání zařízení / emulátorů) a poté přestane fungovat
- Po spuštění příkazu Selendroid 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 protokolu]
Hodnoty úrovně protokolu jsou CHYBA, VAROVÁNÍ, INFORMACE, LADENÍ a VERBOSE. Výchozí: CHYBA.
Například nastavte Selendroid tak, aby tiskl pouze protokol VAROVÁNÍ, můžete použít tento příkaz
Selendroid tiskne pouze protokol VAROVÁNÍ
Začněte svůj první test se Selendroidem
Tato část je krok za krokem průvodce vytvořením prvního testovacího skriptu pomocí Selendroidu
Předpokládejme, že máme aplikaci pro Android pod názvem testu Guru99App. Aplikace obsahuje textové pole a název tlačítka „Zobrazit text“.
STÁHNOUT APK ZDE
Musíme provést následující testovací případ pomocí Selendroidu
Testovací případy |
Stav |
Očekávaný výstup: |
|
Binární soubor testované aplikace je k dispozici K počítači je připojeno zařízení |
Text „Text Show here“ se změní na text který uživatel zadá do textového pole |
Krok 1) Vytvořte projekt Java v Eclipse
Krok 2) Přidejte soubor selenu a nádoby Selendroid v prostředí zatmění
Klikněte pravým tlačítkem na Guru99Test Project -> Cesta sestavení -> Přidat externí archivy
Přejděte do složky, ve které byly uloženy soubory jar
Je třeba přidat 3 soubory jar
- selendroid-client-0.10.0.jar: Selendroid java klientská knihovna
- selendroid-standalone-0.11.0-with-dependencies: Selendroid standalone server library
- selenium-java-2.40.0.jar: Selenium Web Driver library
Vyberte vše -> Zvolte Otevřít a přidejte do projektu soubor jar
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 k vývoji testovacího programu použít rozhraní API těchto knihoven
Vytvořte balíček "com.guru.test" a přidejte java soubor "Guru99Test.java" jako níže
Klikněte pravým tlačítkem na Guru99Test -> Nový -> Balíček
Zadejte com.guru.test do pole Název v dialogovém okně Nový balíček Java à Dokončit
Eclipse vytvoří ve struktuře zdrojového kódu podobné složky a podsložky, jako je tento
Krok 4) Nainstalujte TestNG pro Eclipse
V Eclipse, Nápověda -> Instalovat nový software, v dialogu Instalovat klikněte na Přidat a zadejte následující
- Název: TestNG
- Umístění: http://selendroid.io/
Stisknutím tlačítka OK -> Další nainstalujte 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 kroků popsaných v předchozí části a proveď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 se Selendroidem, musíte zadat ID aplikace ve formátu: com.guru99app: 1.0. Toto ID aplikace je identifikováno v kroku 6. Pokud nenastavíte ID aplikace odpovídající zařízení Android, testovací relace vyvolá chybu a nespustí se.
Po inicializaci nalezeného zařízení vytvoří Selendroid přizpůsobený server selendroid a nainstaluje na něj server Selendroid
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 při zadávání textu stiskněte tlačítko
…). Pokud test připojí testovací relaci, emulátor se automaticky zastavíKrok 8) Spusťte novou testovací relaci
Spusťte server Selendroid pomocí následujícího příkazu na terminálu, jako je krok 6
Po spuštění serveru Selendroid 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
Spusťte testovací relaci pravým tlačítkem Klikněte na projekt Guru99Test -> Debug As -> Testng Test.
Spustí se testovací relace níže
Krok 9) Získejte ID prvku GUI testované aplikace
Po úspěšném zahájení testovací relace otevřete prohlížeč, přejděte na URL http: // localhost: 4444 / inspektor
Uvidíte, že je spuštěna Testovaná aplikace, jak je uvedeno níže
Umístěte 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 podokně
Po tomto kroku můžete získat ID každého výše uvedeného prvku uživatelského rozhraní
- Tlačítko Zobrazit ID textu: " 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í, nastaví podmínky pro testovací relaci. V případě chyby Selendroid vyvolá výjimku a testovací aplikace se zastaví.
Kód obsahuje komentáře vysvětlující každé prohlášení.
balíček com.guru.test;import io.selendroid.SelendroidCapabilities;importovat io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;importovat 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* Testovaná aplikace: Guru99App** /veřejnosttřída Guru99Test {// Deklarovat proměnnou webového ovladačesoukromý ovladač WebDriver;/ *** Před testováním nastavte prostředí* @hodí výjimku* /@BeforeSuiteveřejnostvoid setUp () vyvolá výjimku {// Spustit samostatný test během testuKonfigurace SelendroidConfiguration = nová SelendroidConfiguration ();// Přidejte aplikaci selendroid-test na samostatný serverconfig.addSupportedApp ("Guru99App.apk");// spustit samostatný serverSelendroidLauncher selendroidServer = nový SelendroidLauncher (konfigurace);selendroidServer.launchSelendroid ();// Vytvořte možnosti selendroiduSelendroidCapabilities capa = nový SelendroidCapabilities ();// Určete použití testovací aplikace selendroidcapa.setAut ("com.guru99app: 1,0");// Určete použití rozhraní API zařízení Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Nepožadujte simulátor, používejte skutečné zařízenícapa.setEmulator (false);//capa.wait(10000000);// Vytvořit instanci ovladače Selendroid Driverdriver = new SelendroidDriver (capa);}
Proveďte test
Níže je uveden kód k provedení testu. Kód obsahuje komentáře
Zde jsou opět testovací kroky
- Zadejte text "Hello Guru"
- Klikněte na tlačítko Zobrazit text
- Počkej chvíli
- Ověřte, zda aplikace zobrazuje text, když uživatel zadá textové pole (např. Zobrazí text „Hello Guru“)
/ *** Začněte provádět testovací případ* 01. Do textového pole zadejte text „Selendroid“* 02. Stiskněte tlačítko OK* @hodí výjimku* /@Testveřejnostvoid selendroidTest () vyvolá výjimku {// Tisk protokoluSystem.out.print ("Zahájit provádění testu");// Najděte na obrazovce pole pro zadávání textu// ID tohoto textového pole bylo získáno z kroku 9WebElement inputField = driver.findElement (By.id ("edtText"));// Ověřte, zda je textové pole povoleno, aby uživatel mohl zadávat textAssert.assertEquals ("true", inputField.getAttribute ("povoleno"));// Zadejte text do textového poleinputField.sendKeys ("Hello Guru");// klikněte na tlačítko Zobrazit text// ID tohoto tlačítka bylo získáno z kroku 9Tlačítko WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Zpoždění, než se projevíZávit. Spánek (5 000);// Na obrazovce najděte štítek „Text Show Here“// ID tohoto štítku bylo získáno z kroku 9WebElement txtView = driver.findElement (By.id ("txtView"));// Zobrazení textu na obrazovceOčekávaný řetězec = txtView.getText ();// Ověřte, že text, který uživatel zadá do textového pole, je stejný jako text zobrazený na obrazovceAssert.assertEquals (očekáváno, inputField.getText ());}
Dokončit test
Následující kód dokončí test zastavením ovladače Selendroid.
/ *** Zastavte ovladač Selendroid** /@AfterSuiteveřejnostvoid tearDown () {driver.quit ();}
Podrobnosti najdete v ukázkovém kódu zahrnutém v tomto článku.
Krok 10) Připojte zařízení Android k počítači pomocí kabelu USB. Body k pozorování -
- Ujistěte se, že v zařízení není nakonfigurován žádný zámek obrazovky.
- Zařízení musí být připojena přes USB k počítači, na kterém běží samostatná samostatná komponenta.
- Zařízení by mělo instalovat alespoň Android Target Version API 10
Krok 11) Spusťte testovací aplikaci: Klikněte pravým tlačítkem na Guru99test -> Spustit jako -> TestNG test
Krok 10) Skript se spustí následovně
Krok 12) Po dokončení testu TestNG automaticky vygeneruje protokol o testu následujícím způsobem
Dobrá práce, nyní jste test dokončili.
souhrn
souhrn
- Selendroid je velmi výkonný nástroj pro testování nativní aplikace pro Android, hybridní aplikace i webové aplikace.
- Lze jej použít na reálných zařízeních i na simulátoru.
- Umožňuje také paralelně spouštět testy spuštěním testu na více zařízeních.
- Celá sada Selendroid se skládá ze čtyř komponent:
- Klient webového ovladače,
- Selendroid-Server,
- Aplikace ovladače Android
- Selendroid stojí sám
- Abyste mohli používat Selendroid, musíte mít nainstalovanou Javu JDK, Android SDK a Eclipse.