OmniLab ATS est compatible avec les appareils virtuels Cuttlefish qui vous permettent d'exécuter des tests sans appareils Android physiques. Cuttlefish est adapté aux tests de fonctions indépendantes du matériel. Avant de commencer à utiliser des appareils virtuels, suivez le guide de l'utilisateur pour installer OmniLab ATS.
OmniLab ATS est compatible avec les appareils virtuels dans trois modes : local, à distance et Cloud Orchestration. Le tableau suivant compare ces modes.
| Appareils virtuels locaux | Appareils virtuels à distance | Cloud Orchestration |
|---|---|---|
| S'exécute sur des hôtes de nœuds de calcul ATS | S'exécute sur des hôtes distants auxquels les hôtes de nœuds de calcul ATS peuvent accéder via SSH | S'exécute sur des hôtes locaux ou distants gérés par Cloud Orchestrator |
| Basé sur x86 | Peut être x86 ou ARM selon l'architecture de l'hôte | Peut être x86 ou ARM selon l'architecture de l'hôte |
| Plus facile à configurer | Plus compliqué à configurer | Hautes performances, évolutif, compatible avec le lancement d'instances parallèles |
Vous pouvez activer les modes d'appareils virtuels locaux et à distance indépendamment. Vous pouvez également activer Cloud Orchestration, qui sert de remplacement moderne offrant une parité complète des fonctionnalités avec les deux modes, ainsi que des avantages clés tels que le lancement d'instances parallèles et une meilleure isolation des ressources. Pour en savoir plus sur chaque mode, consultez les pages suivantes :
- Configurer des appareils virtuels locaux
- Configurer des appareils virtuels à distance
- Configurer des appareils virtuels orchestrés dans le cloud
Configurer des appareils virtuels locaux
Cette section décrit la procédure à suivre pour configurer OmniLab ATS pour les appareils virtuels locaux.
Installer les dépendances Cuttlefish
Exécutez la commande suivante pour vous assurer que les modules de noyau nécessaires sont chargés :
sudo modprobe -a kvm tun vhost_net vhost_vsockDémarrer OmniLab ATS avec des appareils virtuels locaux
Avant de démarrer OmniLab ATS, assurez-vous que toutes les instances Cuttlefish sont arrêtées. OmniLab ATS démarre et arrête automatiquement les appareils virtuels pendant le cycle de test. Les instances Cuttlefish existantes sont en conflit avec les instances gérées par OmniLab ATS. Pour en savoir plus sur l'arrêt des instances Cuttlefish, consultez Arrêter Cuttlefish.
Pour activer les appareils virtuels locaux, exécutez la commande suivante :
mtt start --max_local_virtual_devices NN correspond au nombre maximal d'appareils virtuels qu'OmniLab ATS peut allouer simultanément. La valeur par défaut est 0.
Si la commande échoue en raison de nœuds d'appareil manquants, suivez les étapes du message d'erreur pour charger les modules de noyau. Si le problème persiste, redémarrez la machine.
Configurer des appareils virtuels à distance
Cette section décrit la procédure à suivre pour configurer OmniLab ATS pour les appareils virtuels à distance.
Installer les dépendances Cuttlefish
Pour installer les dépendances Cuttlefish, procédez comme suit.
Installez les packages Debian sur l'hôte distant en suivant les étapes décrites dans Cuttlefish > Premiers pas.
Configurez le nombre maximal d'appareils virtuels sur l'hôte distant en procédant comme suit :
- Modifiez
/etc/default/cuttlefish-host-resourcesavec les droits racine. - Définissez
num_cvd_accountssur le nombre maximal d'appareils virtuels à autoriser sur cet hôte. - Exécutez
sudo systemctl restart cuttlefish-host-resources. - Exécutez
ifconfiget vérifiez le nombre d'interfacescvd-wtap-*.
- Modifiez
Créer un compte SSH
Étant donné que l'hôte OmniLab ATS se connecte à l'hôte distant via SSH, vous devez préparer un compte SSH sur l'hôte distant. Comme OmniLab ATS manipule les fichiers du répertoire HOME, nous vous recommandons de créer un compte dédié.
L'hôte OmniLab ATS nécessite une paire de clés SSH pour se connecter à l'hôte distant sans mot de passe. Les étapes suivantes décrivent comment configurer les clés SSH :
- Pour générer une clé privée et une clé publique, exécutez
ssh-keygensur l'hôte OmniLab ATS. - Importez et ajoutez la clé publique à
~/.ssh/authorized_keyssur l'hôte distant.
Si votre compte SSH est différent de celui utilisé pour installer les dépendances Cuttlefish, exécutez cette commande sur l'hôte distant pour autoriser le compte SSH à lancer Cuttlefish :
sudo usermod -aG kvm,cvdnetwork,render $USERDémarrer OmniLab ATS avec des appareils virtuels à distance
Avant de démarrer OmniLab ATS, assurez-vous que toutes les instances Cuttlefish sont arrêtées. OmniLab ATS démarre et arrête automatiquement les appareils virtuels pendant le cycle de test. Les instances Cuttlefish existantes sont en conflit avec les instances gérées par OmniLab ATS. Pour en savoir plus sur l'arrêt des instances Cuttlefish, consultez Arrêter Cuttlefish.
Pour de meilleures performances, nous vous recommandons de configurer l'hôte OmniLab ATS et l'hôte distant dans un réseau local.
Pour activer les appareils virtuels à distance, exécutez la commande suivante sur l'hôte OmniLab ATS :
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEYUSER correspond au nom du compte SSH.
HOST correspond à l'adresse IPv4 de l'hôte distant.
N correspond au nombre maximal d'appareils virtuels qu'OmniLab ATS peut allouer simultanément.
KEY correspond au chemin d'accès à la clé SSH privée sur l'hôte OmniLab ATS.
La commande teste la connexion à l'hôte distant avant de démarrer OmniLab ATS.
Si un message d'avertissement tel que The specified --remote_virtual_devices and --remote_ssh_key are invalid. s'affiche sur la console, vous devez vérifier votre configuration SSH.
Pour éviter les conflits de ressources, un hôte OmniLab ATS ne peut se connecter qu'à un seul hôte distant. Plusieurs hôtes OmniLab ATS ne peuvent pas se connecter à un même hôte distant en même temps.
Exécuter un test avec des appareils virtuels
Cette section décrit la procédure à suivre pour exécuter un test sur des appareils virtuels locaux ou à distance.
Sélectionner des appareils
Dans la liste des appareils, OmniLab ATS affiche les appareils virtuels sous forme d'espaces réservés au lieu de leurs numéros de série réels. Les espaces réservés sont affichés au format HOSTNAME:local-virtual-device-ID pour les appareils virtuels locaux et remote-virtual-ADDRESS-ID pour les appareils virtuels à distance. Les états sont Available ou Allocated. Un espace réservé à l'état Available indique que l'appareil virtuel n'est pas en cours d'exécution et peut être alloué pour le test.
Figure 1. Sélection d'appareils virtuels
Ajouter des actions pour un appareil
Si vous sélectionnez au moins un appareil virtuel, l'action d'appareil associée doit être ajoutée automatiquement à la liste. L'action se compose des paramètres TradeFed requis et des ressources de test pour créer des appareils virtuels.
Figure 2. Actions d'appareil pour les appareils virtuels locaux
Figure 3. Actions d'appareil pour les appareils virtuels à distance
Définir des ressources de test
Les appareils virtuels Cuttlefish nécessitent trois ressources de test : les outils de machine virtuelle
, les images et
Acloud.
Dans une compilation Cuttlefish typique (par exemple,
aosp_cf_x86_64_only_phone-userdebug sur
ci.android.com
), les outils de machine virtuelle sont regroupés dans cvd-host_package.tar.gz, et
les images se trouvent dans aosp_cf_x86_64_only_phone-img-*.zip. Le binaire Acloud est intégré à OmniLab ATS et est compatible avec toutes les versions de Cuttlefish. L'URL de téléchargement par défaut du binaire Acloud ne doit être modifiée qu'à des fins de débogage.
Figure 4. Ressources de test pour les appareils virtuels
Afficher les exécutions de test
Les journaux de l'appareil, y compris kernel.log, host_log.txt et launcher.log, sont collectés dans le dossier de fichiers de sortie. Cliquez sur View Output Files (Afficher les fichiers de sortie) pour les afficher.
Figure 5. Résultats de l'exécution du test