ACTS-Telefonietests

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.
  • 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 sollte userdebug 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.

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 installieren

  • Achten 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.