Příprava testů Appium pro nahrání

Důležité

Visual Studio App Center je naplánované k vyřazení na 31. března 2025. I když můžete Visual Studio App Center dál používat, dokud ho úplně nevyřadíte, existuje několik doporučených alternativ, na které můžete migraci zvážit.

Přečtěte si další informace o časových osách a alternativách podpory.

Postup přípravy aplikace a její sady testů k nahrání se liší v závislosti na testovací architektuře. Tento průvodce popisuje, jak pomocí Javy a JUnit připravit testy Appium pro nahrání do App Center. Pokyny k vytváření testů Appium najdete v dokumentaci k Appiu.

Všimněte si následujících omezení podpory Appium:

Poznámka

Podporuje se kontext WebView, webový ovladač Chrome a testování prohlížeče Chrome s browserName funkcemi!

  • Nepodporuje se testNG (podporují se jenom testy JUnit).
  • Android 4.2 nebo starší verze nepodporuje. Zastaralý ovladač UIAutomator není podporován.
  • IOS 9.2.1 a předchozí verze nepodporuje. Není podporován zastaralý ovladač UIAutomation pro iOS.
  • Žádná podpora pro JUnit @Category attribute. (Může místo toho použít zahrnout/vyloučit .)
  • Verze Mavenu musí být minimálně 3.3.9.
  • Aktuální verze Appium je 1.22.0. Pravidelně se aktualizuje novými verzemi.
  • JUnit 4.9 - 4.12 je podporována; JUnit 5 nepodporujeme.
  • Testy musí cílit přesně na jednu aplikaci. (MobileCapabilityType.FULL_RESET je podporováno)

Poznámka

V některých případech můžou testy v App Center fungovat i v případě, že používáte nepodporované nástroje nebo funkce. Tato nepodporovaná funkce ale nebude v budoucích aktualizacích fungovat a může se bez upozornění přerušit.

Požadavky

Testy se budou spouštět pomocí Maven Surefire, který vyžaduje, aby testy dodržovaly určité zásady vytváření názvů:

"**/Test*.java" - includes all of its subdirectories and all Java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all Java filenames that end with "Test".
"**/*Tests.java" - includes all of its subdirectories and all Java filenames that end with "Tests".
"**/*TestCase.java" - includes all of its subdirectories and all Java filenames that end with "TestCase".

Než se pokusíte nahrát do App Center Test, ujistěte se, že spouštění testů místně na vašem počítači pomocí Mavenu funguje:

➜  AppiumTest git:(main) ✗ mvn verify
...
Running MainTest
started: SimpleTest (MainTest)
Setting up capabilities
failed
finished
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.728 sec <<< FAILURE!
SimpleTest(MainTest)  Time elapsed: 0.594 sec  <<< ERROR!
...

Pokud nemůžete testy spustit místně pomocí příkazového řádku, testy nebudou fungovat ani v App Center Test.

1. Změny systému sestavení

Krok 1 – přidání závislosti

Pro testovací rozšíření Appium budete muset přidat závislost:

<dependency>
    <groupId>com.microsoft.appcenter</groupId>
    <artifactId>appium-test-extension</artifactId>
    <version>1.6</version>
</dependency>

Tento kód zajistí dostupnost vylepšených ovladačů pro Android a iOS v době kompilace. Vylepšené ovladače jsou k dispozici primárně k povolení této label funkce. Další podrobnosti o této funkci najdete v label kroku 4.

Krok 2 – Přidání profilu pro nahrání

Zkopírujte tento fragment kódu do značky pom.xml<profiles> . Pokud v pom není žádný <profiles> oddíl, vytvořte si ho. Profil po aktivaci zabalí vaše testovací třídy a všechny závislosti do target/upload složky připravené k nahrání do testovacího prostředí.

2. Změny testů

Krok 1 – přidání importu

Do testovacích tříd naimportujte tyto balíčky:

