OmniLab Android Test Station

OmniLab ATS to narzędzie do testowania, którego deweloperzy aplikacji na Androida i inżynierowie testów mogą używać do uruchamiania standardowych pakietów testów Androida, takich jak Android Compatibility Test Suite (CTS), za pomocą interfejsu użytkownika. To narzędzie działa jako interfejs internetowy dla różnych platform testowych, takich jak Trade Federation (TF) i Google Mobly, umożliwiając uruchamianie testów CTS i testów na wielu urządzeniach na zestawie urządzeń testowych przy minimalnej konfiguracji, a także ustalanie harmonogramu ciągłego przeprowadzania testów.

Wprowadzenie do OmniLab ATS 2.0

OmniLab ATS 2.0 przenosi podstawową infrastrukturę wykonywania testów z Trade Federation do OmniLab. Ta zmiana zapewnia bardziej niezawodny i wydajny backend, zachowując jednocześnie interfejs użytkownika i przepływy pracy OmniLab ATS 1.0.

Najważniejsze zalety OmniLab ATS 2.0:

  • Zmodernizowana infrastruktura: wykorzystuje platformę OmniLab, aby zapewnić lepszą stabilność i wydajność.
  • Płynne przejście: brak zmian w interfejsie internetowym i podstawowych procesach wykonywania testów.
  • Gotowość na przyszłość: zgodność ze zunifikowaną infrastrukturą testową Google, co umożliwia szybsze wdrażanie nowych funkcji.

OmniLab ATS 2.0 zawiera nowe funkcje, takie jak zbiorcze aktualizacje planu testów, zaawansowane przydzielanie urządzeń i inne. Informacje o aktualizacjach znajdziesz w informacjach o wersji.

Przejście na OmniLab ATS 2.0:

Aby korzystać z OmniLab ATS 2.0, musisz uaktualnić stację do kompilacji R52 lub nowszej. Użyj flagi --force_ats_version 2, aby przełączyć się na nową wersję Omnilab ATS 2.0, oraz flagi --force_update z poleceniem mtt start, aby uaktualnić do najnowszej kompilacji:

mtt start --force_ats_version 2 --force_update

W okresie migracji zalecamy używanie tagu dogfood, aby uzyskać dostęp do najnowszej stabilnej kompilacji z funkcjami OmniLab ATS 2.0:

mtt start --force_ats_version 2 --tag dogfood --force_update

W III kwartale 2026 r. planujemy ustawić OmniLab ATS 2.0 jako wersję domyślną. Planujemy wycofać OmniLab ATS 1.0 do końca 2026 r.

Więcej informacji o konkretnych aktualizacjach, znanych różnicach i wskazówkach dotyczących uaktualniania znajdziesz w przewodniku po uaktualnianiu OmniLab ATS 2.0.

Konfigurowanie OmniLab ATS

W tej sekcji opisano, jak zainstalować i skonfigurować OmniLab ATS.

OmniLab ATS używa kodu źródłowego z tych lokalizacji:

Instalowanie OmniLab ATS

Spełnij wszystkie wymagania sprzętowe i programowe dotyczące uruchamianych zestawów testów.

Wymagania dotyczące CTS znajdziesz na stronie source.android.com.

OmniLab ATS nie ma dodatkowych wymagań sprzętowych, ale zalecamy zacząć od wymagań dotyczących hosta CTS.

OmniLab ATS można zainstalować na 2 sposoby:

Instalowanie za pomocą programu instalacyjnego

Instalator jest obsługiwany w systemie Ubuntu 22.04 i nowszych. Instalator instaluje i konfiguruje wszystkie programy i zasoby potrzebne do uruchomienia OmniLab ATS.

Aby skorzystać z programu instalacji:

  1. Uruchom program instalacyjny:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. Uruchom polecenie mtt version, aby sprawdzić zainstalowaną wersję interfejsu wiersza poleceń OmniLab ATS.

Zainstaluj ręcznie

Zainstaluj Dockera
  1. Postępuj zgodnie z instrukcjami instalacji Docker Community Edition (CE) na komputerze z systemem Linux.

  2. Wykonaj czynności po instalacji, aby zarządzać Dockerem jako użytkownik inny niż root.

  3. Aby zmiany uprawnień zaczęły obowiązywać, może być konieczne ponowne uruchomienie okna terminala lub wylogowanie się i ponowne zalogowanie.

Instalowanie Pythona 3

Interfejs wiersza poleceń OmniLab ATS wymaga systemu Ubuntu w wersji 22.04 lub nowszej. Interfejs wiersza poleceń jest weryfikowany pod kątem wersji Pythona od 3.10 do 3.13.

