W tym dokumencie opisano rozwiązania AVD dla laboratorium testowego, w tym korzyści i znane ograniczenia. Zapewniamy również zalecenia dotyczące testowania aplikacji przez cały cykl jej tworzenia.
Chociaż AVD Test Lab są podobne do AVD dla Android Studio , istnieje między nimi kilka różnic. Na przykład AVD w Test Lab mają emulowane połączenie danych zamiast połączenia Wi-Fi.
Test Lab AVD z sufiksem .arm
lub (Arm) to zaawansowane emulatory, które zapewniają następujące korzyści:
Szybszy czas wykonywania testów
Rozmiary i gęstości ekranu dopasowane do AVD Android Studio w celu zapewnienia spójności
Używanie AVD z sufiksem .arm
lub (Arm) zapewnia następujące korzyści w porównaniu z innymi typami urządzeń fizycznych:
Korzyść | Opis | Przypadków użycia) |
Duża dostępność | Możesz uruchamiać testy i szybciej uzyskiwać wyniki podczas testowania za pomocą urządzeń wirtualnych. Ponieważ urządzenia wirtualne są tworzone na żądanie, testy rozpoczynają się niemal natychmiast, zapewniając szybką weryfikację aplikacji. | Testowanie małych aktualizacji Twojej aplikacji lub testowanie regresji. |
Dłuższy czas trwania testu | Czas trwania testów na urządzeniach fizycznych jest ograniczony do 45 minut na każdym urządzeniu. Urządzenia wirtualne obsługują czas trwania testu do 60 minut. | Przeprowadzanie dłuższych testów. |
Niższe koszty | Ceny urządzeń wirtualnych wynoszą 1 USD za godzinę za każde urządzenie wirtualne używane do testowania Twojej aplikacji. | Codzienne testowanie przy użyciu systemów ciągłej integracji lub przed sprawdzeniem kodu. Aby dowiedzieć się więcej, zobacz Poziomy użycia, limity i ceny dla Test Lab . |
Przetestuj swoją aplikację za pomocą urządzeń wirtualnych
Możesz przetestować swoją aplikację na urządzeniach wirtualnych w taki sam sposób, jak testujesz ją na urządzeniach fizycznych. Po prostu wybierz urządzenia wirtualne podczas wybierania wymiarów testowych, aby skonfigurować macierz testów. Aby dowiedzieć się więcej o przeprowadzaniu testów w Laboratorium testowym, zobacz Rozpoczęcie testowania Androida w Firebase Test Lab .
Wyświetl obsługiwane modele i interfejsy API
Aby wyświetlić modele AVD i interfejsy API obsługiwane przez Test Lab, uruchom następujące polecenie:
gcloud firebase test android models list --filter=virtual
Sprawdzone metody testowania aplikacji
Urządzenia wirtualne zwiększają zakres opcji podczas testowania aplikacji za pomocą Test Lab. Zalecamy korzystanie z najlepszych praktyk opisanych w tej sekcji w celu przetestowania aplikacji w całym cyklu jej tworzenia.
Użyj emulatora Android Studio lub podłączonego urządzenia fizycznego
Tworząc aplikację, użyj emulatora Android Studio lub podłączonego urządzenia fizycznego, aby sprawdzić każdą kompilację pod kątem wstępnej weryfikacji. Jeśli masz testy oprzyrządowania, możesz również uruchomić te testy z Android Studio na urządzeniach fizycznych lub wirtualnych dostarczonych przez Test Lab.
Korzystaj z systemów CI przy każdej zmianie kodu podczas pracy nad współdzielonymi projektami
Jeśli pracujesz nad dużym projektem lub współtworzysz projekty, które są udostępniane za pomocą GitHub lub podobnej usługi, zalecamy korzystanie z systemów ciągłej integracji (CI).
Testuj swoje aplikacje na urządzeniach wirtualnych przy każdym uruchomieniu systemu CI lub przed każdym żądaniem ściągnięcia. Aby dowiedzieć się więcej o używaniu Test Lab z systemami CI, zobacz Używanie Test Lab dla Androida z systemami ciągłej integracji .
Przetestuj swoją aplikację na urządzeniach fizycznych za pomocą Test Lab, zanim opublikujesz istotne aktualizacje aplikacji
Przed wydaniem aktualizacji aplikacji ze znaczącymi zmianami interfejsu użytkownika i funkcjonalności zalecamy skorzystanie z Laboratorium testowego w celu przetestowania aplikacji na urządzeniach fizycznych. Dzięki temu Twoja aplikacja będzie stabilna i wydajna na wielu popularnych urządzeniach fizycznych. Testowanie na urządzeniach fizycznych zapewnia również pokrycie testami dowolnej funkcjonalności aplikacji, która opiera się na funkcjach urządzeń fizycznych, które nie są symulowane przez urządzenia wirtualne. Aby dowiedzieć się więcej o tych funkcjach, zobacz Znane ograniczenia .
Aktualizacje urządzeń wirtualnych
Okresowo zespół Androida dodaje nowe obrazy urządzeń wirtualnych, wycofuje stare i aktualizuje istniejące. Stosujemy te aktualizacje do naszych obrazów urządzeń wirtualnych, aby upewnić się, że testujesz z aktualnymi wersjami Androida, które odzwierciedlają wrażenia użytkowników.
W rzadkich przypadkach te aktualizacje mogą spowodować nieoczekiwane niepowodzenie testów. Gdy pojawi się znana aktualizacja potencjalnie powodująca awarie, Laboratorium testowe umieści informacje w informacjach o wersji . Jako najlepszą praktykę zalecamy korzystanie z ram testowych — na przykład Espresso — które są odporne na te zmiany, gdy tylko jest to możliwe. Jeśli nie jest to możliwe, zalecamy kierowanie na urządzenia wirtualne Arm, w przypadku których można spodziewać się rzadszych aktualizacji.
Znane ograniczenia
Niektóre funkcje urządzeń fizycznych nie są obecnie symulowane przez urządzenia wirtualne lub są symulowane z pewnymi ograniczeniami. W poniższej tabeli podsumowano funkcje, które są obecnie niedostępne na urządzeniach wirtualnych lub są dostępne z pewnymi ograniczeniami.
Funkcja | Detale |
Binarne interfejsy aplikacji (ABI) | Nie wszystkie urządzenia obsługują wszystkie interfejsy ABI. Jeśli pracujesz przy użyciu Android NDK, pamiętaj o wygenerowaniu kodu dla interfejsów ABI obsługiwanych przez docelowe urządzenia. Aby uzyskać więcej informacji, zobacz Dostępne urządzenia w laboratorium testowym . Aby dowiedzieć się więcej o zarządzaniu ABI, zobacz ABI Androida . Aby dowiedzieć się, które interfejsy ABI są obsługiwane przez urządzenie, zobacz Sprawdzanie dostępnych urządzeń testowych . Uwaga: jeśli test w Twojej macierzy testów jest oznaczony jako Nieprawidłowy, może to być spowodowane tym, że Twoja aplikacja jest zależna od kodu natywnego nieobsługiwanego przez interfejs ABI urządzenia. |
Wydajność grafiki | Urządzenia wirtualne Nexus i Pixel korzystają z programowego renderowania grafiki. Aplikacje intensywnie korzystające z grafiki będą miały niższą wydajność. Jeśli Twoja aplikacja wymaga dużo grafiki, zamiast tego użyj modeli SmallPhone.arm i MediumPhone.arm lub urządzeń fizycznych. |
Nagrywanie ekranu | Nagrywanie ekranu na urządzeniach Nexus i Pixel to 1 klatka na sekundę. |
Graficzne interfejsy API | OpenGL ES 3.x nie jest obsługiwany na urządzeniach poniżej poziomu API 29. Nowsze urządzenia nie są w 100% kompatybilne z API OpenGL/Vulkan. Możesz zauważyć niewielkie różnice w grafice. |