Na tej stronie dowiesz się, jak skonfigurować testy ACTS.
Źródła konfiguracji
Android Comms Test Suite (ACTS) ma 3 główne źródła konfiguracji:
- Interfejs wiersza poleceń (CLI)
- Plik konfiguracyjny ACTS
- Zmienne środowiskowe
Wartości z tych źródeł są łączone w jedną konfigurację, która służy do przeprowadzania testu ACTS. Jeśli wartości są określone w wielu lokalizacjach, są one zastępowane zgodnie z powyższą kolejnością (gdzie interfejs wiersza poleceń ma pierwszeństwo).
Uwaga na temat zmiennych środowiskowych
Zachowaj ostrożność podczas korzystania ze zmiennych środowiskowych w testach ACTS. Te wartości są najmniej widoczne dla użytkownika i nie są zalecane poza stacją roboczą dewelopera. Zmienne środowiskowe są wyłączone podczas zautomatyzowanych testów ATS, aby zapobiec zatruciu środowiska.
Wymagane zmienne konfiguracji
Każdy test ACTS wymaga ustawienia tych zmiennych.
Ścieżki testów ACTS
ACTS działa z 1 głównej lokalizacji wejścia. W efekcie lokalizacja ścieżki testu jest dla niego nieznana.
Ustaw lokalizację ścieżki testowej za pomocą zmiennej środowiskowej ACTS_TESTPATH
lub flagi -tp
/--testpaths
w wierszu poleceń. Wartością może być lista katalogów.
Zajęcia testowe ACTS
Zespół ACTS musi wiedzieć, jakie klasy testowe mają uruchomić. Może to być wyrażenie regularne lub lista nazw klas testowych.
Aby ustawić tę wartość, użyj flagi -tc
/--test_class
w wierszu poleceń. Pamiętaj, że ta flaga akceptuje też listę nazw klas. Nazwy klas muszą być zgodne z odpowiadającymi im nazwami plików. Na przykład SampleTest
musi znajdować się w elemencie SampleTest.py
.
Ścieżka logu ACTS
ACTS muszą mieć lokalizację, aby zapisywać logi w innej usłudze niż STDOUT. ACTS zapisuje pełne logi debugowania, które zawierają dane, które pomagają ustalić, dlaczego niektóre testy kończą się niepowodzeniem. Aby uniknąć bałaganu, ACTS nie zapisuje tych logów w STDOUT.
Aby ustawić ścieżkę logu, użyj zmiennej środowiskowej ACTS_LOGPATH
lub flagi -lp
/--logpath
w wierszu poleceń.
Ścieżka konfiguracji ACTS
Aby można było przeprowadzić test, zespół ACTS musi wiedzieć, jakie środowisko testowe istnieje. Konfiguracja ACTS zawiera wszystkie urządzenia w badaniu oraz wszelkie specjalne parametry testowe lub środowiskowe, które mogą być potrzebne. Ustaw tę wartość w wierszu poleceń za pomocą -c
/--config
.
Jeśli w konfiguracji jest wiele stanowisk testowych, ACTS uruchomi testy dla każdego z nich. Aby uruchomić test tylko dla jednego stanowiska testowego na liście, użyj argumentu wiersza poleceń -tb/--testbed <NAME>
.
Przykład lokalnej stacji roboczej
Większość użytkowników ACTS tworzy aplikacje w jednej gałęzi repozytorium Androida i ma konfigurację podobną do tej:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'
# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Jeśli użytkownicy ACTS uruchamiają działania w wielu gałęziach, często uruchamiają ACTS z katalogu acts/framework
i używają ścieżki względnej w przypadku ACTS_TESTPATH
:
# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'
# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin
Skonfiguruj swoje łóżka testowe
Plik konfiguracyjny ACTS zawiera wszystkie informacje wymagane do przeprowadzania testów na urządzeniach sprzętowych:
{
"testbed": {
"my_testbed": {
"my_testbed_value": "value"
},
"another_testbed": {
"AndroidDevice": [
"53R147"
]
}
},
"user_parameter_1": "special environment value",
"user_parameter_2": "other special value"
}
Podstawową jednostką tej konfiguracji jest laboratorium testowe. W przykładowej konfiguracji powyżej obiekt my_testbed
jest tworzony z jedną wartością testowaną. Drugie stanowisko testowe (another_testbed
) ma specjalną konfigurację kontrolera, w której przechowywane są informacje dotyczące listy urządzeń z Androidem. Te urządzenia znajdują się na liście
urządzeń w kategorii self.android_devices
. Pamiętaj, że jeśli stanowisko testowe nie określa obiektu AndroidDevice
, wyjątek zostanie zgłoszony przez klasę testową oczekującą obiektu AndroidDevice
. Pełną listę obsługiwanych konfiguracji kontrolerów, które są dołączone do ACTS, znajdziesz na stronie /acts/framework/acts/controllers/
.
Wszystkie inne wartości (które nie są specjalnymi wartościami wymienionymi w sekcji powyżej) są przechowywane w funkcji self.user_params
jako słownik. To dobre miejsce do przechowywania informacji środowiskowych lub testowych, na przykład o tym, czy telefony znajdują się w środowisku danych z pomiarem użycia danych lub jak długo mają być zbierane dane na potrzeby testu.
Specjalne przypadki dotyczące urządzenia z Androidem
Aby ułatwić programowanie, gdy chcesz mieć kilka urządzeń o różnych właściwościach, AndroidDevice
ma kilka zastosowań specjalnych.
Format konfiguracji JSON
Wszystkie pary klucz-wartość w tym przykładzie JSON są ustawione na odpowiedni obiekt AndroidDevice
. Jeśli konfiguracja próbuje zastąpić parametr zdefiniowany w atrybucie AndroidDevice
, wywoływane jest żądanie ControllerError
.
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
Następnie w skrypcie testowym możesz użyć funkcji filtra, by pobrać właściwe urządzenie i uzyskać dostęp do dodatkowych parametrów z obiektu urządzenia:
def setup_class(self):
self.pub = next(filter(lambda ad: ad.label == 'publisher',
self.android_devices))
self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
self.android_devices))
Parametr opcjonalny
Jest to parametr opcjonalny:
adb_logcat_param
: ciąg znaków dołączany do poleceniaadb logcat
w celu zbierania logów adb. Domyślnie używana jestadb logcat -v threadtime -b all
. Jeśli jest ustawiona wartośćadb_logcat_param
, sekcja-b all
jest zastąpiona. Na przykład ustawienieadb_logcat_param
na-b radio
zmienia polecenie naadb logcat -v threadtime -b radio
.