Android Test İstasyonu'ndaki sanal cihazlar

Android Test İstasyonu, fiziksel Android cihazlar olmadan test yapmanıza olanak tanıyan Cuttlefish sanal cihazlarını destekler. Mürekkep balığı, donanımdan bağımsız fonksiyonları test etmek için uygundur. Sanal cihazları kullanmaya başlamadan önce Android Test Station'ı yüklemek için kullanıcı rehberindeki talimatları uygulayın.

ATS, sanal cihazları yerel ve uzak olmak üzere iki modda destekler. Aşağıdaki tabloda iki modun karşılaştırması verilmiştir.

Yerel sanal cihazlar Uzak sanal cihazlar
ATS çalışan ana makinelerinde çalışır ATS çalışanının SSH aracılığıyla erişebileceği uzak ana makinelerde çalışır
x86 tabanlı Ana makinelerin mimarisine bağlı olarak x86 veya ARM olabilir
Ayarlaması daha kolay Kurulum daha karmaşık

Yerel ve uzak sanal cihazlar bağımsız olarak etkinleştirilebilir. Bu modlarla ilgili ayrıntılar için şuraya bakın:

Yerel sanal cihazlar ayarlama

Bu bölümde, ATS'yi yerel sanal cihazlar için kurma adımları açıklanmaktadır.

Mürekkep balığı bağımlılıklarını yükleyin

Gerekli çekirdek modüllerinin yüklendiğinden emin olmak için aşağıdaki komutu çalıştırın:

sudo modprobe -a kvm tun vhost_net vhost_vsock

Android Test İstasyonu'nu yerel sanal cihazlarla başlat

ATS'yi başlatmadan önce, tüm Mürekkep balığı örneklerinin durdurulduğundan emin olun. ATS, test döngüsü sırasında sanal cihazları otomatik olarak başlatıp durdurur ve mevcut Cuttlefish örnekleri, ATS tarafından yönetilen örneklerle çakışır. Mürekkep balığı örneklerini durdurmayla ilgili ayrıntılar için Mücevher Balıklarını Durdurma konusuna bakın.

Yerel sanal cihazları etkinleştirmek için şu komutu çalıştırın:

mtt start --max_local_virtual_devices N

N, ATS'nin aynı anda ayırabileceği maksimum sanal cihaz sayısıdır. Varsayılan sayı 0'dır.

Komut, eksik cihaz düğümleri nedeniyle başarısız olursa çekirdek modüllerini yüklemek için hata mesajındaki adımları uygulayın. Hata devam ederse makineyi yeniden başlatın.

Uzak sanal cihazlar kurma

Bu bölümde, ATS'yi uzak sanal cihazlar için ayarlama adımları açıklanmaktadır.

Mürekkep balığı bağımlılıklarını yükleyin

Mürekkep balığı bağımlılıklarını yüklemek için aşağıdaki adımları uygulayın.

  1. Cuttlefish > Başlayın bölümündeki adımları uygulayarak Debian paketlerini uzak ana makineye yükleyin.

  2. Aşağıdaki adımları uygulayarak uzak ana makinedeki maksimum sanal cihaz sayısını yapılandırın:

    1. /etc/default/cuttlefish-host-resources dosyasını kök ayrıcalığıyla düzenleyin.
    2. num_cvd_accounts değerini, bu ana makinede izin verilecek maksimum sanal cihaz sayısına ayarlayın.
    3. sudo systemctl restart cuttlefish-host-resources çalıştır.
    4. ifconfig komutunu çalıştırın ve cvd-wtap-* arayüzlerinin sayısını doğrulayın.

SSH hesabı oluştur

ATS ana makinesi, uzak ana makineye SSH üzerinden bağlandığından uzak ana makinede bir SSH hesabı hazırlamanız gerekir. ATS, ANA dizinindeki dosyaları değiştirdiğinden, özel bir hesap oluşturmanızı öneririz.

ATS ana makinesi, uzak ana makineye şifre olmadan giriş yapmak için bir çift SSH anahtarı gerektirir. Aşağıdaki adımlarda SSH anahtarlarının nasıl ayarlanacağı açıklanmaktadır:

  1. Özel anahtar ve ortak anahtar oluşturmak için ATS ana makinesinde ssh-keygen komutunu çalıştırın.
  2. Ortak anahtarı uzak ana makineye ~/.ssh/authorized_keys öğesine yükleyin ve ekleyin.