Aby zainstalować Pythona 3, uruchom te polecenia:

sudo apt-get update
sudo apt install python3 python3-distutils

Jeśli potrzebujesz wersji Pythona 3, która nie jest uwzględniona w standardowej dystrybucji, najpierw dodaj repozytorium Pythona 3, wykonując jedną z tych czynności:

  • Uruchom to polecenie:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • Skompiluj i zainstaluj repozytorium ze źródła.

Aby zainstalować konkretną wersję Pythona 3 (np. 3.10), uruchom te polecenia:

sudo apt-get update
sudo apt install python3.10 python3.10-distutils

Pobieranie interfejsu wiersza poleceń OmniLab ATS

Pobierz pakiet interfejsu wiersza poleceń (CLI) tutaj

Uruchamianie OmniLab ATS

Uruchom OmniLab ATS za pomocą tego polecenia:

mtt start

Pierwsze uruchomienie interfejsu może potrwać kilka minut. Interfejs wiersza poleceń wyświetla adres URL, który umożliwia dostęp do interfejsu w przeglądarce. Domyślny adres URL to localhost:8000. W razie potrzeby możesz zmienić domyślny port podczas uruchamiania za pomocą flagi --port.

Jeśli jest dostępna nowsza wersja, możesz zaktualizować aplikację do bieżącej wersji. Informacje o najnowszych wersjach znajdziesz w informacjach o wersji.

Aby zaktualizować do bieżącej wersji, uruchom:

mtt start --force_update

Aby zatrzymać aplikację, uruchom:

mtt stop

Aby wyświetlić listę innych poleceń, użyj:

mtt --help

Tworzenie kopii zapasowej bazy danych i jej przywracanie

Aby utworzyć kopię zapasową bazy danych OmniLab ATS, zatrzymaj aplikację i uruchom to polecenie, które utworzy kopię zapasową bieżącej bazy danych w pliku TAR o nazwie mtt-backup.tar w katalogu głównym:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."

Aby przywrócić, przed uruchomieniem aplikacji uruchom to polecenie:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"

Kreator konfiguracji

Po zainstalowaniu i pierwszym uruchomieniu OmniLab ATS kreator konfiguracji przeprowadzi Cię przez kilka kroków, które pomogą Ci dostosować narzędzie do Twojego środowiska. Wszystkie zmiany, które tu wprowadzisz, możesz później zmienić na stronie Ustawienia.

Przywracanie kopii zapasowej konfiguracji

Jeśli masz plik konfiguracji z kopią zapasową z innego hosta OmniLab ATS, możesz przesłać ten plik, aby skopiować wszystkie konfiguracje zmodyfikowane na tym hoście. Aby to zrobić, kliknij przycisk Prześlij plik.

Przywracanie kopii zapasowej konfiguracji

Rysunek 1. Przywracanie kopii zapasowej konfiguracji.

Ustawianie domyślnego konta usługi

Możesz ustawić konto usługi, którego OmniLab ATS będzie używać domyślnie podczas uzyskiwania dostępu do Twoich zasobów (np. Google Cloud Storage, Dysk Google). Aby uwierzytelnić konto usługi, kliknij Prześlij klucz konta usługi i wybierz plik klucza JSON konta usługi.

Ustaw konto usługi

Rysunek 2. Ustawianie konta usługi.

Po pomyślnym uwierzytelnieniu konta usługi adres e-mail konta pojawi się w prawym górnym rogu strony. Aby zmienić konto usługi, kliknij nazwę konta, usuń bieżące konto domyślne i prześlij nowy klucz konta usługi.

Zmień konto usługi

Rysunek 3. Zmienianie konta usługi.

Importowanie zbiorów konfiguracji

Zestaw konfiguracji to pakiet konfiguracji do uruchamiania zestawów testów, w tym powiązanych działań na urządzeniu i kanałów kompilacji. Zbiory konfiguracji są przechowywane w określonym zasobniku Google Cloud Storage (GCS). Po uwierzytelnieniu kanału kompilacji GCS za pomocą konta Google zobaczysz listę wszystkich dostępnych zestawów konfiguracji.

Wybierz zestawy konfiguracji, które chcesz dodać do hosta stacji testowej, i kliknij Importuj wybrane.

Importowanie zestawów konfiguracji

Rysunek 4. Importowanie zbioru konfiguracji.

Uwzględnij ustawienia Wi-Fi

Niektóre testy CTS wymagają połączenia urządzenia z hotspotem Wi-Fi. Aby wybrać sieć Wi-Fi, wpisz identyfikator SSID sieci Wi-Fi i opcjonalnie klucz PSK sieci Wi-Fi.

Ustawienia Wi-Fi

