selendroid tutorial android mobile test automation framework
Mobilní automatizace pomocí Selendroidu (část I):
Dosud byly miliony aplikací již vyvinuty pomocí Androidu jako platformy a jejich počet se každým dnem stále zvyšuje.
Háček je, jak ověřit každou aplikaci? Protože budeme vyžadovat vyhrazené zdroje, jako je pracovní síla, skutečná zařízení (řekněme např. Mobilní) atd., Opět je to časově náročný úkol. Na druhou stranu verze pro Android, verze aplikací (.apk), rozměry zařízení atd. Nejsou konstantní.
Proto je velmi obtížné definovat výstupní kritéria testu, protože nemůžeme definovat celý rozsah testování, a proto nelze provést přesný odhad úsilí při testování.
Abychom překonali závislost zařízení, vyvíjejí se emulátory, které mohou poskytovat prostředí podobné reálnému času, kde můžeme testovat aplikaci bez obav o verzi pro Android, zařízení a jejich verzi. Stále však testování aplikací (.apk) přes emulátor je manuální aktivita a dokonce časově náročný úkol. Proto se vyvíjí myšlenka automatizace mobilního testování.
K provádění mobilní automatizace je vyvinut testovací automatizační rámec, který umožňuje automatizaci aplikací založených na Androidu pomocí skriptovacího jazyka.
Existuje mnoho automatizačních rámců vyvinutých jako Selendroid, Appium, Robotium, Espresso.
Tento kurz je rozdělen do dvou částí:
Výukový program č. 1 : Selendroid Úvod: Android Mobile Test Automation Framework
Výukový program č. 2: Jak používat rámec Selendroid k automatizaci uživatelských interakcí přes mobilní aplikaci (již brzy)
Co se naučíte:
- Co je Selendroid?
- Selendroid komponenty
- Nastavení prostředí
- Psaní prvního skriptu pomocí souborů APK přes skutečná zařízení
- Závěr
- Doporučené čtení
Co je Selendroid?
Selendroid je úžasný nástroj pro automatizaci testování mobilních aplikací pro Android s několika důležitými funkcemi. Selendroid je velmi výkonný automatizační nástroj, který může komunikovat s více zařízeními současně a aplikace může být testována bez jakékoli úpravy nebo změny pomocí Selendroidu.
Také se tomu říká „Selenium pro Android“ pro testování nativních a hybridních mobilních aplikací a mobilního webu.
Proč Selendroid?
- Je to otevřený zdroj (zdarma k použití)
- Podporuje selen jako skriptovací jazyk
- Podporuje jazyky kompatibilní s webovými ovladači, jako je Java, C #, Perl
- Podporuje všechny verze Androidu
- Funguje jak na emulátoru, tak na skutečném zařízení
- Funguje na nativní, hybridní a webové aplikaci
- Efektivní při provádění nativních aplikací i cloudových aplikací. protože podporuje selenovou mřížku
- Podporuje rozpoznávání objektů pomocí vlastností objektu
- Snadná implementace
- Hardwarová zařízení lze během provádění testu připojit, odpojit od počítače, aniž by bylo nutné restartovat nebo zastavit test. Selendroid dokáže nová zařízení rozpoznat automaticky. Tato funkce je známá jako „Hotplugging“
Jednoduchá architektura Selendroidu
Selendroid komponenty
Selendroid - klient
V zásadě se jedná o klientskou knihovnu java. Z této komponenty se požadavek HTTP a WebDriver odesílá pomocí JSON na samostatný server Selendroid.
Selendroid - samostatný
Tato součást spravuje různá zařízení i aplikace .apk instalací serveru Selendroid a testované aplikace. Požadavek Http (který se má provést přes skutečné zařízení / simulátor) se odesílá ze samostatného serveru Selendroid do zařízení a testovaného apk.
Selendroid - server
Tento server běží přes zařízení spolu s testovanou aplikací. Mezi serverem a testovanou aplikací existuje obousměrná komunikace.
AndroidDriverApp
Je to vestavěný ovladač pro Android a také aplikace Web View pro testování mobilního webu.
Další testovací rámec pojmenovaný jako APPI funguje podobně jako Selendroid.
Zde je malé srovnání obou.
Vlastnosti | Selendroid | appium |
---|---|---|
Podpora pro nižší verzi systému Android (<4.1) | Ano | Nedělej |
Horké připojení | Ano | Nedělej |
Testování agenta uživatele | Nedělej | Ano |
Podpora aplikace založené na iOS | Nedělej | Ano |
Environmentální požadavek | Pro Android - Mac, Linux, Windows (libovolná verze) | Pro iOS - Mac OSX 107. Pro Android - Windows 7+, Linux, Mac OSX 107. |
Předpoklady:
Chcete-li začít se zamýšleným publikem, měli byste si být velmi dobře vědomi používání selenu, jakýchkoli nástrojů IDE, jako je Eclipse atd. Základní koncepty programování říkají Java, C atd ... a musí si být vědomy používání Mavenu a dalších testovacích nástrojů.
- Nainstalujte si Intel x86 Emulator Accelerator (není povinný), abyste mohli simulátor zobrazit tady
- Java SDK, JRE již nainstalované v testovacím prostředí. Alternativně si můžete stáhnout stejné z tady
Při instalaci si poznamenejte cestu SDK.
Nastavte proměnné prostředí přítomné v části Tento počítač -> klikněte pravým tlačítkem myši -> Vlastnosti -> Pokročilé nastavení systému
- Eclipse je ve vašem počítači již nainstalován. Pokud ne, můžete si jej také stáhnout z tady
- Soubory jar selenu je třeba stáhnout. Můžete si stáhnout stejné odtud také
- Sklenice TestNG jsou již staženy
- Android SDK ke stažení a instalaci. Totéž si můžete stáhnout z tady
Během instalace si poznamenejte cestu Android SDK
Po stažení by měl být ANDROID_HOME nastaven v proměnných prostředí přítomných v:
Tento počítač -> klepněte na něj pravým tlačítkem myši -> Vlastnosti -> Pokročilé nastavení systému
- Soubory jar Selendroid je třeba stáhnout. Totéž si můžete stáhnout z tady
Pamatovat si stáhnout samostatný soubor jar Selendroid z výše uvedeného umístění. Název je obvykle jako selendroid-standalone-0.9.0-with-dependencies.jar. Také si stáhněte jeden ukázkový soubor APK, řekněme selendroid-test-app-0.8.0.apk z výše uvedeného umístění
Poznámka:
- Můžeme také použít úložiště maven abyste uvedli odkaz na všechny sklenice, jinak je musíte stáhnout ručně a připojit je k cestě sestavení (Over Eclipse Project)
- Zařízení / Emulátory - V systému Android bude mít veškerá nainstalovaná aplikace příponu .apk. Jinými způsoby si můžete stáhnout aplikace, jako je APK Info, která vás bude informovat o seznamu aplikací nainstalovaných v zařízení Android a jejich skutečném názvu, velikosti atd.
Nastavení prostředí
# 1) Ponechejte soubor APK, který je třeba nainstalovat, na správném místě
V mém případě jsem to nechal G: \ Jars \ selendroid-test-app-0.8.0.apk
# 2) Dále ponechte aplikaci nad složkou projektu
V mém případě ano 500: AppiumAutomation SelendroidFirst
# 3) Připojte skutečné zařízení k počítači
Ujistěte se, že je povolen režim ladění USB a také povolujete instalaci externích aplikací prostřednictvím připojení USB.
Tipy:
- Přečtěte si nastavení ladění USB požadované pro mobilní zařízení, řekněme Redmi Note 3 od tady
- Povolte externí aplikaci nainstalovanou pomocí USB, řekněte Redmi note 3 z tady
# 4) Otevřete příkazový řádek přes Windows
Přejděte do složky, kde je samostatný samostatný soubor Selendroid a stažený soubor apk.
Nyní zadejte podobný příkaz a stiskněte klávesu enter v příkazovém řádku
Např. java --jar selendroid-standalone-0.15.0-with-dependencies.jar -aut selendroid-test-app-0.8.0.apk
Nebo java –jar selendroid-standalone-0.15.0-with-dependencies.jar
Soubor APK: selendroid-test-app-0.8.0.apk
Poznámka: Když je proveden výše uvedený příkaz, ujistěte se, že je APK podepsán a také skutečné zařízení je připojeno k PC a je povoleno ladění přes zařízení.
(Poznámka: Klikněte na obrázek pro zvětšené zobrazení)
V příkazovém řádku zkontrolujte následující body a ujistěte se, že je prostředí připraveno na automatizaci:
- Ověřte zprávu „Zařízení je zadáno s platným číslem“
- Ověřte u zprávy „server je spuštěn ve výchozím portu řekněme (4444)…“
- Ověřte zprávu „Vytváření relace…“
Opět můžeme vždy znovu potvrdit, zda je server spuštěn, nebo nepoužívá následující adresu URL v některém z vašich webových prohlížečů.
např. http: // localhost: 4444 / wd / hub / status
# 5) Kontrola souborů APK
- Skutečné aplikace můžeme používat připojením skutečných mobilních zařízení
- Můžeme použít jakékoli offline stažené soubory APK
Selendroid Inspector je užitečný při ladění / kontrole webových prvků APK.
Jakmile je zařízení identifikováno a spuštěno, můžeme si prohlédnout soubor APK (ve virtuálním režimu) a najít odkazy, které jsou užitečné pro psaní skriptů, pomocí následující adresy URL přes kterýkoli z vašich webových prohlížečů.
Např: http: // localhost: 4444 / inspektor
Zde máme snímek obrazovky testované aplikace a máme také zařízení pro kontrolu prvku.
Nebo můžete vždy použít uiautomatorviewer najít objekty z testované aplikace.
Výchozí cesta je uvedena níže:
C: Users admin android-sdks tools
C: Users admin - Toto je místo, kde jsem nainstaloval sady Android SDK, ale může se lišit podle umístění uvedeného během jeho instalace.
Psaní prvního skriptu pomocí souborů APK přes skutečná zařízení
Objektivní:
- Spusťte server (na výchozím portu řekněme 4444)
- Vytvořte relaci
- Nainstalujte aplikaci (soubor .apk) přes připojené skutečné zařízení
- Automatizujte textové pole některými daty
- Automaticky klikněte na tlačítko
package SelendroidFirst; import io.selendroid.client.SelendroidDriver; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import io.selendroid.common.SelendroidCapabilities; import io.selendroid.common.device.DeviceTargetPlatform; import io.selendroid.standalone.SelendroidConfiguration; import io.selendroid.standalone.SelendroidLauncher; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.*; import static org.openqa.selenium.remote.CapabilityType.BROWSER_NAME; import static org.openqa.selenium.remote.CapabilityType.PLATFORM; import static org.openqa.selenium.remote.CapabilityType.VERSION; public class RealDevices{ public SelendroidLauncher selendroidServer = null; public WebDriver driver = null; public void conf() throws Exception { //**Configuration**// SelendroidConfiguration config = new SelendroidConfiguration(); config.addSupportedApp('G:\Jars\selendroid-test-app-0.8.0.apk'); SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); //**Creating capabilities**// SelendroidCapabilities sc = new SelendroidCapabilities(); sc.setAut('io.selendroid.testapp:0.8.0'); sc.setEmulator(false); //**Instantiating new Selendroid driver**// WebDriver driver = new SelendroidDriver(sc); //**Sending data to the text field**// driver.findElement(By.id('my_text_field')).sendKeys('Selendroid Test'); //**Clicking on the button**// driver.findElement(By.id('visibleButtonTest')).click(); Thread.sleep(10000); }
Závěr
Selendroid je velmi výkonný nástrojový rámec pro automatizaci testování, který lze použít k testování nativní, hybridní i webové aplikace na libovolném zařízení Android i simulátoru.
Podporuje Hotplugging, což znamená, že uživatel může nechat testovat více zařízení najednou, a proto je možné paralelní provedení testu napříč více zařízeními. Podporuje různé druhy interakcí, jako je dlouhé stisknutí, dotykové akce atd.
Jedinou složitostí je nastavení prostředí, které je také v jiných rámcích. Jakmile je správně nastaveno, můžeme bez problémů spustit naše skripty.
včást 2tohoto Selendoid tutoriálu se budeme zabývat - Jak používat rámec Selendroid k automatizaci uživatelských interakcí přes mobilní aplikaci.
V našem dalším článku se budeme zabývat více na Výukový program pCloudy Hands-on Review.
seznam soukromých serverů World of Warcraft
Doporučené čtení
- Výukové programy pro zatmění do hloubky pro začátečníky
- Výukový program pro automatizaci SeeTest: Průvodce nástrojem pro automatizaci mobilních testů
- Výukový program Java Collections Framework (JCF)
- Výukový program Java Reflection s příklady
- Výukový program Ranorex: Výkonný nástroj pro automatizaci stolních, webových a mobilních automatizačních nástrojů
- Výukový program Appium pro testování mobilních aplikací pro Android a iOS
- Používání Selendroidu k automatizaci uživatelských interakcí přes mobilní aplikaci (část 2)
- Pokročilé využití automatizace SeeTest na projektu mobilní automatizace v reálném čase