Android Comms Test Suite (ACTS) służy do automatycznego testowania stosów połączeń, takich jak Wi-Fi, Bluetooth czy usługi komórkowe. Narzędzie do testowania wymaga języków adb i Pythona. To narzędzie znajduje się w folderze tools/test/connectivity/acts
.
Na tej stronie dowiesz się, jak przeprowadzić podstawowe testy telefonii dostępne w ramach Android Open Source Project (AOSP) dla użytkownika z 2 telefonami.
Wymagania wstępne
Aby przeprowadzać testy połączeń telefonicznych ACTS, musisz mieć dostęp do pełnego repozytorium Androida i zainstalować kompilacje userdebug na urządzeniach, które chcesz testować.
Pobieranie repozytorium Androida
Wykonaj instrukcje opisane w artykule Pobieranie źródła, aby pobrać repozytorium Androida na komputerze wyposażonym w połączenie USB z urządzeniami, które chcesz przetestować.
- AOSP to wielogigabajtowa baza kodu, która wciąż się powiększa. Odpowiednio dostosuj czas pobierania.
- Jeśli rozmiar maszyny na danym komputerze jest ograniczony, dodaj do polecenia
repo init
--depth=1
.
- Jeśli rozmiar maszyny na danym komputerze jest ograniczony, dodaj do polecenia
- Aby w przyszłości otrzymywać informacje o narzędziach ACTS, przejdź do katalogu głównego Androida:
- Użyj konta
repo sync tools/test/connectivity
- i
repo sync external/sl4a
- Użyj konta
Weryfikowanie kompilacji debugowania użytkownika na urządzeniach
Zainstaluj na urządzeniach testowych wersję Androida do debugowania przez użytkowników.
- Skompiluj repozytorium, postępując zgodnie z instrukcjami w artykule na temat kompilacji Androida.
- Przeprowadź flashowanie urządzenia zgodnie z opisem w sekcji Tworzenie Flasha do urządzenia.
- Polecenie
adb shell getprop ro.build.type
powinno zwrócićuserdebug
. - Jeśli funkcja
ro.build.type
jest niedostępna, kompilacja userdebug umożliwia uruchomienie powłoki adb jako root (terminal#
).
- Polecenie
Tworzenie i instalowanie SL4A
Aby utworzyć i zainstalować warstwę skryptów na Androida (SL4A), postępuj zgodnie z instrukcjami w sekcji Warstwa skryptów na Androida. Sekcja Dodawanie domyślnie kompilacji SL4A do kompilacji Androida jest opcjonalna.
Po utworzeniu gwarancji jakości usług 4 ostatni komunikat logu zawiera lokalizację pliku sl4a.apk
, który musisz zainstalować na WSZYSTKICH urządzeniach. Oto przykładowy komunikat logu:
Copy: out/target/path/to/sl4a.apk
Skonfiguruj urządzenia do testowania
Skonfiguruj urządzenia, korzystając z tych wymagań dotyczących kompilacji/narzędzi ACTS:
Jeśli klucze dostawcy ADB są niedostępne, kliknij wyskakujące okienko Ufaj temu komputerowi w urządzeniu DUT, gdy się pojawi. Jeśli klucze dostawcy ADB są dostępne:
- Klucze i sterowniki dostawcy ADB muszą być unikalne w jednostce organizacyjnej DUT.
- Aby zawsze włączać debugowanie USB, klucze dostawcy ADB w drzewie źródłowym należy dodać do elementu
~/.bashrc
(lub jego odpowiednika) za pomocą poleceniaexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
, gdzie/path/to/directory
to w pełni kwalifikowana ścieżka na hoście. Informacje o rozwiązywaniu problemów z ADB znajdziesz w artykule Uruchamianie aplikacji na urządzeniu sprzętowym.
Zezwalaj na debugowanie USB: po zainstalowaniu sterowników adb urządzenia adb mogą wyświetlić na urządzeniu prośbę o umożliwienie debugowania USB.
Zainstaluj aplikację
sl4a.apk
za pomocą usługi$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk
Upewnij się, że telefony z serwerem testowym korzystają z połączenia USB 2.0.
Testy zależą od działających sieci komórkowych, więc włóż do telefonu karty SIM i trzymaj telefon w miejscu, w którym dostępna jest stabilna sieć komórkowa.
Dodaj wszystkie karty SIM do pliku JSON zgodnie z opisem w sekcji Zapisywanie pliku konfiguracyjnego.
Konfigurowanie środowiska
Przed skonfigurowaniem środowiska sprawdź, czy Python w wersji 3.4 lub nowszej jest zainstalowany.
Uruchom:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler
Zainstaluj ACTS
Uruchom:
cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -
Aby sprawdzić instalację, uruchom act.py -h
, aby wyświetlić listę dostępnych poleceń.
Zapisywanie pliku konfiguracyjnego
Aby przeprowadzać testy, musisz utworzyć plik z informacjami o konfiguracji. Oto przykładowy plik .config
. Podobny plik jest dostępny w repozytorium Androida w sekcji tools/test/connectivity/acts/framework/sample_config.json
. Zastąp XXXXXXX
numerami seryjnymi urządzeń, by podać minimalne informacje potrzebne do przeprowadzenia testu połączeń telefonicznych.
{
"_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 kluczy w tabeli, by skonfigurować parametry testowe. Więcej opcji znajdziesz w sekcji Dodatkowe opcje konfiguracji.
Klucz | Wartość |
---|---|
_description
|
Dodaj komentarz do zawartości całego pliku konfiguracyjnego |
testbed
|
Specyfikacja środowiska, w którym można przeprowadzać testy |
(testowane) _description
|
Dodaj komentarz do każdego testowanego miejsca, ponieważ zespół ATS może kierować je do poszczególnych testów |
(testowane) name
|
Nazwa stanowiska testowego na potrzeby wywoływania z wiersza poleceń |
(testowane) AndroidDevice
|
Lista urządzeń, na które kierowany jest test
Uwaga: na liście może być wiele urządzeń. Test, który uruchamia połączenia telefoniczne, zakłada, że będą 2 urządzenia. Jeśli ich liczba jest mniejsza, kończy się to niepowodzeniem. Jeśli na liście są 2 urządzenia, a test oczekuje tylko jednego, test jest przeprowadzany na pierwszym. |
(bazujące)(urządzenie z Androidem) serial
|
Numer seryjny urządzenia (wydrukowany z: adb devices )
|
(bazujące)(urządzenie z Androidem) adb_logcat_param
|
Parametry przekazywane po wywołaniu funkcji 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 z listą dostępnych kart SIM
Lista kart SIM zawiera identyfikator karty, funkcje 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 sekcji System > Informacje o telefonie.
Identyfikator karty SIM jest zwykle wydrukowany na karcie SIM lub jest dostępny na urządzeniu w sekcji System > Informacje o telefonie > Stan karty SIM. Ciąg operatora jest określony na stronie tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
, a następnie wyszukaj CARRIER_
.
Dodatkowe opcje konfiguracji
Plik entries.py
znajdujący się pod adresem tools/test/connectivity/acts/framework/acts/config/entries.py
w repozytorium Androida zawiera definicje głównych opcji konfiguracji wiersza poleceń.
Parametry dotyczące testów możesz też znaleźć w kodzie, wyszukując self.user_params.get
.
Przeprowadzanie testów
Uruchamiaj testy z poziomu wiersza poleceń po zapisaniu pliku konfiguracyjnego. Istnieje wiele opcji, ale najprostszym jest użycie funkcji -c filename.config -tc
TestCase:name
. W tym przykładzie używamy pliku konfiguracyjnego o nazwie minimum.config
:
act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general
Udany test powinien mieć ostateczny komunikat wyjściowy podobny do tego:
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
Przeprowadzanie wielu testów
Aby uruchomić konkretne przypadki testowe w kilku plikach, utwórz plik testowy i przekaż go z flagą -tf
, jak pokazano w przykładowym pakiecie testów regresji:
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 do polecenia -ti
#
(weryfikacje testowe).