Die Android Comms Test Suite (ACTS) führt automatisierte Tests von Verbindungsstacks wie WLAN, Bluetooth und Mobilfunkdiensten durch. Für das Testtool sind adb und Python erforderlich. Das Tool befindet sich unter tools/test/connectivity/acts
.
Auf dieser Seite wird beschrieben, wie Sie die grundlegenden Telefontests ausführen, die im Android Open Source Project (AOSP) für einen Nutzer mit zwei Smartphones verfügbar sind.
Voraussetzungen
Zum Ausführen von ACTS-Telefonietests sollten Sie Zugriff auf ein vollständiges Android-Repository haben und UserDebug-Builds auf den Geräten installieren, die Sie testen möchten.
Android-Repository herunterladen
Folgen Sie der Anleitung unter Quelle herunterladen, um ein Android-Repository auf einen Computer herunterzuladen, der eine USB-Verbindung zu den Geräten hat, die Sie testen möchten.
- AOSP ist eine Codebasis mit mehreren Gigabyte, die ständig wächst. Passen Sie Ihre Erwartungen an die Downloadzeiten entsprechend an.
- Wenn ein Gerät eine bestimmte Größe nicht überschreitet, fügen Sie dem Befehl
repo init
die Option--depth=1
hinzu.
- Wenn ein Gerät eine bestimmte Größe nicht überschreitet, fügen Sie dem Befehl
- Aktuelle Informationen zu ACTS-Tools finden Sie im Android-Stammverzeichnis:
repo sync tools/test/connectivity
verwenden- und
repo sync external/sl4a
Userdebug-Builds auf Geräten prüfen
Installieren Sie auf Ihren Testgeräten eine userdebug-Version von Android.
- Erstellen Sie das Repository gemäß der Anleitung unter Android erstellen.
- Flashen Sie das Gerät wie unter Geräte-Firmware aktualisieren beschrieben.
- Der Befehl
adb shell getprop ro.build.type
sollteuserdebug
zurückgeben. - Wenn
ro.build.type
nicht verfügbar ist, können Sie mit einem Userdebug-Build die adb-Shell als Root (Terminal#
) ausführen.
- Der Befehl
SL4A erstellen und installieren
Folgen Sie der Anleitung unter Scripting Layer for Android, um SL4A zu erstellen und zu installieren. Der Abschnitt SL4A-Builds standardmäßig zu Android-Builds hinzufügen ist optional.
Nach dem Erstellen von SLA4 enthält die letzte Protokollmeldung den Speicherort der Datei sl4a.apk
, die Sie auf ALLEN Geräten installieren müssen. Hier ein Beispiel für eine Protokollmeldung:
Copy: out/target/path/to/sl4a.apk
Testgeräte konfigurieren
Konfigurieren Sie die Geräte mithilfe dieser ACTS-Build-/Toolanforderungen:
Wenn keine ADB-Anbieterschlüssel verfügbar sind, tippen Sie auf dem DUT auf das Pop-up Diesen Computer vertrauen, wenn es angezeigt wird. Wenn ADB-Anbieterschlüssel verfügbar sind:
- ADB-Anbieterschlüssel und ‑Treiber müssen für die DUT eindeutig sein.
- Wenn Sie das USB-Debugging immer aktivieren möchten, müssen die ADB-Anbieterschlüssel in Ihrem Quellbaum mit
export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
zu~/.bashrc
(oder einem entsprechenden Pfad) hinzugefügt werden. Dabei ist/path/to/directory
der vollständige Pfad auf dem Host. Informationen zur Fehlerbehebung bei ADB finden Sie unter Anwendungen auf einem Hardwaregerät ausführen.
USB-Debugging zulassen: Wenn ADB-Treiber installiert sind, können ADB-Geräte auf dem Gerät eine Aufforderung zum Zulassen von USB-Debugging auslösen.
sl4a.apk
mit$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk
installierenAchten Sie darauf, dass die Smartphones über eine USB 2.0-Verbindung mit dem Testserver verbunden sind.
Diese Tests sind von aktiven Mobilfunknetzen abhängig. Legen Sie also SIM-Karten in die Smartphones ein und halten Sie sie in einem Gebiet mit guter Mobilfunkabdeckung.
Fügen Sie alle SIM-Karten einer JSON-Datei hinzu, wie unter Konfigurationsdatei schreiben beschrieben.
Umgebung einrichten
Bevor Sie die Umgebung einrichten, prüfen Sie, ob Python 3.4 oder höher installiert ist.
Führen Sie Folgendes aus:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler
ACTS installieren
Führen Sie Folgendes aus:
cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -
Führen Sie act.py -h
aus, um die Installation zu überprüfen. Daraufhin wird eine Liste der verfügbaren Befehle ausgegeben.
Konfigurationsdatei schreiben
Wenn Sie Tests ausführen möchten, müssen Sie eine Datei mit Konfigurationsinformationen erstellen. Hier sehen Sie eine Beispieldatei für .config
: Eine ähnliche Datei ist im Android-Repository unter tools/test/connectivity/acts/framework/sample_config.json
verfügbar. Ersetzen Sie XXXXXXX
durch die Seriennummern der Geräte, um ACTS die Mindestinformationen zur Durchführung eines Telefonietests zur Verfügung zu stellen.
{
"_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"
}
Konfigurieren Sie die Testparameter mithilfe der Schlüssel in der Tabelle. Weitere Optionen finden Sie unter Zusätzliche Konfigurationsoptionen.
Schlüssel | Wert |
---|---|
_description
|
Den Inhalt der gesamten Konfigurationsdatei kommentieren |
testbed
|
Angabe einer Umgebung, in der Tests ausgeführt werden können |
(Testbed) _description
|
Geben Sie einen Kommentar zu jedem Testbed ein, da ACTS auf einzelne Testbeds ausgerichtet werden kann. |
(Testbed) name
|
Name des Testbeds für den Aufruf über die Befehlszeile |
(getestet) AndroidDevice
|
Liste bestimmter Geräte, auf die der Test ausgerichtet ist
Hinweis:Es können mehrere Geräte aufgeführt sein. Bei einem Test, bei dem Smartphones miteinander telefonieren, werden zwei Geräte erwartet. Der Test schlägt fehl, wenn es weniger sind. Wenn zwei Geräte aufgeführt sind und für den Test nur eines erwartet wird, wird der Test auf dem ersten Gerät ausgeführt. |
(testbed)(AndroidDevice) serial
|
Seriennummer des Geräts (aus adb devices gedruckt)
|
(testbed)(Android-Gerät) adb_logcat_param
|
Parameter, die übergeben werden, wenn adb logcat während des Tests aufgerufen wird
|
logpath
|
Der Speicherort der Protokolle auf dem Testserver |
testpaths
|
Speicherort des Testfallcodes |
sim_conf_file
|
Speicherort der .json -Datei mit den verfügbaren SIM-Karten
Die Liste der SIM-Karten enthält die ID der Karte, die Funktionen der Karte, den Mobilfunkanbieter und die Telefonnummer. |
{
"sim-card-ID-here": {
"capability": [
"voice",
"ims",
"volte",
"vt",
"sms",
"tethering",
"data"
],
"operator": "tmo",
"phone_num": "12345678901"
},
...
}
Sie können die Telefonnummer unter System > Über das Telefon auf dem Gerät abrufen.
Die SIM-Karten-ID ist in der Regel auf der SIM-Karte aufgedruckt oder auf dem Gerät unter System > Über das Telefon > SIM-Status verfügbar. Der Operatorstring wird unter tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
definiert. Suchen Sie dann nach CARRIER_
.
Zusätzliche Konfigurationsoptionen
Die Datei entries.py
unter tools/test/connectivity/acts/framework/acts/config/entries.py
im Android-Repository enthält Definitionen für wichtige Befehlszeilenkonfigurationsoptionen.
Sie können auch testspezifische Parameter im Code finden, indem Sie nach self.user_params.get
suchen.
Tests ausführen
Führen Sie nach dem Schreiben der Konfigurationsdatei Tests über die Befehlszeile aus. Es gibt viele Möglichkeiten, die einfachste ist jedoch -c filename.config -tc
TestCase:name
. In diesem Beispiel wird eine Konfigurationsdatei mit dem Namen minimum.config
verwendet:
act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general
Nach einem erfolgreichen Testlauf sollte die endgültige Ausgabe so aussehen:
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
Mehrere Tests ausführen
Wenn Sie bestimmte Testfälle in mehreren Dateien ausführen möchten, erstellen Sie eine Testdatei und übergeben Sie sie mit dem Flag -tf
, wie im Beispiel für die Regressionstestsuite gezeigt:
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
Bei diesem Beispielbefehl wird davon ausgegangen, dass die Datei regression_suite.
heißt.
act.py -c minimum.config -tf regression_suite
Tests mehrmals ausführen
Wenn Sie einen Testlauf (-tc
) oder eine Testdatei (-tf
) mehrmals ausführen möchten, fügen Sie dem Befehl -ti
#
(Testiterationen) hinzu.