OmniLab ATS, fiziksel Android cihazlar olmadan test çalıştırmanıza olanak tanıyan Cuttlefish sanal cihazlarını destekler. Cuttlefish, 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ılavuzundaki talimatları uygulayın.
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 | Uzak sanal cihazlar |
|---|---|
| ATS çalışan ana makinelerinde çalışır | ATS çalışan ana makinelerinin SSH üzerinden erişebildiği uzak ana makinelerde çalışır. |
| x86 tabanlı | Ana makinelerin mimarisine bağlı olarak x86 veya ARM olabilir. |
| Daha kolay kurulum | Kurulumu daha karmaşıktır. |
Yerel ve uzak sanal cihazlar bağımsız olarak etkinleştirilebilir. Her modla ilgili ayrıntılı bilgi için aşağıdaki makaleleri inceleyin:
Yerel sanal cihazları ayarlama
Bu bölümde, yerel sanal cihazlar için OmniLab ATS'yi ayarlama adımları açıklanmaktadır.
Cuttlefish bağımlılıklarını 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_vsockYerel sanal cihazlarla OmniLab ATS'yi 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ır ve durdurur. 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 şu komutu çalıştırın:
mtt start --max_local_virtual_devices NN, 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. Başarısız olmaya devam ederse makineyi yeniden başlatın.
Uzaktan sanal cihazları ayarlama
Bu bölümde, uzak sanal cihazlar için OmniLab ATS'yi ayarlama adımları açıklanmaktadır.
Cuttlefish bağımlılıklarını yükleme
Cuttlefish bağımlılıklarını yüklemek için aşağıdaki adımları uygulayın.
Cuttlefish > Başlarken bölümündeki adımları uygulayarak Debian paketlerini uzak ana makineye yükleyin.
Aşağıdaki adımları uygulayarak uzak ana makinede maksimum sanal cihaz sayısını yapılandırın:
/etc/default/cuttlefish-host-resourcesdosyasını root ayrıcalığıyla düzenleyin.- Bu ana makinede izin verilecek maksimum sanal cihaz sayısını
num_cvd_accountsolarak ayarlayın. - Koşu
sudo systemctl restart cuttlefish-host-resources. ifconfigkomutunu çalıştırın vecvd-wtap-*arayüzlerinin sayısını doğrulayın.
SSH hesabı oluşturma
OmniLab ATS ana makinesi uzak ana makineye SSH üzerinden bağlandığından uzak ana makinede bir SSH hesabı hazırlamanız gerekir. OmniLab ATS, HOME dizinindeki dosyaları değiştirdiğinden özel bir hesap oluşturmanızı öneririz.
OmniLab 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
ssh-keygenkomutunu OmniLab ATS ana makinesinde çalıştırın. - Ortak anahtarı yükleyin ve
~/.ssh/authorized_keysuzak ana makinede 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 $USERUzak sanal cihazlarla OmniLab ATS'yi 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ır ve durdurur. 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 alan ağında 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 KEYUSER, 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 makinesindeki özel SSH anahtarının yoludur.
Komut, OmniLab ATS'yi başlatmadan önce uzak ana makineyle 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.
Kaynak çakışmalarını önlemek için bir OmniLab ATS ana makinesi en fazla bir uzak ana makineye bağlanabilir. Birden fazla OmniLab ATS ana makinesi aynı anda tek bir uzak ana makineye bağlanamaz.
Sanal cihazlarla test çalıştırma
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 gerçek seri numaraları yerine yer tutucu olarak sanal cihazları 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ış olur. Kullanılabilir durumundaki bir yer tutucu, sanal cihazın çalışmadığını ve test için ayrılabileceğini gösterir.
1. şekil. 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 gerekli TradeFed parametrelerinden ve test kaynaklarından oluşur.
Şekil 2. Yerel sanal cihazlar için cihaz işlemleri
3.Şekil Uzaktaki 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.
aosp_cf_x86_64_only_phone-userdebug on
ci.android.com
), sanal makine araçları cvd-host_package.tar.gz içinde, görüntüler ise aosp_cf_x86_64_only_phone-img-*.zip içinde paketlenir. Acloud ikili dosyası, OmniLab ATS'de oluşturulur ve Cuttlefish'in tüm sürümleriyle uyumludur. Acloud ikilisinin varsayılan indirme URL'si yalnızca hata ayıklama amacıyla değiştirilmelidir.
Şekil 4. Sanal cihazlar için test kaynakları
Test çalıştırmalarını görüntüleme
kernel.log, host_log.txt ve launcher.log dahil olmak üzere cihaz günlükleri, çıkış dosyası klasöründe toplanır. Bu dosyaları görmek için Çıkış Dosyalarını Göster'i tıklayın.
5.şekil Test çalıştırması sonuçları