OmniLab ATS'de sanal cihazlar

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_vsock

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

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

  2. Aşağıdaki adımları uygulayarak uzak ana makinede 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. Bu ana makinede izin verilecek maksimum sanal cihaz sayısını num_cvd_accounts olarak ayarlayın.
    3. Koşu sudo systemctl restart cuttlefish-host-resources.
    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 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:

  1. Özel anahtar ve ortak anahtar oluşturmak için ssh-keygen komutunu OmniLab ATS ana makinesinde çalıştırın.
  2. Ortak anahtarı yükleyin ve ~/.ssh/authorized_keys uzak 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 $USER

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

Sanal Cihazları Seçme

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.

Yerel Sanal Cihaz İşlemleri

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

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

Sanal Cihaz Testi Kaynakları

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

Test çalıştırması sonuçları

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