Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Zacznij od testów oprzyrządowania

W tym przewodniku opisano, jak przygotować i uruchomić test oprzyrządowania za pomocą Laboratorium Firebase. Aby skorzystać z tego przewodnika, będziesz potrzebować testu oprzyrządowania (napisanego przez Ciebie lub Twój zespół), który korzysta z platform testowych Espresso lub UI Automator 2.0 dla systemu Android. Testy oprzyrządowania mogą trwać do 45 minut na urządzeniach fizycznych i do 60 minut na urządzeniach wirtualnych .

W kolejnych krokach prześlesz plik APK aplikacji i testowy do Firebase. Zobacz Testowanie aplikacji, aby dowiedzieć się więcej o tworzeniu testowego pakietu APK. Opcjonalnie możesz również pobrać przykładową aplikację NotePad .

Krok 1. (Opcjonalnie) Dodaj bibliotekę zrzutów ekranu do swojej aplikacji

Test Lab udostępnia bibliotekę zrzutów ekranu, która umożliwia wykonywanie zrzutów ekranu podczas uruchamiania testów oprzyrządowania w aplikacji. Po zakończeniu testu możesz wyświetlić zrzuty ekranu w Android Studio lub w konsoli Firebase.

Pamiętaj, że możliwość robienia zrzutów ekranu jest już włączona do testowego pakietu APK app-debug-test-unaligned.apk i przykładowej aplikacji Notatnik. Zrzuty ekranu są również automatycznie przechwytywane po uruchomieniu testu Robo .

  1. W Android Studio otwórz widok projektu i kliknij prawym przyciskiem myszy nazwę projektu. Następnie kliknij Nowy > Katalog .

  2. W oknie dialogowym Nowy katalog wpisz aars . Spowoduje to utworzenie katalogu aars w katalogu głównym projektu testowego (jako katalogu równorzędnego do folderu aplikacji ).

  3. Skopiuj cloudtestingscreenshotter_lib.aar i wklej go do folderu aars .

  4. W pliku build.gradle poziomie głównym (na poziomie projektu) aplikacji dodaj odwołanie do folderu aars w każdym bloku repositories :

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. W katalogu najwyższego poziomu modułu (dla przykładowej aplikacji NotePad jest to katalog app ), otwórz plik build.gradle i dodaj zależność do cloudtestingscreenshotter_lib.aar do bloku dependencies najwyższego poziomu:

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. W pliku AndroidManifest.xml określ uprawnienia systemowe aplikacji, dodając następujące wiersze w tagu <manifest> . Jeśli WRITE_EXTERNAL_STORAGE na Androidzie 10 (poziom API 29) lub nowszym , pomiń uprawnienie WRITE_EXTERNAL_STORAGE (Twoja aplikacja nie wymaga tego uprawnienia do odczytywania i zapisywania zrzutów ekranu na urządzeniu).

    <manifest ... >
       <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
       <uses-permission android:name="android.permission.INTERNET"/>
       ...
    </manifest>
    

W dowolnym momencie w teście, w którym chcesz zrobić zrzut ekranu, zadzwoń ScreenShotter.takeScreenshot metody z biblioteki cloudtestingscreenshotter_lib, gdzie pierwszy argument jest etykieta, która służy do identyfikacji screenshot ( main_screen_2 jest używana w poniższym przykładzie):

Jawa

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin+KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

Wyświetl swoje zrzuty ekranu

Jeśli używasz Android Studio do uruchomienia testu, po zakończeniu testu możesz porównać dowolne zrzuty ekranu wykonane podczas testu, wybierając element w drzewie wyników testu, a następnie klikając przycisk Wyświetl zrzuty ekranuZobacz zrzuty ekranu opcja.

Screenshot comparison screen

Możesz wybrać i porównać zrzuty ekranu z różnych konfiguracji w następujący sposób:

Zadanie Akcja
Przełączaj się między wykonaniami testów. Użyj menu rozwijanego w lewym górnym rogu.

menu przypadku testowego
Przełączaj się między zrzutami ekranu w ramach wykonywania testu. Użyj strzałek w prawym górnym rogu.

przełącznik zrzutów ekranu
Dodaj dodatkowe panele porównania zrzutów ekranu do bieżącego widoku. Kliknij Porównaj .

Porównać
Wybierz inny wymiar testowy (typ urządzenia, orientacja, lokalizacja itp.). Wybierz nowy element wymiaru z listy na dole zrzutu ekranu.

Krok 2. Włącz opcjonalne funkcje testowe

Możesz włączyć następujące funkcje w swoim teście przed uruchomieniem go w laboratorium testowym:

Włącz Orchestrator

Android Test Orchestrator to narzędzie, które niezależnie uruchamia każdy z testów oprzyrządowania aplikacji. Laboratorium testowe zawsze używa najnowszej wersji programu Orchestrator.

Aby włączyć program Orchestrator for Test Lab, w ustawieniach testu oprzyrządowania kliknij Opcje dodatkowe > Uruchom z programem Orchestrator .

Zalety i wady

  • Korzyść: brak wspólnego stanu. Każdy test jest uruchamiany we własnym wystąpieniu instrumentacji, więc stan udostępniony nie jest kumulowany między testami.
  • Korzyści: Pojedyncze awarie. Jeśli test ulegnie awarii, tylko to oprzyrządowanie zostanie zakończone, a inne testy w pakiecie nadal będą działać.
  • Wada: Dłuższe czasy pracy . Każdy test uruchamia własne wystąpienie oprzyrządowania, co oznacza, że ​​proces testowania trwa ogólnie nieco dłużej. Jeśli nie jest zaznaczone, wydłużone czasy działania mogą potencjalnie wpłynąć na wykorzystanie limitu lub naliczany czas i mogą spowodować przekroczenie limitów czasu urządzeń .

Włącz fragmentowanie

Fragmentowanie testów dzieli zestaw testów na podgrupy (odłamki), które są uruchamiane oddzielnie i oddzielnie. Test Lab automatycznie uruchamia każdy fragment równolegle na wielu urządzeniach i wykonuje cały zestaw testów w krótszym czasie.

Jak działa testowe sharding

Załóżmy, że tworzysz N odłamków. Dla każdego wybranego urządzenia Test Lab uruchamia N identycznych urządzeń i uruchamia podzbiór testów na każdym urządzeniu. Oznacza to, że przypadki testowe podzielone na fragmenty mogą skutkować wieloma wykonaniami testów na urządzenie, w przeciwieństwie do przypadków testowych niepodzielonych na fragmenty, które zawsze powodują wykonanie jednego testu na urządzenie (aby uzyskać szybki przegląd kluczowych pojęć w laboratorium testowym, zobacz Kluczowe pojęcia ).

Możesz włączyć testowe fragmentowanie w konsoli Firebase:

  1. W konfiguracji testu oprzyrządowania kliknij Opcje dodatkowe .

  2. W sekcji Sharding wprowadź liczbę fragmentów, które chcesz uruchomić.

Rozliczenia za odłamki testowe

Test Lab implementuje Twoje fragmenty, wykorzystując wbudowany mechanizm fragmentowania AndroidJUnitRunner. Aby uniknąć opłat za uruchamianie pustych fragmentów (odłamków bez przypisanych przypadków testowych), liczba utworzonych fragmentów powinna być mniejsza niż łączna liczba przypadków testowych. W zależności od czasu uruchomienia każdego przypadku testowego zazwyczaj dobrym pomysłem jest przypisanie 2-10 przypadków testowych na fragment.

Aby uzyskać więcej informacji na temat rozliczeń, przeczytaj Użycie, limity i rozliczenia .