Rysunek 5. Ustawienia hotspotu Wi-Fi.

Po zakończeniu kreatora konfiguracji strona zostanie ponownie załadowana z zastosowanymi nowymi ustawieniami.

Połącz urządzenie

Aby używać urządzenia do testowania, musisz włączyć debugowanie USB. Aby włączyć debugowanie:

  1. Postępuj zgodnie z instrukcjami podanymi w artykule Włączanie opcji programisty i debugowania.

  2. Jeśli planujesz używać testowych kompilacji Androida z wstępnie załadowanymi niestandardowymi kluczami ADB, umieść niestandardowe pliki .adb_key w katalogu ~/.android/.

    Pliki są ładowane automatycznie i przekazywane do ADB, aby automatycznie włączyć debugowanie USB po zainstalowaniu obrazu na urządzeniach z tymi kompilacjami.

  3. Połącz urządzenie z maszyną hosta za pomocą kabla USB.

    Urządzenie pojawi się na karcie Urządzenia OmniLab ATS w ciągu minuty od odświeżenia interfejsu internetowego. Na tej karcie możesz też wyświetlić stan urządzeń.

    Połącz urządzenie

    Rysunek 6. Łączenie urządzenia.

Dostępne stany urządzeń:

  • Dostępne – urządzenie jest połączone i gotowe do przeprowadzenia testu.
  • Przydzielone – urządzenie jest połączone i przeprowadza test. Na każdym urządzeniu można uruchomić tylko 1 test naraz, więc urządzenie musi zakończyć bieżący test, zanim będzie można uruchomić nowy.

Uruchom test

Wybierz test

OmniLab ATS zawiera zestaw wstępnie dołączonych konfiguracji CTS. Aby uruchomić jeden z tych testów, otwórz kartę Zestawy testów i kliknij Uruchom test obok wybranego testu.

Wybierz test

Rysunek 7. Wybór testu.

Aby edytować lub dodać nowe testy, zapoznaj się z sekcją Dodawanie testów.

Konfigurowanie testu

Edytuj parametry, których chcesz użyć w tym konkretnym uruchomieniu testowym. Większość parametrów jest wstępnie wypełniana wartościami zdefiniowanymi w wybranej konfiguracji testu.

Ten krok można wykonać, używając wartości domyślnych, ale możesz zmienić dowolne parametry, takie jak Maksymalna liczba prób i Polecenie, aby dostosować je do swoich potrzeb.

Skonfiguruj test

Rysunek 8. Konfigurowanie testu.

Parametry testu:

  • Nazwa – nazwa zestawu testów, który chcesz uruchomić.
  • Liczba uruchomień – liczba uruchomień testu po zaplanowaniu. Uruchomienia testów są planowane za pomocą Trade Federation, który może uruchomić równolegle do 20 testów, jeśli jest taka możliwość.
  • Maksymalna liczba ponownych prób – maksymalna liczba ponownych prób wykonania testu, jeśli co najmniej 1 test się nie powiedzie. Zwykle ustawia się 4–6 ponownych prób w przypadku pełnego uruchomienia CTS, aby obsłużyć testy z niepewnym wynikiem.
  • Przekroczenie limitu czasu oczekiwania w kolejce – jeśli test pozostaje w stanie W kolejce zbyt długo, jest automatycznie anulowany. Określ czas oczekiwania przed anulowaniem. Wartość domyślna to 24 godziny.
  • Polecenie – polecenie uruchamiające zestaw testów. Tutaj możesz wpisać dodatkowe argumenty wiersza poleceń. Na przykład uruchom konkretny moduł w CTS 8.1 za pomocą polecenia:

    cts-suite -m ShortModuleName
    
  • Polecenie ponownej próby – polecenie ponownego uruchomienia zestawu testów. Tutaj możesz dodać dodatkowe argumenty wiersza poleceń. Aby na przykład ponowić próbę tylko w przypadku konkretnego modułu w CTS 8.1, użyj:

    cts --retry 0 -m ShortModuleName
    

    Argumenty ponownej próby mogą się różnić od tych dostępnych w przypadku początkowego polecenia, dlatego sprawdź obsługiwane parametry na oficjalnej stronie wybranego zestawu testów.

  • Poprzedni test – jeśli chcesz ponownie uruchomić poprzedni test:

    • Lokalny – jeśli uruchomienie zostało rozpoczęte na bieżącym hoście, wpisz identyfikator uruchomienia testu widoczny podczas wyświetlania szczegółów uruchomienia testu.

      Poprzedni test lokalny

      Rysunek 9. Lokalny poprzedni test.

    • Zdalnie – jeśli uruchomienie zostało rozpoczęte na innym hoście, prześlij plik z wynikami testu, wybierając Zdalnie, klikając Prześlij plik z wynikami testu i wybierając plik z pamięci lokalnej.

      Usuń poprzednie uruchomienie testowe

      Rysunek 10. Usuń poprzedni test.

