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.
Cuttlefish > Başlayın bölümündeki adımları uygulayarak Debian paketlerini uzak ana makineye yükleyin.
Aşağıdaki adımları uygulayarak uzak ana makinedeki maksimum sanal cihaz sayısını yapılandırın:
/etc/default/cuttlefish-host-resources
dosyasını kök ayrıcalığıyla düzenleyin.num_cvd_accounts
değerini, bu ana makinede izin verilecek maksimum sanal cihaz sayısına ayarlayın.sudo systemctl restart cuttlefish-host-resources
çalıştır.ifconfig
komutunu çalıştırın vecvd-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:
- Özel anahtar ve ortak anahtar oluşturmak için ATS ana makinesinde
ssh-keygen
komutunu çalıştırın. - 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.
Ş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.
Şekil 2. Yerel sanal cihazlar için cihaz iş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.
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.
5. Şekil. Test çalıştırması sonuçları