OmniLab ATS, fiziksel Android cihazlar olmadan test çalıştırmanıza olanak tanıyan Cuttlefish sanal cihazlarını destekler. Mürekkepbalığı, donanımdan bağımsız işlevleri test etmek için uygundur. Sanal cihazları kullanmaya başlamadan önce OmniLab ATS'yi yüklemek için kullanıcı kılavuzunu inceleyin.
OmniLab 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 | Uzaktan sanal cihazlar |
---|---|
ATS çalışan ana makinelerinde çalışır | ATS çalışanının SSH aracılığıyla erişebildiğ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. Her modla ilgili ayrıntılar için:
Yerel sanal cihazlar oluşturma
Bu bölümde, yerel sanal cihazlar için OmniLab ATS'yi ayarlama adımları açıklanmaktadır.
Cuttlefish bağımlılıkları yükleme
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
OmniLab ATS'yi yerel sanal cihazlarla başlatma
OmniLab ATS'yi başlatmadan önce tüm Cuttlefish örneklerinin durdurulduğundan emin olun. OmniLab ATS, test döngüsü sırasında sanal cihazları otomatik olarak başlatıp durdurur ve mevcut Cuttlefish örnekleri, OmniLab ATS tarafından yönetilen örneklerle çakışır. Cuttlefish örneklerini durdurma hakkında ayrıntılı bilgi için Cuttlefish'i durdurma başlıklı makaleyi inceleyin.
Yerel sanal cihazları etkinleştirmek için:
mtt start --max_local_virtual_devices N
N
, OmniLab 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.
Uzaktan sanal cihazlar oluşturma
Bu bölümde, uzak sanal cihazlar için OmniLab ATS'yi 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.
Mürekkepbalığı > 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ı root 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ın.ifconfig
komutunu çalıştırın vecvd-wtap-*
arayüzlerinin sayısını doğrulayın.
SSH hesabı oluşturma
OmniLab ATS ana makinesi, uzak sunucuya SSH üzerinden bağlandığından uzak sunucuda bir SSH hesabı hazırlamanız gerekir. OmniLab ATS, ANA dizinindeki dosyaları değiştirdiğinden, özel bir hesap oluşturmanızı öneririz.
OmniLab ATS ana makinesinin, uzak ana makineye şifre girmeden giriş yapabilmesi için bir çift SSH anahtarı gerekir. Aşağıdaki adımlarda, SSH anahtarlarının nasıl ayarlanacağı açıklanmaktadır:
- Özel ve genel anahtar oluşturmak için
ssh-keygen
'ü OmniLab ATS ana makinesinde çalıştırın. - Ortak anahtarı yükleyip
~/.ssh/authorized_keys
uzak ana makinede ekleyerek
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
OmniLab ATS'yi uzaktan sanal cihazlarla başlatma
OmniLab ATS'yi başlatmadan önce tüm Cuttlefish örneklerinin durdurulduğundan emin olun. OmniLab ATS, test döngüsü sırasında sanal cihazları otomatik olarak başlatıp durdurur ve mevcut Cuttlefish örnekleri, OmniLab ATS tarafından yönetilen örneklerle çakışır. Cuttlefish örneklerini durdurma hakkında ayrıntılı bilgi için Cuttlefish'i durdurma başlıklı makaleyi inceleyin.
Daha iyi performans için OmniLab ATS ana makinesini ve uzak ana makineyi yerel bir ağda ayarlamanızı öneririz.
Uzak sanal cihazları etkinleştirmek için OmniLab ATS ana makinesinde şu komutu çalıştırın:
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
, SSH hesap adıdır.
HOST
, uzak ana makinenin IPv4 adresidir.
N
, OmniLab ATS'nin aynı anda ayırabileceği maksimum sanal cihaz sayısıdır.
KEY
, OmniLab ATS ana makinesinde özel SSH anahtarının yoludur.
Komut, OmniLab 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 ayarlarınızı kontrol etmeniz gerekir.
OmniLab ATS ana makinesi, kaynak çakışmalarını önlemek için en fazla bir uzak ana makineye bağlanabilir. Birden fazla OmniLab 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
OmniLab ATS, cihaz listesinde sanal cihazları gerçek seri numaraları yerine yer tutucu olarak gösterir. 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. Durumlar Kullanılabilir veya Ayrılmış şeklindedir. Kullanılabilir durumundaki yer tutucu, sanal cihazın çalışmadığını ve teste ayrılabileceğini gösterir.
Şekil 1. Sanal cihazları seçme
Cihaz işlemleri ekleme
En az bir sanal cihaz seçerseniz ilişkili cihaz işlemi listeye otomatik olarak eklenir. İşlem, sanal cihaz oluşturmak için gereken TradeFed parametrelerinden ve test kaynaklarından oluşur.
Şekil 2. Yerel sanal cihazlar için cihaz işlemleri
Şekil 3. Uzaktan 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 (ör. ci.android.com üzerinde aosp_cf_x86_64_phone
), sanal makine araçları cvd-host_package.tar.gz
içine, resimler ise aosp_cf_x86_64_phone-img-*.zip
içine paketlenir. Acloud ikili dosyası, OmniLab ATS'de oluşturulur ve Cuttlefish'in tüm sürümleriyle uyumludur. Acloud ikili dosyasındaki varsayılan indirme URL'sinin yalnızca hata ayıklama amacıyla değiştirilmesi gerekir.
Şekil 4. Sanal cihazlar için kaynakları test etme
Test çalıştırmalarını görüntüleme
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 Çıkış Dosyalarını Göster'i tıklayın.
Şekil 5. Test çalıştırma sonuçları