SSH hesabınız, Cuttlefish bağımlılıklarını yüklemek için kullanılan hesaptan farklıysa SSH hesabının Cuttlefish'i başlatmasına izin vermek için uzak ana makinede şu komutu çalıştırın:

sudo usermod -aG kvm,cvdnetwork,render $USER

Uzak sanal cihazlarla ATS'yi başlatma

ATS'yi başlatmadan önce, tüm Mürekkep balığı örneklerinin durdurulduğundan emin olun. ATS, test döngüsü sırasında sanal cihazları otomatik olarak başlatıp durdurur ve mevcut Cuttlefish örnekleri, ATS tarafından yönetilen örneklerle çakışır. Mürekkep balığı örneklerini durdurmayla ilgili ayrıntılar için Mücevher Balıklarını Durdurma konusuna bakın.

Daha iyi performans için ATS ana makinesini ve uzak ana makineyi bir yerel alan ağında kurmanızı öneririz.

Uzak sanal cihazları etkinleştirmek için ATS ana makinesinde şu komutu çalıştırın:

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

USER, SSH hesabının adıdır.

HOST, uzak ana makinenin IPv4 adresidir.

N, ATS'nin aynı anda ayırabileceği maksimum sanal cihaz sayısıdır.

KEY, ATS ana makinesindeki özel SSH anahtarının yoludur.

Komut, ATS'yi başlatmadan önce uzak ana makineyle olan bağlantıyı test eder. Konsolda The specified --remote_virtual_devices and --remote_ssh_key are invalid. gibi bir uyarı mesajı gösteriliyorsa SSH kurulumunuzu kontrol etmeniz gerekir.

ATS ana makinesi, kaynak çakışmalarını önlemek için en fazla bir uzak ana makineye bağlanabilir. Birden fazla ATS ana makinesi aynı anda bir uzak ana makineye bağlanamaz.

Sanal cihazlarla test yapma

Bu bölümde, yerel veya uzak sanal cihazlarda test çalıştırma adımları açıklanmaktadır.

Cihazları seçin

ATS, cihaz listesinde sanal cihazları gerçek seri numaraları yerine yer tutucu olarak görüntüler. Yer tutucular, yerel sanal cihazlar için HOSTNAME:local-virtual-device-ID; uzak sanal cihazlar için remote-virtual-ADDRESS-ID biçiminde gösterilir. Eyaletler Kullanılabilir veya Tahsis edildi şeklindedir. Kullanılabilir durumundaki bir yer tutucu, sanal cihazın çalışmadığını ve test için ayrılabileceğini belirtir.

Sanal Cihazları Seçin

Şekil 1. Sanal cihazları seçme

Cihaz ekleme işlemleri

En az bir sanal cihaz seçerseniz ilişkili cihaz işlemi listeye otomatik olarak eklenir. İşlem, sanal cihazlar oluşturmak için gerekli TradeFed parametrelerinden ve test kaynaklarından oluşur.

Yerel Sanal Cihaz İşlemleri

Şekil 2. Yerel sanal cihazlar için cihaz işlemleri

Uzak Sanal Cihaz İşlemleri

Şekil 3. Uzak sanal cihazlar için cihaz işlemleri

Test kaynaklarını ayarlama

Cuttlefish sanal cihazları için üç test kaynağı gerekir: sanal makine araçları, görüntüler ve Acloud. Tipik bir Cuttlefish derlemesinde (örneğin, ci.android.com adresindeki aosp_cf_x86_64_phone), sanal makine araçları cvd-host_package.tar.gz içinde, görüntüler ise aosp_cf_x86_64_phone-img-*.zip içindedir. Acloud ikili programı, ATS'de yerleşiktir ve Cuttlefish'in tüm sürümleriyle uyumludur. Acloud ikili programının varsayılan indirme URL'si yalnızca hata ayıklama amacıyla değiştirilmelidir.

Sanal Cihaz Testi Kaynakları

4.Şekil Sanal cihazlar için kaynakları test etme

Test çalıştırmalarını göster

kernel.log, host_log.txt ve launcher.log gibi cihaz günlükleri, çıkış dosyası klasöründe toplanır. Bunları görmek için Çıktı Dosyalarını Görüntüle'yi tıklayın.

Test Çalıştırma Sonuçları

5. Şekil. Test çalıştırması sonuçları