import com.microsoft.appcenter.appium.Factory;
import com.microsoft.appcenter.appium.EnhancedAndroidDriver;
import org.junit.rules.TestWatcher;
import org.junit.Rule;

Krok 2 – Vytvoření instance testwatcheru

Do každé testovací třídy vložte tuto deklaraci:

    @Rule
    public TestWatcher watcher = Factory.createWatcher();

Krok 3 – aktualizace deklarace ovladače

Nahraďte deklaraciAndroidDriver<MobileElement> za EnhancedAndroidDriver<MobileElement> nebo IOSDriver<MobileElement> za EnhancedIOSDriver<MobileElement>

    private static EnhancedAndroidDriver<MobileElement> driver;

Krok 4 – Aktualizace instancí ovladačů

Nahraďte způsob, jakým vytváříte instanci ovladače, například řádky ve tvaru:

    driver = new AndroidDriver<MobileElement>(url, capabilities);

... se změní na:

    driver = Factory.createAndroidDriver(url, capabilities);

Použití těchto ovladačů vám i nadále umožní spouštět testy místně bez dalších úprav, ale umožní vám "označit" testovací kroky při provádění testu pomocí driver.label("text")příkazu . Text a snímek obrazovky ze zařízení se zobrazí v testovací sestavě v App Center.

Doporučuje se volat driver.label metodu @After v metodě , která pořídí snímek obrazovky s konečným stavem aplikace. Ukázková @After metoda testu by mohla vypadat jako tento kód:

    @After
    public void TearDown(){
        driver.label("Stopping App");
        driver.quit();
    }

3. Nahrání do app center testu

Postup nahrání testu:

  1. Pomocí pokynů při spuštění testovacího běhu vygenerujte příkaz pro nahrání testu app center.

  2. Zabalte testovací třídy a všechny závislosti do target/upload složky :

    mvn -DskipTests -P prepare-for-upload package
    
  3. Spusťte příkaz upload:

    appcenter test run appium --app "APP_ID" --devices "DEVICE_SET_ID" --app-path PATH_TO_FILE.apk  --test-series "main" --locale "en_US" --build-dir target/upload
    

4. Řešení potíží s výkonem

Testy na zařízeních v App Center se budou provádět o něco pomaleji než na místním zařízení. Za normálních okolností pomalejší provádění převažuje tím, že je k dispozici více zařízení, což umožňuje paralelní testovací běhy.

Existují tři hlavní zdroje pomalejších testovacích běhů: opětovné podepisování, přeinstalace a síťové úlohy.

Opětovné podepsání (v iOSu)

Před instalací na zařízení s iOSem prochází aplikace procesem, který se nazývá opětovné podepsání. Tento proces je nezbytný k tomu, aby zřizovací profil odpovídal zařízení v cloudu. Opětovné podepsání nějakou dobu trvá, obvykle přibližně 1 až 2 minuty. Opakované podepisování zřídka také způsobuje snížení výkonu, protože se znovu podepsané aplikace ukládají do mezipaměti. Časově náročný proces se spustí pouze jednou pro každý binární soubor.

Pokud vaše nastavení průběžného doručování aktualizuje verzi IPA před sestavením a testováním, bude binární soubor pro každý test jiný a k penalizaci opětovného podepsání bude docházet častěji.

Přeinstalaci

Ve sdíleném cloudu zařízení je důležité, abychom zajistili, že se zařízení mezi jednotlivými testy vyčistí. Dalším zákazníkem používajícím zařízení může být někdo z jiné organizace. V App Center Test se aplikace po dokončení testovacího běhu automaticky odinstaluje.

Pokud chcete zrychlit provádění testů, můžete ho vynechat MobileCapabilityType.FULL_RESET a nastavit MobileCapabilityType.NO_RESET na true . Podrobnosti najdete v tématu Strategie resetování .

Úlohy sítě

Úlohy místní sítě jsou rychlejší, protože server je blíže a více vyhrazený pro vzdáleného hostitele.