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 –

Selendroid konzultace

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.

Co je to Selendroid

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í

Co je to Selendroid

Proč potřebujeme Selendroid?

Selendroid je skvělý testovací nástroj. Ale stále můžete pochybovat o jeho užitečnosti.

Proč potřebujeme Selendroid

Tato část představí důležité funkce Selendroid odpovědět na otázku, proč potřebujete Selendroid.

Proč potřebujeme 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 Architecture

Selendroid obsahuje 4 hlavní složky:

Selendroid Architecture

  • 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

Začínáme s 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)

    Nastavení a Selendroid životní prostředí

    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

    Nastavení a Selendroid životní prostředí

    Krok 2) Zobrazí se okno Vlastnosti systému, vyberte kartu Upřesnit -> Proměnné prostředí

    Nastavení a Selendroid životní prostředí

    Krok 3) V okně Prostředí klikněte na Nový -> Zadejte proměnnou ANDROID_HOME následovně

    Nastavení a Selendroid životní prostředí

    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

    Nastavení a Selendroid životní prostředí

    Nastavení a Selendroid životní prostředí

    Podobně jako u ANDROID_HOME přidejte novou proměnnou JAVA_HOME s hodnotou uvedenou níže

    Nastavení a Selendroid životní prostředí

    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

zahájit Selendroid

Výstup se zobrazí následovně

zahájit Selendroid

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.

zahájit Selendroid

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í

  1. 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:

    Selendroid Základní příkaz

    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

  1. 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:

    Selendroid Základní příkaz

    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

    Selendroid Základní příkaz

  2. 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

    Selendroid Základní příkaz

    Port je nyní změněn na 9000

  3. 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

    Selendroid Základní příkaz

    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í

  4. 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

    Selendroid Základní 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“.

APK STÁHNĚTE ZDE

První test s Selendroid

Musíme provést následující Testovací případ použitím Selendroid

testovacích případů Stav Očekávaný výstup
  1. Spusťte aplikaci
  2. Zadejte text "Test Guru99” do textového pole
  3. Stiskněte tlačítko „Zobrazit text“.
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

První test s Selendroid

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

První test s Selendroid

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

První test s Selendroid

Napište com.guru.test do pole Name na New Java Dialog Package à Dokončit

První test s Selendroid

Jedno Eclipse vytvoří ve struktuře zdrojového kódu seznam složek a podsložek, jako je tento

První test s Selendroid

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í

Stiskněte tlačítko OK -> Dále k instalaci TestNG

První test s Selendroid

Krok 5) Zkopírujte soubor Guru99App.apk do složky Test App

První test s Selendroid

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

První test s Selendroid

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“

První test s Selendroid

Krok 7) Otevřete soubor Guru99Test.java (v ukázkovém kódu) a změňte jej následovně

První test s Selendroid

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

První test s Selendroid

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

První test s Selendroid

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

První test s Selendroid

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

První test s Selendroid

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

První test s Selendroid

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

  1. Zadejte text „Ahoj Guru“
  2. Klepněte na tlačítko Zobrazit textové tlačítko
  3. Počkej chvíli
  4. 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

První test s Selendroid

Krok 10) Spuštění skriptu se provede následovně

První test s Selendroid

Krok 12) Po dokončení testu, TestNG auto generuje zprávu o testu následovně

První test s Selendroid

První test s Selendroid

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.