ACTS-Telefontests

Die Android Comms Test Suite (ACTS) führt automatisierte Tests von Konnektivitätsstacks wie WLAN, Bluetooth und Mobilfunkdiensten durch. Das Testtool erfordert adb . und Python, und es kann unter tools/test/connectivity/acts gefunden werden.

Auf dieser Seite wird beschrieben, wie Sie die im Android Open Source Project (AOSP) verfügbaren grundlegenden Telefonietests für einen Benutzer mit zwei Telefonen ausführen.

Voraussetzungen

Um ACTS-Telefontests durchzuführen, sollten Sie Zugriff auf ein vollständiges Android-Repository haben und Userdebug-Builds auf den Geräten installieren, die Sie testen möchten.

Herunterladen eines Android-Repositorys

Befolgen Sie die Anweisungen unter „Herunterladen der Quelle“ , um ein Android-Repository auf einen Computer herunterzuladen, der über eine USB-Verbindung zu den Geräten verfügt, die Sie testen möchten.

  • AOSP ist eine Multigigabyte-Codebasis, die weiter wächst. Passen Sie Ihre Erwartungen an die Downloadzeiten entsprechend an.
    • Wenn eine Maschine größenbeschränkt ist, fügen Sie --depth=1 zum repo init Befehl hinzu.
  • Um zukünftige Updates zu ACTS-Tools zu erhalten, gehen Sie zum Android-Stammverzeichnis:
    • Verwenden Sie repo sync tools/test/connectivity
    • Und repo sync external/sl4a

Userdebug-Builds auf Geräten überprüfen

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

  • Erstellen Sie das Repository mithilfe der Anweisungen unter „Android erstellen“ .
  • Flashen Sie das Gerät wie unter Flashen eines Geräts beschrieben.
    • 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 # ).

Bau und Installation von SL4A

Um Scripting Layer für Android (SL4A) zu erstellen und zu installieren, befolgen Sie die Anweisungen im Scripting Layer für Android . Der Abschnitt SL4A-Builds standardmäßig zu Android-Builds hinzufügen ist optional.

Nach der Erstellung von SLA4 enthält die letzte Protokollmeldung den Speicherort der Datei sl4a.apk , die Sie auf ALLEN Geräten installieren müssen. Hier ist ein Beispiel für eine Protokollnachricht:

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

Konfigurieren der zu testenden Geräte

Konfigurieren Sie die Geräte mit diesen ACTS-Build-/Tool-Anforderungen:

  • Wenn keine ADB-Anbieterschlüssel verfügbar sind, tippen Sie auf dem DUT auf das Popup-Fenster „Diesem Computer vertrauen“ , wenn es angezeigt wird. Wenn ADB-Anbieterschlüssel verfügbar sind:

    • ADB-Anbieterschlüssel und -Treiber müssen für das DUT eindeutig sein.
    • Um das USB-Debugging immer zu ermöglichen, müssen die ADB-Anbieterschlüssel in Ihrem Quellbaum zu ~/.bashrc (oder einem gleichwertigen Element) hinzugefügt werden, indem Sie export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys verwenden, wobei sich /path/to/directory befindet Ihr vollständig qualifizierter Pfad auf dem Host. Informationen zur Fehlerbehebung bei ADB finden Sie unter „Apps auf einem Hardwaregerät ausführen“ .
  • USB-Debugging zulassen: Wenn ADB-Treiber installiert sind, lösen ADB-Geräte möglicherweise eine Aufforderung auf dem Gerät aus, USB-Debugging zuzulassen.

  • Installieren Sie sl4a.apk mit $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

  • Stellen Sie sicher, dass die Telefone eine USB 2.0-Verbindung zum Testserver verwenden.

  • Diese Tests basieren auf aktiven Mobilfunknetzen. Legen Sie daher SIM-Karten in die Telefone ein und bewahren Sie die Telefone in einem Bereich mit gutem Mobilfunkempfang auf.

  • Fügen Sie alle SIM-Karten zu einer .json Datei hinzu, wie unter Schreiben einer Konfigurationsdatei beschrieben.