wybranych urządzeń

Zaznacz pola wyboru, aby wybrać urządzenia, które chcesz przydzielić do uruchomienia pakietu testów. Liczba fragmentów powinna automatycznie zmienić się, aby odpowiadać liczbie wybranych urządzeń.

Wybierz urządzenia

Rysunek 11. Wybieram urządzenia.

Aby wybrać urządzenia według atrybutów innych niż numery seryjne, możesz ręcznie wpisać „Specyfikacje urządzenia”. Aby na przykład wybrać 3 urządzenia o nazwie produktu „bramble”, wpisz:

product:bramble;product:bramble;product:bramble

Obsługiwane atrybuty:

  • build_id
  • device_serial
  • device_type
  • nazwa hosta
  • produkt
  • product_variant
  • sim_state

Aby można było wykonać test, wszystkie wybrane urządzenia muszą być w stanie Dostępne. Po wykonaniu testu wszystkie urządzenia przełączą się w stan Przydzielone. Test jest w stanie W kolejce, gdy czeka na dostępność urządzeń.

Dodawanie działań na urządzeniu

Działania na urządzeniu to skrypty, które można wykonywać przed każdym uruchomieniem testu. Niektóre działania na urządzeniu, takie jak flashowanie i ponowne uruchamianie, są już skonfigurowane. Aby dowiedzieć się, jak tworzyć nowe działania na urządzeniu, przeczytaj artykuł Tworzenie nowego działania na urządzeniu.

Czynności na urządzeniu

Rysunek 12. Działania na urządzeniu.

Aby dodać działanie na urządzeniu do testu, kliknij Dodaj nowe działanie, zaznacz pola wyboru obok działań, które chcesz dodać, i kliknij Dodaj działania. Działania na urządzeniu są wykonywane sekwencyjnie. Możesz zmienić kolejność działań, przeciągając je.

Dodaj działania

Rysunek 13. Zmieniam kolejność działań.

Ustawianie zasobów testowych

Zasoby testowe to pliki wymagane do wykonania testu. Na przykład uruchomienie CTS wymaga pliku android-cts*.zip, a flashowanie urządzenia wymaga podania obrazu kompilacji.

Adres URL do pobrania pliku ZIP zestawu testów powinien domyślnie prowadzić do linków na Dysku Google udostępnionych partnerom. Możesz wybrać inny plik, klikając Przeglądaj. W wyskakującym okienku możesz wpisać link pobierania pliku, użyć pliku z uwierzytelnionego kanału kompilacji lub przesłać plik z pamięci lokalnej.

Zasoby testowe

Rysunek 14. Zasoby testowe.

Poniżej znajduje się wyskakujące okienko, w którym można wybrać zasób testowy według adresu URL. Możesz wpisać link do adresu URL pobierania i kliknąć przycisk Wybierz, aby potwierdzić wybór.

Selektor zasobów testowych – adres URL

Rysunek 15. Selektor zasobów testowych – adres URL.

Jeśli masz zasoby przesłane na Dysk Google, do Google Cloud Storage (GCS) lub innych kanałów, możesz też przejść na kartę konkretnego kanału i tam wybrać zasoby. Oto przykład wybierania zasobu z Dysku Google.

Selektor zasobów testowych – Dysk Google

Rysunek 16. Selektor zasobów testowych – Dysk Google.

Oprócz wybierania plików w polu Nazwa pliku można też używać symboli wieloznacznych. Dokumentację znajdziesz tutaj.

Selektor zasobów testowych – obsługa wzorców z symbolami wieloznacznymi

Rysunek 17. Selektor zasobów testowych – obsługa wzorców z symbolami wieloznacznymi.

Możesz też wybrać plik z lokalnej pamięci OmniLab ATS. Możesz przesyłać pliki do tego miejsca na dane lub bezpośrednio używać plików i katalogów lokalnych.

Selektor zasobów testowych – lokalny magazyn plików

Rysunek 18. Selektor zasobów testowych – lokalny magazyn plików.

Dodaj konfiguracje ponownego uruchamiania

Możesz zaplanować ponowne uruchomienia, które rozpoczną się po zakończeniu głównego uruchomienia i wczytaniu jego wyników, ale mogą używać innego urządzenia, działań lub zasobów.

Dodaj konfiguracje ponownego uruchamiania

Rysunek 19. Dodaję konfiguracje ponownego uruchomienia.

Rozpocznij test

