Przeprowadzanie testów CTS

Trade Federation to platforma ciągłego testowania przeznaczona do przeprowadzania testów na urządzeniach z Androidem. Aby uruchomić Compatibility Test Suite (CTS), najpierw zapoznaj się z artykułem Omówienie platformy Trade Federation, w którym znajdziesz wyjaśnienie frameworku testów Tradefed.

Aby uruchomić testowany plan:

  1. Skonfiguruj urządzenia testowe zgodnie z konfiguracją urządzenia z Androidem.
  2. Upewnij się, że masz zainstalowane najnowsze wersje narzędzi Android Debug Bridge (adb) i Android Asset Packaging Tool (AAPT) oraz że dodałaś/dodałeś ich lokalizację do ścieżki systemowej komputera. Informacje o instalowaniu tych narzędzi znajdziesz w artykule Konfigurowanie CTS: ADB i AAPT.
  3. Pobierz kompilacje CTS na komputer hosta z systemem Linux i rozpakuj kompilację w miejscu hosta.
  4. Połącz co najmniej 1 urządzenie. Aby przygotować DUT:
    • Naciśnij przycisk Home, aby otworzyć ekran główny.
    • Nie używaj DUT do innych zadań.
    • Utrzymaj DUT w stanie nieruchomym, aby uniknąć aktywacji czujnika.
    • Skieruj aparat urządzenia na obiekt, który można ustawić w ognisku.
    • Podczas uruchamiania CTS nie naciskaj żadnych przycisków na urządzeniu. Naciśnięcie klawiszy lub dotknięcie ekranu badanego urządzenia zakłóca przeprowadzane testy i może spowodować ich niepowodzenie.
  5. Uruchom skrypt cts-tradefed konsoli CTS z folderu, w którym rozpakowano pakiet CTS. W powłoce wiersza poleceń hosta uruchom:

    ./android-cts/tools/cts-tradefed
  6. Uruchom domyślny plan testów (zawiera wszystkie pakiety testów):

    • CTS 11 lub starsza wersja
      cts-tradefed > run cts
    • W przypadku pakietu CTS 12 lub nowszego

      cts-console > run cts

    • Jeśli chcesz skrócić czas wykonywania testów, możesz przekazywać je na wiele urządzeń. Aby użyć funkcji dzielenia, host musi połączyć co najmniej 2 urządzenia, ale dla większej wydajności zalecamy użycie co najmniej 6 urządzeń. Gdy dzielisz więcej niż 1 urządzenie:

      • W przypadku Androida 9 lub nowszego użyj opcji wiersza poleceń.

        --shard-count number_of_shards
      • W przypadku Androida 8.1 lub starszych wersji użyj opcji polecenia.

        --shards number_of_shards
    • Jeśli nie chcesz uruchamiać całego zestawu testów, możesz uruchomić wybrany plan CTS z poziomu wiersza poleceń:

      run cts --plan test_plan_name

      Aby znaleźć nazwę planu testu:

      • Aby wyświetlić listę modułów testowych w Androidzie 7.0 lub nowszym, wpisz

        list modules
      • Aby wyświetlić listę planów testów w archiwum, w przypadku Androida 6.0 lub starszych wersji wpisz

        list plans
      • W przypadku Androida 6.0 lub starszego, aby wyświetlić listę pakietów testowych w archiwum, wpisz

        list packages
    • Aby uzyskać więcej informacji o dodatkowych opcjach poleceń w zależności od wersji CTS, zapoznaj się z przewodnikiem po poleceniach konsoli lub wybierz „Help all” (Pomoc wszystkim) w konsoli Tradefed.

  7. Przeprowadź kilka sesji ponownego próbowania, aż wszystkie moduły testowe zostaną ukończone i liczba błędów testu będzie taka sama w ostatnich 2 sesjach ponownego próbowania.

    • W przypadku Androida 9 lub nowszego użyj

      run retry --retry session_number --shard-count number_of_shards
    • W przypadku Androida 7.0–8.1 użyj

      run cts --retry session_number --shards number_of_shards
    • Aby uzyskać więcej opcji polecenia Retry w zależności od wersji CTS, zobacz konsolę poleceń CTS 2.

    • Szczegółowe informacje o wdrożeniu ponownego próbowania CTS znajdziesz w artykule Ponowne próbowanie w Trade Federation Suite.

  8. Uruchom sesję ponownego testowania tylko w przypadku nieudanych testów parametrycznych. Testy parametryczne, które zakończyły się powodzeniem, nie są ponownie wykonywane.

    • W przypadku Androida 11 i nowszych ta opcja jest domyślnie włączona w poleceniu run cts:

      run retry --retry  --new-parameterized-handling
  9. sprawdzać postępy testu i jego wyniki w konsoli;

Uruchomienie CTS za pomocą Android Test Station

Android Test Station to narzędzie do automatyzacji testów, którego deweloperzy i inżynierowie testów Androida mogą używać do uruchamiania standardowych zestawów testów za pomocą interfejsu użytkownika. Działa z pakietem testów zgodności Androida (Compatibility Test Suite).

Narzędzie jest publicznie dostępne w przewodniku użytkownika ATS, a jego kod jest udostępniony w AOSP (multitest_transport, tradefed_cluster).

Uruchamianie CTS w trybach alternatywnych

Wersja CTS 10 R4 zawiera plan testów dla urządzeń z trybami alternatywnymi lub z większą liczbą ekranów. Wykonaj plan testowania trybów alternatywnych za pomocą run cts-foldable.

Przypadki testowe, które zakończyły się powodzeniem lub niepowodzeniem w trybie alternatywnego ekranu, są dołączane z wartością z display_mode, np. testcase1[display_mode=0].

W CTS 13 interfejs DeviceStateManager API umożliwia uruchamianie modułów testowych z podawaną niżej opcją konfiguracji w różnych stanach składanego urządzenia. Testy są wykonywane automatycznie w CTS na podstawie stanów składania wyświetlacza zdefiniowanych na urządzeniu bez potrzeby uruchamiania planu testowego cts-foldable.

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

Testowanie na wielu urządzeniach w CTS

Android 13 i nowsze wersje obsługują testowanie na wielu urządzeniach. Testy, które wymagają wielu urządzeń, są automatycznie wykonywane podczas testu CTS. CTS 13 zawiera kilka testów na wielu urządzeniach, które są uruchamiane automatycznie podczas stosowania podziału. Testowanie nie wymaga wprowadzania dodatkowych zmian w konfiguracji fizycznej, ale aby testy przebiegały prawidłowo, musisz zainstalować virtualenv. Więcej informacji znajdziesz w artykule Testy na wielu urządzeniach.

Wykonywanie testów na wielu urządzeniach

Aby przeprowadzić testowanie na wielu urządzeniach niezależnie, użyj tego kodu:

  cts-tradefed > run cts-multidevice
  

Obsługiwane są wszystkie standardowe opcje. Aby kierować reklamy na określone urządzenia, dodaj --serial <serial1> --serial <serial2> i tak dalej, odpowiednio do liczby urządzeń, na które chcesz kierować reklamy.

Aby automatycznie uruchamiać testy na wielu urządzeniach, użyj podziału, jak w --shard-count 2.