La suite de tests de communication Android (ACTS) effectue des tests automatisés des piles de connectivité, telles que le Wi-Fi, le Bluetooth et les services mobiles. L'outil de test nécessite adb et Python. L'outil se trouve dans tools/test/connectivity/acts
.
Cette page explique comment exécuter les tests de téléphonie de base disponibles dans le projet Android Open Source (AOSP) pour un utilisateur disposant de deux téléphones.
Prérequis
Pour exécuter des tests de téléphonie ACTS, vous devez disposer d'un accès à un dépôt Android complet et installer des builds userdebug sur les appareils que vous souhaitez tester.
Télécharger un dépôt Android
Suivez les instructions de la section Télécharger la source pour télécharger un dépôt Android sur une machine connectée par USB aux appareils que vous souhaitez tester.
- AOSP est un codebase de plusieurs gigaoctets qui continue de croître. Ajustez vos attentes en termes de temps de téléchargement en conséquence.
- Si la taille d'une machine est limitée, ajoutez
--depth=1
à la commanderepo init
.
- Si la taille d'une machine est limitée, ajoutez
- Pour recevoir les futures mises à jour sur les outils ACTS, accédez au répertoire racine d'Android :
- Utiliser
repo sync tools/test/connectivity
- et
repo sync external/sl4a
- Utiliser
Vérifier les builds userdebug sur les appareils
Installez une version userdebug d'Android sur vos appareils de test.
- Créez le dépôt en suivant les instructions de la section Créer Android.
- Flashez l'appareil comme décrit dans la section Flasher un appareil.
- La commande
adb shell getprop ro.build.type
doit renvoyeruserdebug
. - Si
ro.build.type
n'est pas disponible, un build userdebug permet d'exécuter le shell adb en tant que racine (terminal#
).
- La commande
Créer et installer SL4A
Pour créer et installer la couche de script pour Android (SL4A), suivez les instructions de la section Couche de script pour Android. La section Ajouter des builds SL4A aux builds Android par défaut est facultative.
Après avoir créé SLA4, le dernier message de journal contient l'emplacement du fichier sl4a.apk
, que vous devez installer sur TOUS les appareils. Voici un exemple de message de journal:
Copy: out/target/path/to/sl4a.apk
Configurer les appareils à tester
Configurez les appareils à l'aide des exigences de compilation/d'outil ACTS suivantes:
Si les clés de fournisseur ADB ne sont pas disponibles, appuyez sur le pop-up Indiquer que cet ordinateur est fiable sur l'appareil testé. Si des clés de fournisseur ADB sont disponibles:
- Les clés et pilotes du fournisseur ADB doivent être propres au DUT.
- Pour activer toujours le débogage USB, les clés du fournisseur ADB dans votre arborescence source doivent être ajoutées à
~/.bashrc
(ou équivalent) à l'aide deexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
, où/path/to/directory
est votre chemin d'accès complet sur l'hôte. Pour résoudre les problèmes liés à ADB, consultez Exécuter des applications sur un appareil matériel.
Autoriser le débogage USB: lorsque les pilotes adb sont installés, les appareils adb peuvent déclencher une invite sur l'appareil pour autoriser le débogage USB.
Installer
sl4a.apk
avec$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk
Assurez-vous que les téléphones utilisent une connexion USB 2.0 vers le serveur de test.
Ces tests dépendent des réseaux mobiles actifs. Insérez donc des cartes SIM dans les téléphones et placez-les dans une zone où le service mobile est de bonne qualité.
Ajoutez toutes les cartes SIM à un fichier JSON, comme décrit dans la section Écrire un fichier de configuration.
Configurer l'environnement
Avant de configurer l'environnement, vérifiez que Python 3.4 ou version ultérieure est installé.
Exécutez :
sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler
Installer ACTS
Exécutez la commande suivante:
cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -
Pour vérifier l'installation, exécutez act.py -h
, qui affiche la liste des commandes disponibles.
Écrire un fichier de configuration
Pour exécuter des tests, vous devez créer un fichier contenant les informations de configuration. Voici un exemple de fichier .config
. Un fichier similaire est disponible dans le dépôt Android sous tools/test/connectivity/acts/framework/sample_config.json
. Remplacez XXXXXXX
par les numéros de série des appareils pour fournir les informations minimales dont ACTS a besoin pour exécuter un test de téléphonie.
{
"_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"
}
Utilisez les clés du tableau pour configurer les paramètres de test. Pour en savoir plus, consultez la section Options de configuration supplémentaires.
Clé | Valeur |
---|---|
_description
|
Ajouter des commentaires sur l'intégralité du fichier de configuration |
testbed
|
Spécification d'un environnement dans lequel les tests peuvent s'exécuter |
(testbed) _description
|
Commentez chaque banc d'essais, car ACTS peut cibler des bancs d'essais individuels. |
(testbed) name
|
Nom du banc d'essai à appeler depuis la ligne de commande |
(testbed) AndroidDevice
|
Liste des appareils spécifiques ciblés par le test
Remarque:Plusieurs appareils peuvent être listés. Un test qui exécute des téléphones qui s'appellent mutuellement s'attend à ce qu'il y ait deux appareils et échoue s'il y en a moins. Si deux appareils sont répertoriés et que le test n'en attend qu'un, il est exécuté sur le premier. |
(testbed)(AndroidDevice) serial
|
Numéro de série de l'appareil (imprimé à partir de adb devices )
|
(testbed)(AndroidDevice) adb_logcat_param
|
Paramètres transmis lorsque adb logcat est appelé lors des tests
|
logpath
|
Emplacement sur le serveur de test où les journaux sont enregistrés |
testpaths
|
Emplacement du code du scénario de test |
sim_conf_file
|
Emplacement du fichier .json qui liste les cartes SIM disponibles
La liste des cartes SIM inclut l'ID de la carte, ses fonctionnalités, l'opérateur et le numéro de téléphone. |
{
"sim-card-ID-here": {
"capability": [
"voice",
"ims",
"volte",
"vt",
"sms",
"tethering",
"data"
],
"operator": "tmo",
"phone_num": "12345678901"
},
...
}
Vous pouvez récupérer le numéro de téléphone de l'appareil sous Système > À propos du téléphone.
L'ID de la carte SIM est généralement imprimé sur la carte SIM ou disponible sur l'appareil dans Système > À propos du téléphone > État de la carte SIM. La chaîne d'opérateur est définie à tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
, puis recherchez CARRIER_
.
Options de configuration supplémentaires
Le fichier entries.py
situé à tools/test/connectivity/acts/framework/acts/config/entries.py
dans le dépôt Android contient des définitions des principales options de configuration de la ligne de commande.
Vous pouvez également trouver des paramètres spécifiques au test dans le code en recherchant self.user_params.get
.
Exécuter des tests
Exécutez les tests à partir de la ligne de commande une fois le fichier de configuration écrit. Bien qu'il existe de nombreuses options, la plus simple consiste à utiliser -c filename.config -tc
TestCase:name
. Cet exemple utilise un fichier de configuration nommé minimum.config
:
act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general
Si le test aboutit, un message de sortie final semblable à celui-ci s'affiche:
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
Exécuter plusieurs tests
Pour exécuter des scénarios de test spécifiques sur plusieurs fichiers, créez un fichier de test et transmettez-le avec l'option -tf
, comme indiqué dans l'exemple de suite de tests de régression:
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
Cet exemple de commande suppose que le fichier s'appelle regression_suite.
act.py -c minimum.config -tf regression_suite
Exécuter des tests plusieurs fois
Pour exécuter un scénario de test (-tc
) ou un fichier de test (-tf
) plusieurs fois, ajoutez -ti
#
(itérations de test) à la commande.