Po wpisaniu informacji potrzebnych do uruchomienia testu kliknij Uruchom test. Jeśli wszystkie informacje są prawidłowe, rozpocznie się test, a Ty przekierujemy Cię na stronę, na której możesz wyświetlić szczegóły i postęp testu.

Rozpocznij test

Rysunek 20. Rozpoczynanie testu.

Tworzenie planu testów

Plany testów służą do tworzenia uruchomień testów zgodnie z harmonogramem okresowym. Na przykład uruchamianie CTS 9.0 codziennie o 17:00. Aby utworzyć nowy plan testów, kliknij Utwórz nowy plan testów.

Utwórz plan testów

Rysunek 21. Tworzenie planu testów.

Konfigurowanie planu testów

Wpisz nazwę planu testów i dodaj etykiety. Następnie wybierz harmonogram, którego chcesz użyć.

  • Ręcznie – plan testów tworzy uruchomienia testów tylko wtedy, gdy użytkownik kliknie Uruchom plan testów na stronie z listą planów testów.
  • Okresowo – plan testów automatycznie planuje uruchomienia testów zgodnie z wybranym harmonogramem okresowym. Możesz na przykład zaplanować test codziennie o 17:00.
  • Niestandardowy – plan testów automatycznie planuje uruchomienia testów na podstawie wpisanego wyrażenia cron. Jeśli na przykład chcesz zaplanować test codziennie o 17:00, wyrażenie cron będzie wyglądać tak: 0 17 * * *.

Konfigurowanie planu testów

Rysunek 22. Konfigurowanie planu testów.

Dodawanie zestawów testów

Dodaj zestawy testów, które chcesz zaplanować w ramach planu testów, klikając + Dodaj konfigurację uruchomienia testu. Wybierz zestaw testów z menu Nazwa i kliknij Następny krok. Następnie wybierz urządzenia, na których chcesz przeprowadzić test, i kliknij Dodaj konfigurację. Do każdego planu testów możesz dodać wiele konfiguracji.

Skonfiguruj test

Rysunek 23. Konfigurowanie testu.

Dodawanie działań na urządzeniu

Dodaj działania na urządzeniu, które mają być wykonywane przed każdym uruchomieniem testu. Więcej informacji znajdziesz w sekcji Dodawanie działań na urządzeniu.

Dodawanie działań na urządzeniu

Rysunek 24. Dodawanie działań na urządzeniu.

Ustawianie zasobów testowych

Dodawanie zasobów testowych do planów testów przebiega tak samo jak dodawanie ich do poszczególnych uruchomień testów. Więcej informacji znajdziesz w artykule Konfigurowanie zasobów testowych.

Ustaw zasoby testowe

Rysunek 25. Konfigurowanie zasobów testowych.

Wyświetlanie uruchomień testowych

Lista uruchomień testowych

Listę zaplanowanych testów możesz wyświetlić na stronie Testy. Kliknij Wyświetl, aby zobaczyć więcej szczegółów o uruchomieniu testowym.

Możesz też przefiltrować listę, wpisując ciąg znaków na pasku filtrowania i naciskając klawisz Enter. Możesz użyć kilku filtrów, oddzielając je przecinkami. Filtr zwraca wszystkie wiersze, które zawierają dokładnie ten tekst (bez dopasowywania podłańcuchów) w dowolnej kolumnie z wyjątkiem Stan i Utworzono.

Pusty filtr zwraca wszystkie wiersze. Obecnie nie ma możliwości filtrowania wierszy z pustymi wartościami.

Lista uruchomień testowych

Rysunek 26. Lista uruchomień testowych.

Szczegóły uruchomienia testowego

Tutaj możesz wyświetlić szczegóły uruchomienia testu, takie jak stan, logi i wyniki.

Szczegóły uruchomienia testu

Rysunek 27. Szczegóły uruchomienia testu.

Stan uruchomienia testowego

Postęp testu jest widoczny w sekcji Stan. Jeśli jest powiązana wiadomość, np. postęp pobierania, powód anulowania lub komunikat o błędzie, również zostanie ona wyświetlona.

Stan uruchomienia testowego

Rysunek 28. Stan uruchomienia testowego.

Stany uruchomienia testu to:

  • Oczekujące – wymagane zasoby są pobierane.
  • W kolejce – test jest gotowy do uruchomienia, gdy urządzenie będzie dostępne.
  • Running (W toku) – test jest wykonywany na przydzielonym urządzeniu.
  • Ukończono – test został zakończony i wyświetlił wyniki.
  • Anulowano – test został anulowany przez użytkownika lub upłynął limit czasu podczas próby znalezienia dostępnych urządzeń.
  • Błąd – wystąpił błąd, który uniemożliwił przeprowadzenie testu.

