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:
Pomocí pokynů při spuštění testovacího běhu vygenerujte příkaz pro nahrání testu app center.
Zabalte testovací třídy a všechny závislosti do
target/upload
složky :mvn -DskipTests -P prepare-for-upload package
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.