OmniLab ATS est compatible avec les appareils virtuels Cuttlefish qui vous permettent d'exécuter des tests sans appareil Android physique. Cuttlefish est adapté pour tester les 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 prend en charge deux modes d'utilisation des appareils virtuels : local et à distance. Le tableau suivant compare les deux modes.
Appareils virtuels locaux | Appareils virtuels à distance |
---|---|
S'exécute sur des hôtes de calcul ATS | S'exécute sur des hôtes distants auxquels les hôtes de calcul ATS peuvent accéder via SSH |
Basé sur x86 | Peut être x86 ou ARM selon l'architecture des hôtes |
Plus facile à configurer | Plus complexe à configurer |
Les appareils virtuels locaux et distants peuvent être activés indépendamment. Pour en savoir plus sur chaque mode, consultez les articles suivants:
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 de Cuttlefish
Exécutez la commande suivante pour vous assurer que les modules de kernel nécessaires sont chargés:
sudo modprobe -a kvm tun vhost_net vhost_vsock
Dé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 lance 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 la section Arrêter Cuttlefish.
Pour activer les appareils virtuels locaux, exécutez la commande suivante:
mtt start --max_local_virtual_devices N
N
correspond au nombre maximal d'appareils virtuels pouvant être alloués simultanément à OmniLab ATS. 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 du noyau. Si l'échec persiste, redémarrez la machine.
Configurer des appareils virtuels à distance
Cette section décrit les étapes à suivre pour configurer les services de récupération des comptes OmniLab pour les appareils virtuels distants.
Installer les dépendances de Cuttlefish
Pour installer les dépendances de Cuttlefish, procédez comme suit.
Installez les paquets Debian sur l'hôte distant en suivant la procédure décrite 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-resources
avec les droits racine. - Définissez
num_cvd_accounts
sur le nombre maximal d'appareils virtuels autorisés sur cet hôte. - Exécutez
sudo systemctl restart cuttlefish-host-resources
. - Exécutez
ifconfig
et vérifiez le nombre d'interfacescvd-wtap-*
.
- Modifiez
Créer un compte SSH
Étant donné que l'hôte ATS OmniLab 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-keygen
sur l'hôte OmniLab ATS. - Importez et ajoutez la clé publique à
~/.ssh/authorized_keys
sur l'hôte distant.
Si votre compte SSH est différent de celui utilisé pour installer les dépendances de Cuttlefish, exécutez cette commande sur l'hôte distant pour autoriser le compte SSH à lancer Cuttlefish:
sudo usermod -aG kvm,cvdnetwork,render $USER
Démarrer OmniLab ATS avec des appareils virtuels distants
Avant de démarrer l'outil ATS d'OmniLab, assurez-vous que toutes les instances Cuttlefish sont arrêtées. OmniLab ATS lance et arrête automatiquement les appareils virtuels au cours du cycle de test. Les instances Cuttlefish existantes entrent en conflit avec les instances gérées par OmniLab ATS. Pour plus d'informations sur l'arrêt des instances Cuttlefish, consultez la section Arrêter Cuttlefish.
Pour de meilleures performances, nous vous recommandons de configurer l'hôte ATS OmniLab et l'hôte distant sur un réseau local.
Pour activer des appareils virtuels distants, exécutez cette commande sur l'hôte ATS OmniLab:
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
est le 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
est le chemin d'accès à la clé privée SSH 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 dans la console, vérifiez 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 les étapes à suivre pour exécuter un test sur des appareils virtuels locaux ou distants.
Sélectionner des appareils
Dans la liste des appareils, OmniLab ATS affiche les appareils virtuels sous la 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 distants. Les états sont Disponible ou Alloué. Un espace réservé à l'état Available (Disponible) indique que l'appareil virtuel n'est pas en cours d'exécution et qu'il peut être alloué pour le test.
Figure 1 : Sélectionner des appareils virtuels
Ajouter des actions sur l'appareil
Si vous sélectionnez au moins un appareil virtuel, l'action associée à l'appareil doit être ajoutée automatiquement à la liste. L'action comprend les paramètres TradeFed et les ressources de test requis pour créer des appareils virtuels.
Figure 2. Actions sur les appareils virtuels locaux
Figure 3. Actions sur les appareils pour les appareils virtuels à distance
Définir les ressources de test
Les appareils virtuels Cuttlefish nécessitent trois ressources de test : les outils de machine virtuelle, les images et Acloud.
Dans un build Cuttlefish classique (par exemple, aosp_cf_x86_64_phone
sur ci.android.com), les outils de machines virtuelles sont empaquetés dans cvd-host_package.tar.gz
et les images dans aosp_cf_x86_64_phone-img-*.zip
. Le binaire Acloud est créé dans 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 Afficher les fichiers de sortie pour les consulter.
Figure 5. Résultats du test