Anulowanie testu

Jeśli test nie został jeszcze zakończony, możesz go anulować, klikając Anuluj, a następnie Tak w oknie potwierdzenia. Uruchomienia testów są też automatycznie anulowane, jeśli pozostają w stanie W kolejce dłużej niż wartość pola queue_timeout_seconds. Anulowanie testu w stanie Uruchomiony może potrwać kilka minut.

Anuluj uruchomienie testu

Rysunek 29. Anulowanie testu.

Wyniki testu

Po zakończeniu testu wyniki są zbierane i wyświetlane. Aby wyświetlić dodatkowe informacje, kliknij strzałkę przy każdym uruchomieniu. Kliknij Wyświetl pliki wyjściowe, aby zobaczyć zebrane artefakty testu, takie jak test_result.xml i test_result_failures.html.

Wyniki testu

Rysunek 30. Wyniki testu.

Na karcie Logi możesz wyświetlać logi hosta i Tradefed na żywo.

Logi uruchomienia testowego

Rysunek 31. Karta Logi.

Wyniki poszczególnych modułów znajdują się na karcie Wyniki testów.

Karta Wyniki testów

Rysunek 32. Karta Wyniki testu.

Pliki używane jako zasoby testowe możesz pobrać, klikając Otwórz na karcie Zasoby testowe.

Karta Zasoby testowe

Rysunek 33. Karta Zasoby testowe.

Aby wyświetlić szczegóły testu, takie jak create_time, otwórz kartę Konfiguracja.

Karta Konfiguracja testu

Rysunek 34. Karta Konfiguracja.

Funkcje zaawansowane

Zarządzanie plikami konfiguracji

OmniLab ATS używa plików konfiguracji zapisanych w formacie YAML do wczytywania wstępnie zdefiniowanych opcji, takich jak testy, kanały kompilacji i działania na urządzeniu. Oto przykładowy plik konfiguracji:

// example_file.yaml
tests:
- id : android.cts.9_0.arm
  name: CTS 9.0 (ARM)
  test_resource_defs:
  - name: android-cts.zip
    default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
    test_resource_type: TEST_PACKAGE
  command: cts
  env_vars:
  - name: TF_PATH
    value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
  - name: LD_LIBRARY_PATH
    value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
  setup_scripts:
  output_file_patterns:
  - android-cts/logs/latest/.*
  - android-cts/results/latest/.*\.html
  - android-cts/results/latest/compatibility_result\..*
  - android-cts/results/latest/logo.png
  - android-cts/results/latest/test_result.xml
  result_file: test_result.xml
  java_properties:
  - name: CTS_ROOT
    value: ${TF_WORK_DIR}
  context_file_dir: android-cts/results/
  context_file_pattern: '[\d_\.]+\.zip'
  retry_command_line: retry --retry 0
  runner_sharding_args: --shard-count ${TF_SHARD_COUNT}

build_channels:
- id: google_drive
  name: Google Drive
  provider_name: Google Drive

device_actions:
- id: flash
  name: Flash
  test_resource_defs:
  - name: bootloader.img
    test_resource_type: DEVICE_IMAGE
  - name: radio.img
    test_resource_type: DEVICE_IMAGE
  - name: img.zip
    test_resource_type: DEVICE_IMAGE
  tradefed_target_preparers:
  - class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
    option_values:
    - name: work-dir
      values:
      - ${TF_WORK_DIR}
    - name: host-setup-command
      values:
      - adb -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL flash bootloader bootloader.img
      - fastboot -s $SERIAL flash radio radio.img
      - fastboot -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL -w update img.zip
      - adb -s $SERIAL wait-for-device
    - name: host-cmd-timeout
      values:
      - 10m

Po skonfigurowaniu instancji OmniLab ATS możesz udostępnić konfigurację innym użytkownikom, eksportując ją jako plik. Aby to zrobić, otwórz stronę Ustawienia i w prawym górnym rogu kliknij Eksportuj.

Zarządzanie plikami konfiguracji

Rysunek 35. Zarządzanie plikami konfiguracji.

Po pobraniu pliku konfiguracji udostępnij go innym użytkownikom. Może dodać plik konfiguracji do instancji OmniLab ATS, klikając Import (Importuj) i wybierając plik konfiguracji.

Tworzenie nowego działania na urządzeniu

Działania na urządzeniu służą do automatyzacji procesu konfiguracji urządzenia. Działania to skrypty wykonywane na każdym urządzeniu, na którym jest uruchamiany test, przed każdym uruchomieniem testu, w tym przed ponownymi próbami. Aby wyświetlić listę dostępnych działań na urządzeniu, otwórz stronę Ustawienia i kliknij kartę Działania na urządzeniu. Niektóre działania na urządzeniu są już skonfigurowane, np. ponowne uruchamianie i flashowanie.

