OmniLab ATS'deki sanal cihazlar

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.

  1. Mürekkepbalığı > 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ı root 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ın.
    4. ifconfig komutunu çalıştırın ve cvd-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:

  1. Özel ve genel anahtar oluşturmak için ssh-keygenOmniLab ATS ana makinesinde çalıştırın.
  2. 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.

Sanal Cihazları Seçin

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

Yerel Sanal Cihaz İşlemleri

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

Uzaktan Sanal Cihaz İş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.

Sanal Cihaz Testi Kaynakları

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

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

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