ACTS-Telefonietests

Die Android Comms Test Suite (ACTS) führt automatisierte Tests von Konnektivitäts-Stacks 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 Telefonietests, die im Android Open Source Project (AOSP) verfügbar sind, für einen Nutzer mit zwei Smartphones ausführen.

Voraussetzungen

Zum Ausführen von ACTS-Telefonietests sollten Sie Zugriff auf ein vollständiges Android-Repository haben und NutzerDebug-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 weiter wächst. Passen Sie die zu erwartenden Downloadzeiten entsprechend an.
    • Wenn die Größe eines Computers beschränkt ist, fügen Sie --depth=1 in den Befehl repo init ein.
  • Rufen Sie das Android-Stammverzeichnis auf, um zukünftige Updates zu ACTS-Tools zu erhalten:
    • repo sync tools/test/connectivity verwenden
    • und repo sync external/sl4a

Fehlerbehebungs-Builds von Nutzern auf Geräten prüfen

Installieren Sie eine Debug-Version von Android auf Ihren Testgeräten.

  • Erstellen Sie das Repository gemäß der Anleitung unter Android erstellen.
  • Flashen Sie das Gerät wie unter Flash-Inhalte auf einem Gerät speichern beschrieben auf.
    • Der Befehl adb shell getprop ro.build.type sollte userdebug zurückgeben.
    • Wenn ro.build.type nicht verfügbar ist, ermöglicht ein UserDebug-Build die Ausführung der ADB-Shell als Root (Terminal #).

SL4A erstellen und installieren

Um Scripting Layer for Android (SL4A) zu erstellen und zu installieren, folgen Sie der Anleitung unter Scripting Layer for Android. Der Abschnitt SL4A-Builds standardmäßig zu Android-Builds hinzufügen ist optional.

Nach dem Erstellen von SLA4 enthält die letzte Lognachricht den Speicherort der Datei sl4a.apk, die Sie auf ALLEN Geräten installieren müssen. Hier ist ein Beispiel für eine Log-Nachricht:

Copy: out/target/path/to/sl4a.apk

Zu testende Geräte konfigurieren

Konfigurieren Sie die Geräte gemäß den folgenden ACTS-Build-/Tool-Anforderungen:

  • Wenn keine ADB-Anbieterschlüssel verfügbar sind, tippen Sie auf dem DUT auf das Pop-up Diesen Computer als vertrauenswürdig einstufen. Wenn ADB-Anbieterschlüssel verfügbar sind:

    • ADB-Anbieterschlüssel und -Treiber müssen für den DUT eindeutig sein.
    • Damit das USB-Debugging immer aktiviert wird, müssen die ADB-Anbieterschlüssel in Ihrer Quellstruktur zu ~/.bashrc (oder einem entsprechenden Schlüssel) mit export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys hinzugefügt werden. Dabei ist /path/to/directory Ihr vollständig qualifizierter 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

  • Die Smartphones müssen eine USB 2.0-Verbindung zum Testserver verwenden.

  • Diese Tests sind von Live-Mobilfunknetzen abhängig. Legen Sie daher SIM-Karten in die Smartphones ein und platzieren Sie sie in einem Bereich mit guter Mobilfunkverbindung.

  • Fügen Sie alle SIM-Karten einer JSON-Datei hinzu, wie unter Konfigurationsdatei schreiben beschrieben.

Umgebung einrichten

Prüfen Sie vor dem Einrichten der Umgebung, 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 zum Prüfen der Installation act.py -h aus. Dadurch wird eine Liste der verfügbaren Befehle ausgegeben.

Konfigurationsdatei schreiben

Zum Ausführen von Tests müssen Sie eine Datei mit Konfigurationsinformationen erstellen. Hier ist ein Beispiel für eine .config-Datei. Eine ähnliche Datei ist im Android-Repository unter tools/test/connectivity/acts/framework/sample_config.json verfügbar. Ersetzen Sie XXXXXXX durch Geräte-Seriennummern, um die Informationen bereitzustellen, die ACTS mindestens zum Ausführen eines Telefonietests benötigt.

{
  "_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"
}

Verwenden Sie die Schlüssel in der Tabelle, um die Testparameter zu konfigurieren. Weitere Optionen finden Sie unter Zusätzliche Konfigurationsoptionen.

Schlüssel Antwort
_description Inhalt der gesamten Konfigurationsdatei kommentieren
testbed Spezifikation einer Umgebung, in der Tests ausgeführt werden können
(getestet) _description Kommentieren Sie die einzelnen Prüfbereiche, da ACTS auf einzelne Testbedien ausgerichtet werden kann.
(getestet) name Name des testbed-Moduls zum Aufrufen über die Befehlszeile
(getestet) AndroidDevice Liste der Geräte, auf die der Test ausgerichtet ist
Hinweis:Es können mehrere Geräte aufgeführt sein. Ein Test, bei dem Smartphones ausgeführt werden, die sich gegenseitig anrufen, erwartet, dass es zwei Geräte gibt, und schlägt fehl, wenn es weniger gibt. Wenn zwei Geräte aufgeführt sind und der Test nur eines erwartet, wird der Test auf dem ersten Gerät ausgeführt.
(testbed)(Android-Gerät) serial Seriennummer des Geräts (ausgedruckt auf adb devices)
(testbed)(Android-Gerät) adb_logcat_param Parameter, die übergeben werden, wenn während des Tests adb logcat aufgerufen wird
logpath Den Speicherort der Protokolle auf dem Testserver
testpaths Speicherort des Testlaufcodes
sim_conf_file Speicherort der Datei .json mit den verfügbaren SIM-Karten
Die Liste der SIM-Karten enthält die ID der Karte, die Funktionen der Karte, des Anbieters und die Telefonnummer.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

Sie finden die Telefonnummer unter System > Über das Telefon auf dem Gerät. Die SIM-Karten-ID finden Sie in der Regel auf der SIM-Karte oder unter System > Über das Telefon > SIM-Status auf dem Gerät. 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 Tests über die Befehlszeile aus, nachdem die Konfigurationsdatei geschrieben wurde. Es gibt viele Möglichkeiten. Die einfachste ist jedoch die Verwendung von -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

Bei einem erfolgreichen Test sollte die endgültige Ausgabemeldung in etwa 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 für mehrere Dateien ausführen möchten, erstellen Sie eine Testdatei und übergeben Sie sie mit dem Flag -tf , wie in der Beispiel-Regressionstest-Suite 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.