Karta Czynności na urządzeniu

Rysunek 36. Karta Działania na urządzeniu.

Dodawanie nowego działania na urządzeniu

  1. Kliknij Nowe działanie na urządzeniu.

    Przycisk polecenia nowego urządzenia

    Rysunek 37. Przycisk polecenia na nowym urządzeniu.

  2. Wpisz jej nazwę i opis.

    Nazwa działania na urządzeniu

    Rysunek 38. Nazwa działania na urządzeniu.

  3. Kliknij Dodaj osobę przygotowującą dane docelowe.

  4. Wpisz pełną nazwę klasy przygotowującej środowisko docelowe Trade Federation, na przykład com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

    Dodaj osobę przygotowującą cel

    Rysunek 39. Dodaję moduł przygotowujący środowisko docelowe.

    Listę dostępnych modułów przygotowujących środowisko docelowe znajdziesz w dokumentacji com.android.tradefed.targetprep.

    Lista osób przygotowujących dane docelowe

    Rysunek 40. Lista osób przygotowujących dane docelowe.

  5. Dodaj opcje, których chcesz używać z przygotowaniem celu. Aby wyświetlić dostępne opcje, sprawdź targetprep pod kątem kodu źródłowego każdego modułu przygotowującego środowisko docelowe w AOSP:

    Przykład opcji działania

    Rysunek 41. Przykład opcji działania.

  6. Aby dodać opcję, kliknij Dodaj opcję przygotowania celu i wpisz wymagane wartości.

    Przykład polecenia działania

    Rysunek 42. Przykładowe polecenie działania.

  7. Zdefiniuj zasoby testowe potrzebne do wykonania działania na urządzeniu, np. obrazy kompilacji do flashowania. Aby dodać definicję zasobu, kliknij Dodaj zasób testowy i wypełnij wymagane pola. Jeśli wiesz, gdzie znajdują się Twoje pliki, możesz podać domyślny URL pobierania, klikając Przeglądaj. Jeśli docelowe moduły przygotowujące akceptują katalog jako zasób testowy, wybierz Dekompresuj. Następnie określ względny katalog docelowy w tymczasowym katalogu roboczym oraz nazwy plików, które mają zostać zdekompresowane. Jeśli nie podasz nazw plików, wszystkie pliki zostaną zdekompresowane z zasobu testowego.

    Zasoby do testowania działań

    Rysunek 43. Zasoby testowe działania.

  8. Kliknij Aktualizuj.

    Działanie Zapisz zmiany

    Rysunek 44. Działanie: zapisanie zmian.

Zarządzanie testami

Edytowanie testu

Aby edytować zapisany test, otwórz stronę Testy i kliknij Edytuj w wierszu testu, który chcesz zmodyfikować. Po zmianie konfiguracji testu kliknij Aktualizuj.

Edytowanie testu

Rysunek 45. Edytowanie testu.

Dodaj nowy test

Aby dodać nowy test, otwórz stronę Testy i kliknij Utwórz nowy test. Wpisz odpowiednie informacje i kliknij Utwórz.

Tworzenie testu

Rysunek 46. Tworzenie testu.

Kopiowanie testu

Rysunek 47. Kopiowanie testu.

Eksportowanie konfiguracji hostów

Po skonfigurowaniu hosta możesz wyeksportować jego konfiguracje do pliku. Możesz przesłać ten plik na inne hosty, aby skopiować zapisane konfiguracje.

Aby wyeksportować konfiguracje hosta, otwórz stronę Ustawienia i w prawym górnym rogu kliknij Eksportuj.

Eksportuję konfiguracje hostów

Rysunek 48. Eksportowanie konfiguracji hosta.

Aby zaimportować plik konfiguracji hosta, otwórz stronę Ustawienia i w prawym górnym rogu kliknij Importuj.

Importowanie konfiguracji hostów

Rysunek 49. Importowanie konfiguracji hosta.

Używanie lokalnych plików i katalogów

Od wersji R11 pliki w katalogu $HOME/.ats_storage są automatycznie dostępne w OmniLab ATS. Skopiuj lub przenieś plik do tego katalogu, a następnie wybierz go na karcie Plik lokalny podczas planowania uruchomienia testu.

cp /path/to/file $HOME/.ats_storage

Wybór pliku lokalnego

Rysunek 50. Wybieram plik z katalogu $HOME/.ats_storage.

Możesz podłączyć dodatkowe katalogi do lokalnego magazynu plików za pomocą flagi --mount_local_path.

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

Dodatkowe podłączone katalogi

