Appareils virtuels dans Android Test Station

Android Test Station est compatible avec les appareils virtuels Cuttlefish qui vous permettent d'exécuter des tests sans appareil Android physique. Settlefish convient pour tester des fonctions indépendantes du matériel. Avant de commencer à utiliser des appareils virtuels, suivez le guide de l'utilisateur pour installer Android Test Station.

ATS prend en charge les appareils virtuels dans deux modes : local et distant. Le tableau suivant compare les deux modes.

Appareils virtuels locaux Appareils virtuels distants
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 Configuration plus complexe

Les appareils virtuels locaux et distants peuvent être activés indépendamment. Pour en savoir plus sur chaque mode, consultez les pages suivantes:

Configurer des appareils virtuels locaux

Cette section décrit les étapes à suivre pour configurer 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_vsock

Démarrer Android Test Station avec des appareils virtuels locaux

Avant de démarrer ATS, assurez-vous que toutes les instances Cuttlefish sont arrêtées. ATS lance et arrête automatiquement les appareils virtuels au cours du cycle de test, et les instances Cuttlefish existantes sont en conflit avec les instances gérées par ATS. Pour en savoir plus sur l'arrêt des instances Cuttlefish, consultez la page 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 qu'ATS peut allouer simultanément. Le nombre 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 distants

Cette section décrit la procédure à suivre pour configurer ATS pour les appareils virtuels distants.

Installer les dépendances Cuttlefish

Pour installer les dépendances Cuttlefish, procédez comme suit.

  1. Installez les packages Debian sur l'hôte distant en suivant la procédure décrite dans Cuttlefish > Premiers pas.

  2. Configurez le nombre maximal d'appareils virtuels sur l'hôte distant en procédant comme suit:

    1. Modifiez /etc/default/cuttlefish-host-resources avec un droit racine.
    2. Définissez num_cvd_accounts sur le nombre maximal d'appareils virtuels à autoriser sur cet hôte.
    3. Exécutez sudo systemctl restart cuttlefish-host-resources.
    4. Exécutez ifconfig et vérifiez le nombre d'interfaces cvd-wtap-*.

Créer un compte SSH

Comme l'hôte ATS se connecte à l'hôte distant via SSH, vous devez préparer un compte SSH sur l'hôte distant. Étant donné qu'ATS manipule les fichiers du répertoire HOME, nous vous recommandons de créer un compte dédié.

L'hôte ATS a besoin d'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:

  1. Pour générer une clé privée et une clé publique, exécutez ssh-keygen sur l'hôte ATS.
  2. 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 Cuttlefish, exécutez la commande sur l'hôte distant pour autoriser le compte SSH à lancer Cuttlefish:

sudo usermod -aG kvm,cvdnetwork,render $USER

Démarrer ATS avec des appareils virtuels distants

Avant de démarrer ATS, assurez-vous que toutes les instances Cuttlefish sont arrêtées. ATS lance et arrête automatiquement les appareils virtuels au cours du cycle de test, et les instances Cuttlefish existantes sont en conflit avec les instances gérées par ATS. Pour en savoir plus sur l'arrêt des instances Cuttlefish, consultez la page Arrêter Cuttlefish.

Pour de meilleures performances, nous vous recommandons de configurer l'hôte ATS et l'hôte distant sur un réseau local.

Pour activer des appareils virtuels distants, exécutez la commande suivante sur l'hôte ATS:

mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY

USER est le nom du compte SSH.

HOST est l'adresse IPv4 de l'hôte distant.

N correspond au nombre maximal d'appareils virtuels qu'ATS peut allouer simultanément.

KEY est le chemin d'accès à la clé SSH privée sur l'hôte ATS.

Cette commande teste la connexion à l'hôte distant avant de lancer 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 ATS ne peut se connecter qu'à un seul hôte distant. Plusieurs hôtes 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électionnez des appareils

Dans la liste des appareils, ATS affiche les appareils virtuels sous forme d'espaces réservés au lieu de leur numéro de série réel. Les espaces réservés s'affichent au format HOSTNAME:local-virtual-device-ID pour les appareils virtuels locaux et remote-virtual-ADDRESS-ID pour les appareils virtuels distants. Les états peuvent être Available (Disponible) ou Alated (Alloué). Un espace réservé à l'état Available (Disponible) indique que l'appareil virtuel n'est pas en cours d'exécution et peut être alloué au test.

Sélectionner des appareils virtuels

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 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.

Actions locales sur les appareils virtuels

Figure 2. Actions sur les appareils virtuels locaux

Actions sur les appareils virtuels distants

Figure 3. Actions sur les appareils virtuels distants

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 intégré à ATS et 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.

Ressources de test d'appareils virtuels

Figure 4. Tester les ressources 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 du fichier de sortie. Cliquez sur Afficher les fichiers de sortie pour les consulter.

Résultats du test

Figure 5 : Résultats du test