Einrichten der Umgebung

Stellen Sie vor dem Einrichten der Umgebung sicher, dass Python 3.4+ installiert ist.

Laufen:

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

Laufen:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

Um die Installation zu überprüfen, führen Sie act.py -h aus, wodurch eine Liste der verfügbaren Befehle gedruckt wird.

Schreiben einer Konfigurationsdatei

Um Tests auszuführen, müssen Sie eine Datei mit Konfigurationsinformationen erstellen. Hier ist eine Beispiel .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äteseriennummern, um die Mindestinformationen bereitzustellen, die ACTS 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 Tasten in der Tabelle, um die Testparameter zu konfigurieren. Weitere Optionen finden Sie unter Zusätzliche Konfigurationsoptionen .

Schlüssel Wert
_description Kommentieren Sie den Inhalt der gesamten Konfigurationsdatei
testbed Spezifikation einer Umgebung, in der Tests ausgeführt werden können
(Testbed) _description Kommentieren Sie jedes Testbed, da ACTS auf einzelne Testbeds abzielen kann
(Testumgebungs-) name Name des Testbeds zum Aufruf über die Befehlszeile
(Testumgebung) AndroidDevice Liste spezifischer Geräte, auf die der Test abzielt
Hinweis: Es können mehrere Geräte aufgelistet sein. Ein Test, bei dem Telefone einander anrufen, geht davon aus, dass zwei Geräte vorhanden sind, und schlägt fehl, wenn weniger vorhanden sind. Wenn zwei Geräte aufgeführt sind und der Test nur eines erwartet, wird dieser Test auf dem ersten Gerät ausgeführt.
(Testbed)(AndroidDevice) serial Seriennummer des Geräts (ausgedruckt von adb devices )
(Testbed)(AndroidDevice) adb_logcat_param Parameter, die übergeben werden, wenn adb logcat während des Tests aufgerufen wird
logpath Der Speicherort auf dem Testserver, an dem die Protokolle gespeichert werden
testpaths Der Speicherort des Testfallcodes
sim_conf_file Der Speicherort der .json Datei, die verfügbare SIM-Karten auflistet
Die Liste der SIM-Karten umfasst die ID der Karte, die Funktionen der Karte, den Betreiber 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 vom Gerät unter System > Über das Telefon abrufen. Die SIM-Karten-ID ist im Allgemeinen auf der SIM-Karte aufgedruckt oder auf dem Gerät unter System > Über das Telefon > SIM-Status verfügbar. Die Operatorzeichenfolge wird unter tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py definiert. Suchen Sie dann nach CARRIER_ .

Zusätzliche Konfigurationsmöglichkeiten

Die Datei entries.py unter tools/test/connectivity/acts/framework/acts/config/entries.py im Android-Repository enthält Definitionen für die wichtigsten Befehlszeilenkonfigurationsoptionen.

Sie können testspezifische Parameter auch im Code finden, indem Sie nach self.user_params.get suchen.

Laufende Tests

Führen Sie Tests über die Befehlszeile aus, nachdem die Konfigurationsdatei geschrieben wurde. Obwohl es viele Optionen gibt, ist die einfachste die Verwendung -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

Ein erfolgreicher Testlauf sollte eine endgültige Ausgabemeldung wie diese haben:

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

Um bestimmte Testfälle über mehrere Dateien hinweg auszuführen, erstellen Sie eine Testdatei und übergeben Sie sie mit dem Flag -tf , wie in der Beispiel-Regressionstestsuite unten 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 den Namen regression_suite.

act.py -c minimum.config -tf regression_suite

Tests mehrmals ausführen

Um einen Testfall ( -tc ) oder eine Testdatei ( -tf ) mehrmals auszuführen, fügen Sie -ti # (Testiterationen) zum Befehl hinzu.