Rysunek 51. Dodatkowe katalogi zamontowane w lokalnym magazynie plików.

Włączanie trybu wielu gospodarzy

W trybie wielu hostów użytkownicy mogą używać jednego hosta kontrolera ATS do zarządzania urządzeniami i testami na wielu hostach instancji roboczych ATS.

Architektura trybu wielu hostów

Rysunek 52. Architektura trybu wielu hostów.

  1. Aby uruchomić kontroler ATS, użyj tego polecenia:

    mtt start --operation_mode=ON_PREMISE
    
  2. Sprawdź, czy kontroler jest dostępny pod adresem http://${CONTROLLER_HOSTNAME}:8000.

  3. Aby uruchomić instancje robocze, użyj tego polecenia:

    mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
    

Jeśli Twoja sieć nie zezwala hostom na komunikowanie się ze sobą, musisz postępować zgodnie z bardziej zaawansowanymi instrukcjami konfiguracji poniżej dotyczącymi instancji roboczej ATS.

  1. Połącz oba hosty za pomocą tuneli SSH. Wybierz porty dla serwera głównego i serwera plików, na przykład 9000 i 9006.

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. Skonfiguruj i uruchom ATS.

    DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
    socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
    socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
    mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \
                    --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \
                    --operation_mode=ON_PREMISE
    

Narzędzie do czyszczenia plików

Narzędzie do czyszczenia plików to zadanie cron, które jest uruchamiane co godzinę, aby czyścić pliki na podstawie konfiguracji zdefiniowanych przez użytkownika. ATS ma 2 domyślne konfiguracje do archiwizowania wyników testów i usuwania plików tymczasowych. Z tego przewodnika dowiesz się, jak dostosować zasady i konfiguracje, aby skutecznie zarządzać plikami.

Zasady

Zasada określa operację, która ma zostać wykonana na plikach lub katalogach, oraz kryteria wyboru celów. Dostępne operacje są widoczne w tabeli:

Typ operacjiParametry
ARCHIVEremove_file: jeśli true, usuń plik po zarchiwizowaniu.
DELETE

Kryteria są oparte na atrybutach plików i informacjach systemowych. Dostępne kryteria są widoczne w tabeli:

Typ kryteriumOpisParametry
LAST_MODIFIED_TIMEFiltruj pliki na podstawie daty i godziny ostatniej modyfikacji.ttl: obsługiwane są różne rodzaje wyrażeń czasowych, np. 10m, 2h, 7 days, 4w. Obsługiwane formaty znajdziesz w artykule pytimeparse.
LAST_ACCESS_TIMEFiltruj pliki na podstawie daty i godziny ostatniego dostępu.Takie same jak LAST_MODIFIED_TIME.
NAME_MATCHFiltruj pliki na podstawie ich nazwy za pomocą wyrażenia regularnego.pattern: wyrażenie regularne, np. [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip, aby dopasować kody pocztowe.
SYSTEM_AVAILABLE_SPACEwykonywać działania na podstawie dostępnego miejsca w systemie;threshold: wywołaj działanie, gdy ilość dostępnego miejsca spadnie poniżej progu, np. 200(B), 200KB, 200MB, 200GB, 2TB.

Nowa zasada dotycząca czyszczenia plików

Rysunek 53. Dodaj nową zasadę czyszczenia plików.

Konfiguracje

Konfiguracja łączy co najmniej 1 zasadę z określonymi katalogami. Pliki i katalogi w określonych katalogach są przetwarzane na podstawie zdefiniowanych zasad. Zasady są stosowane w kolejności, w jakiej występują w konfiguracji.

Wszystkie katalogi docelowe muszą znajdować się w katalogu /data. Jeśli w konfiguracji katalog docelowy jest określony jako logs, jest on interpretowany jako /data/logs.

Edytuj konfigurację czyszczenia plików

Rysunek 54. Edytuj konfigurację narzędzia do czyszczenia plików.

Resetuj

Kliknięcie Resetuj ustawienia przywraca domyślny stan konfiguracji narzędzia do czyszczenia plików. To działanie spowoduje usunięcie WSZYSTKICH elementów niestandardowych.

Resetowanie ustawień czyszczenia plików

Rysunek 55. Zresetuj ustawienia czyszczenia plików.

Pomoc

Raporty o błędach

Twoja opinia o OmniLab ATS pomoże nam ulepszyć to narzędzie. Szczegółowe informacje o najnowszej wersji znajdziesz w informacjach o wersji OmniLab ATS. Aby zgłosić błędy lub przesłać sugestie, prześlij raport o błędzie. Partnerzy powinni zgłaszać błędy i sugestie za pomocą kanałów partnerskich.