Pakiet Android Comms Test Suite (ACTS) przeprowadza automatyczne testowanie stosów łączności, takich jak Wi-Fi, Bluetooth i usługi komórkowe. Narzędzie testujące wymaga adb . i Python, i można go znaleźć w tools/test/connectivity/acts
.
Na tej stronie opisano sposób uruchamiania podstawowych testów telefonii dostępnych w programie Android Open Source Project (AOSP) dla użytkownika posiadającego dwa telefony.
Warunki wstępne
Aby przeprowadzić testy telefonii ACTS, powinieneś mieć dostęp do pełnego repozytorium Androida i zainstalować kompilacje userdebug na urządzeniach, które chcesz przetestować.
Pobieranie repozytorium Androida
Postępuj zgodnie z instrukcjami w Pobieranie źródła , aby pobrać repozytorium Androida na komputer wyposażony w połączenie USB z urządzeniami, które chcesz przetestować.
- AOSP to wielogigabajtowa baza kodu, która stale się rozwija. Dostosuj odpowiednio swoje oczekiwania dotyczące czasu pobierania.
- Jeśli rozmiar maszyny jest ograniczony, dodaj
--depth=1
do poleceniarepo init
.
- Jeśli rozmiar maszyny jest ograniczony, dodaj
- Aby uzyskać przyszłe aktualizacje narzędzi ACTS, przejdź do katalogu głównego Androida:
- Użyj
repo sync tools/test/connectivity
- I
repo sync external/sl4a
- Użyj
Weryfikacja kompilacji userdebug na urządzeniach
Zainstaluj wersję Androida z debugowaniem użytkownika na swoich urządzeniach testowych.
- Zbuduj repozytorium, korzystając z instrukcji w części Budowanie systemu Android .
- Wykonaj flashowanie urządzenia w sposób opisany w rozdziale Flashowanie urządzenia .
- Polecenie
adb shell getprop ro.build.type
powinno zwrócićuserdebug
. - Jeśli
ro.build.type
nie jest dostępny, kompilacja userdebug umożliwia uruchomienie powłoki adb jako root (terminal#
).
- Polecenie
Budowa i instalacja SL4A
Aby zbudować i zainstalować warstwę skryptową dla systemu Android (SL4A), postępuj zgodnie z instrukcjami zawartymi w warstwie skryptowej dla systemu Android . Sekcja Domyślne dodawanie kompilacji SL4A do kompilacji Androida jest opcjonalna.
Po zbudowaniu SLA4 ostatni komunikat dziennika zawiera lokalizację pliku sl4a.apk
, który należy zainstalować na WSZYSTKICH urządzeniach. Oto przykład komunikatu dziennika:
Copy: out/target/path/to/sl4a.apk
Konfigurowanie urządzeń do testowania
Skonfiguruj urządzenia, korzystając z następujących wymagań kompilacji/narzędzi ACTS:
Jeśli klucze dostawcy ADB są niedostępne, dotknij wyskakującego okienka Zaufaj temu komputerowi na urządzeniu DUT, gdy się pojawi. Jeśli dostępne są klucze dostawcy ADB:
- Klucze i sterowniki dostawcy ADB muszą być unikalne dla testowanego urządzenia.
- Aby zawsze włączać debugowanie USB, klucze dostawcy ADB w drzewie źródłowym muszą zostać dodane do
~/.bashrc
(lub odpowiednika) przy użyciuexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
gdzie/path/to/directory
to w pełni kwalifikowaną ścieżkę na hoście. Aby rozwiązać problemy z ADB, zobacz Uruchamianie aplikacji na urządzeniu sprzętowym .
Zezwalaj na debugowanie USB: Po zainstalowaniu sterowników adb urządzenia adb mogą wywołać na urządzeniu monit o zezwolenie na debugowanie USB.
Zainstaluj
sl4a.apk
za pomocą$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk
Upewnij się, że telefony korzystają z połączenia USB 2.0 z serwerem testowym.
Testy te zależą od działających sieci komórkowych, dlatego należy wkładać karty SIM do telefonów i trzymać je w miejscu o dobrym zasięgu sieci komórkowej.
Dodaj wszystkie karty SIM do pliku
.json
zgodnie z opisem w sekcji Pisanie pliku konfiguracyjnego .
Konfigurowanie środowiska
Przed skonfigurowaniem środowiska sprawdź, czy zainstalowany jest język Python 3.4+.
Uruchomić:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler
Instalacja ACTSów
Uruchomić:
cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -
Aby zweryfikować instalację, uruchom act.py -h
, który wyświetli listę dostępnych poleceń.
Zapisywanie pliku konfiguracyjnego
Aby uruchomić testy, należy utworzyć plik z informacjami konfiguracyjnymi. Oto przykładowy plik .config
. Podobny plik jest dostępny w repozytorium Androida pod tools/test/connectivity/acts/framework/sample_config.json
. Zastąp XXXXXXX
numerami seryjnymi urządzeń, aby zapewnić minimum informacji niezbędnych do przeprowadzenia testu telefonii przez usługę ACTS.
{
"_description": "Minimum Telephony Config",
"testbed":
[
{
"_description": "A testbed listing two AndroidDevices for adb.",
"name": "ExampleTestBed",
"AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
{"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
}
],
"logpath": "/path/to/logs",
"testpaths": "/path/to/android/repo/tools/test/connectivity",
"sim_conf_file": "/path/to/simcard_list.json"
}
Użyj klawiszy w tabeli, aby skonfigurować parametry testu. Aby uzyskać więcej informacji, zobacz Dodatkowe opcje konfiguracji .
Klucz | Wartość |
---|---|
_description | Skomentuj zawartość całego pliku konfiguracyjnego |
testbed | Specyfikacja środowiska, w którym można uruchamiać testy |
(testowane) _description | Skomentuj każde stanowisko testowe, ponieważ ACTS może być ukierunkowane na poszczególne stanowiska testowe |
(testowa) name | Nazwa środowiska testowego do wywoływania z wiersza poleceń |
(testowane) AndroidDevice | Lista konkretnych urządzeń, których dotyczy test Uwaga: na liście może znajdować się wiele urządzeń. Test, w którym telefony dzwonią do siebie, oczekuje, że będą dwa urządzenia, i kończy się niepowodzeniem, jeśli jest ich mniej. Jeśli na liście znajdują się dwa urządzenia, a test oczekuje tylko jednego, test zostanie uruchomiony na pierwszym urządzeniu. |
(testbed)(AndroidDevice) serial | Numer seryjny urządzenia (wydrukowany z adb devices ) |
(testowane) (urządzenie z Androidem) adb_logcat_param | Parametry przekazywane po wywołaniu adb logcat podczas testowania |
logpath | Lokalizacja na serwerze testowym, w której zapisywane są logi |
testpaths | Lokalizacja kodu przypadku testowego |
sim_conf_file | Lokalizacja pliku .json zawierającego listę dostępnych kart SIMLista kart SIM zawiera identyfikator karty, możliwości karty, operatora i numer telefonu. |
{
"sim-card-ID-here": {
"capability": [
"voice",
"ims",
"volte",
"vt",
"sms",
"tethering",
"data"
],
"operator": "tmo",
"phone_num": "12345678901"
},
...
}
Możesz pobrać numer telefonu z urządzenia w obszarze System > Informacje o telefonie . Identyfikator karty SIM jest zazwyczaj wydrukowany na karcie SIM lub jest dostępny na urządzeniu w obszarze System > Informacje o telefonie > Stan karty SIM . Ciąg operatora jest zdefiniowany w tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
, a następnie wyszukaj CARRIER_
.
Dodatkowe możliwości konfiguracji
Plik entries.py
znajdujący się pod tools/test/connectivity/acts/framework/acts/config/entries.py
w repozytorium Androida zawiera definicje głównych opcji konfiguracyjnych wiersza poleceń.
Parametry specyficzne dla testu można także znaleźć w kodzie, wyszukując self.user_params.get
.
Uruchamianie testów
Uruchom testy z wiersza poleceń po zapisaniu pliku konfiguracyjnego. Chociaż istnieje wiele opcji, najprostszą jest użycie -c filename.config -tc TestCase:name
. W tym przykładzie użyto pliku konfiguracyjnego o nazwie minimum.config
:
act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general
Pomyślne uruchomienie testu powinno zakończyć się następującym komunikatem wyjściowym:
INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0
Uruchamianie wielu testów
Aby uruchomić określone przypadki testowe w wielu plikach, utwórz plik testowy i przekaż go z flagą -tf
, jak pokazano w przykładowym zestawie testów regresyjnych poniżej.
TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g
TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g
TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g
W tym przykładowym poleceniu założono, że plik ma nazwę regression_suite.
act.py -c minimum.config -tf regression_suite
Wielokrotne przeprowadzanie testów
Aby wielokrotnie uruchomić przypadek testowy ( -tc
) lub plik testowy ( -tf
), dodaj -ti #
(iteracje testowe) do polecenia.