OmniLab Android Test İstasyonu

OmniLab ATS, Android geliştiricilerinin ve test mühendislerinin Android Uyumluluk Test Paketi (CTS) gibi standart Android test paketlerini çalıştırmak için kullanıcı arayüzü kullanmak üzere kullanabileceği bir test aracıdır. Bu araç, Trade Federation (Trade Federation (Trade Federation) ve Google Mobly gibi çeşitli test çerçeveleri için web arayüzü işlevi görür. Bu sayede, minimum kurulum düzeyiyle bir grup test cihazında CTS ve çok cihazlı testler çalıştırabilir ve testlerin sürekli olarak çalıştırılacağı bir program oluşturabilirsiniz.

OmniLab ATS'yi ayarlama

Bu bölümde, OmniLab ATS'nin nasıl yükleneceği ve ayarlanacağı açıklanmaktadır.

OmniLab ATS, aşağıdaki konumlardaki kaynak kodlarını kullanır:

OmniLab ATS'yi yükleme

Çalıştırdığınız test paketleriyle ilgili tüm donanım ve yazılım gereksinimlerini yerine getirin.

CTS ile ilgili koşulları source.android.com adresinde bulabilirsiniz.

OmniLab ATS için ek donanım gereksinimi yoktur ancak başlangıç noktası olarak CTS ana makine şartını kullanmanızı öneririz.

OmniLab ATS'yi iki şekilde yükleyebilirsiniz:

Yükleyici programıyla yükleme

Ubuntu 20.04 ve sonraki sürümlerde yükleyici programı, OmniLab ATS'yi çalıştırmak için gereken tüm programları ve kaynakları yükler ve yapılandırır.

Yükleme programını kullanmak için:

  1. Yükleyici programını çalıştırın:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. OmniLab ATS CLI'nin yüklü sürümünü kontrol etmek için mtt version komutunu çalıştırın.

Manuel olarak yükleme

Docker'ı yükleme
  1. Linux makinenize Docker Community Edition (CE) yükleme talimatlarını uygulayın.

  2. Docker'ı root olmayan bir kullanıcı olarak yönetmek için yükleme sonrası adımları uygulayın.

  3. İzin değişikliklerinin geçerli olması için terminal pencerenizi yeniden başlatmanız veya oturumu kapatıp tekrar oturum açmanız gerekebilir.

Python 3'ü yükleme

OmniLab ATS CLI, Python'un 3.7-3.11 arasındaki sürümleriyle doğrulanır.

Ubuntu 16.04 veya önceki sürümlerde, önce aşağıdakilerden birini yaparak Python 3'ün deposunu ekleyin:

  • Bu komutu çalıştırın:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • Depoyu kaynaktan derleyip yükleyin.

Python 3'ü yüklemek için şu komutları çalıştırın:

sudo apt-get update
sudo apt install python3 python3-distutils

Python 3 sürümünü (ör. 3.10) yüklemek için aşağıdaki komutları çalıştırın:

sudo apt-get update
sudo apt install python3.10 python3.10-distutils

OmniLab ATS CLI'yi alma

Komut satırı arayüzü (KSA) paketini buradan indirin.

OmniLab ATS'yi başlatma

Aşağıdaki komutla OmniLab ATS'yi başlatın:

mtt start

Kullanıcı arayüzü ilk başlatıldığında, görünmesi birkaç dakika sürebilir. CLI, bir tarayıcıda kullanıcı arayüzüne erişmek için bir web URL'si gösterir. Varsayılan web URL'si localhost:8000'tir. Gerekirse --port işaretini kullanarak başlangıçta varsayılan bağlantı noktasını değiştirebilirsiniz.

Daha yeni bir sürüm varsa mevcut sürüme güncelleyebilirsiniz. En son sürümler için Sürüm Notları'na göz atabilirsiniz.

Geçerli sürüme güncellemek için şu komutu çalıştırın:

mtt start --force_update

Uygulamayı durdurmak için şu komutu çalıştırın:

mtt stop

Diğer komutların listesini görüntülemek için şunu kullanın:

mtt --help

Veritabanını yedekleme ve geri yükleme

OmniLab ATS veritabanını yedeklemek için uygulamayı durdurun ve mevcut veritabanını ana dizininizde mtt-backup.tar adlı bir TAR dosyasına yedekleyen aşağıdaki komutu çalıştırın:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."

Uygulamayı başlatmadan önce aşağıdaki komutu çalıştırarak geri yükleme yapın:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"

Kurulum Sihirbazı

OmniLab ATS'yi ilk kez yükleyip çalıştırdıktan sonra Kurulum Sihirbazı, aracı ortamınıza göre özelleştirmenize yardımcı olmak için sizi birkaç adımda yönlendirir. Burada yaptığınız değişiklikler daha sonra Ayarlar sayfasından yeniden yapılandırılabilir.

Yapılandırma yedeğini geri yükleme

Başka bir OmniLab ATS ana makinesinden yedeklenmiş bir yapılandırma dosyanız varsa Dosya Yükle düğmesini tıklayarak bu ana makinede değiştirilen tüm yapılandırmaları kopyalamak için dosyayı yükleyebilirsiniz.

Yapılandırma Yedeklerini Geri Yükleme

Şekil 1. Yapılandırma Yedeklemesini Geri Yükleme.

Varsayılan hizmet hesabını ayarlama

OmniLab ATS'nin kaynaklarınıza (ör. Google Cloud Storage, Google Drive) erişirken varsayılan olarak kullanacağı bir hizmet hesabı ayarlayabilirsiniz. Hizmet hesabınızın kimliğini doğrulamak için Hizmet Hesabı Anahtarını Yükle'yi tıklayın ve hizmet hesabınızın JSON anahtar dosyasını seçin.

Hizmet Hesabı Belirleyin

Şekil 2. Hizmet hesabını ayarlama.

Hizmet hesabının kimliği başarıyla doğrulandığında, sayfanın sağ üst köşesinde hesap e-posta adresi görünür. Hizmet hesabını değiştirmek için hesap adını tıklayın, mevcut varsayılan hesabı kaldırın ve yeni bir hizmet hesabı anahtarı yükleyin.

Hizmet hesabını değiştirme

Şekil 3. Hizmet hesabını değiştirme.

Yapılandırma kümelerini içe aktarma

Yapılandırma grubu, ilgili cihaz işlemleri ve derleme kanalları da dahil olmak üzere test paketlerini çalıştırmak için bir yapılandırma paketidir. Yapılandırma kümeleri, belirli bir Google Cloud Storage (GCS) paketinde barındırılır. GCS derleme kanalının kimliğini Google Hesabınızla doğruladıktan sonra, kullanabileceğiniz tüm yapılandırma gruplarının listesini görürsünüz.

Test İstasyonu ana makinenize eklemek istediğiniz tüm yapılandırma gruplarını seçin ve Seçilenleri İçe Aktar'ı tıklayın.

Yapılandırma kümelerini içe aktarma

4.Şekil Yapılandırma grubunu içe aktarma.

Kablosuz ayarlarını dahil etme

Bazı CTS testleri için cihazınızın bir kablosuz hotspot'a bağlanması gerekir. Kablosuz ağınızı seçmek için Kablosuz SSID'yi ve isteğe bağlı Kablosuz PSK'yi girin.

Kablosuz Ayarları

5. Şekil. Kablosuz hotspot ayarları.

Kurulum Sihirbazı tamamlandıktan sonra sayfa, yeni ayarlar uygulanmış şekilde yeniden yüklenir.

Cihaz bağla

Test amacıyla cihaz kullanmak için USB üzerinden hata ayıklama etkinleştirilmelidir. Hata ayıklamayı etkinleştirmek için:

  1. Geliştirici seçeneklerini etkinleştirme ve hata ayıklama başlıklı makaledeki talimatları uygulayın.

  2. Özel ADB anahtarlarıyla önceden yüklenmiş test Android derlemelerini kullanmayı planlıyorsanız özel .adb_key dosyalarını ~/.android/ dizininin altına koyun.

    Dosyalar otomatik olarak yüklenir ve cihaz bu derlemeleri çalıştıracak şekilde yüklendikten sonra USB hata ayıklama özelliğini otomatik olarak etkinleştirmek için ADB'ye iletilir.

  3. Cihazı, USB kullanarak ana makineye bağlayın.

    Cihaz, web arayüzü yenilendikten sonraki bir dakika içinde OmniLab ATS Cihazlar sekmesinde görünür. Bu sekmede cihazların durumunu da görüntüleyebilirsiniz.

    Cihaz bağlama

    Şekil 6. Bir cihaza bağlanılıyor.

Farklı cihaz durumları şunlardır:

  • Kullanılabilir: Cihaz bağlı ve test çalıştırmaya hazır.
  • Ayrıldı: Cihaz bağlı ve bir test çalıştırıyor. Her cihaz aynı anda yalnızca bir test çalıştırabilir. Bu nedenle, cihazın yeni bir test çalıştırmadan önce mevcut testini tamamlaması gerekir.

Testi çalıştırma

Test seçin

OmniLab ATS, önceden paketlenmiş bir dizi CTS yapılandırması ile birlikte gelir. Bu testlerden birini çalıştırmak için Test Paketleri sekmesine gidin ve seçilen test için Run test (Testi çalıştır) seçeneğini tıklayın.

Test seçme

Şekil 7. Test seçme.

Mevcut testleri düzenlemek veya yeni test eklemek için Test ekleme başlıklı makaleyi inceleyin.

Test çalıştırmasını yapılandırma

Bu test çalıştırması için kullanılacak parametreleri düzenleyin. Çoğu parametre, seçilen test yapılandırmasında tanımlanan değerlerle önceden doldurulur.

Bu adım, varsayılan değerler kullanılarak tamamlanabilir ancak Maks. Yeniden Deneme ve Komut gibi parametrelerin herhangi birini ihtiyaçlarınıza göre değiştirebilirsiniz.

Test Çalıştırmasını Yapılandırma

Şekil 8. Test çalıştırmasını yapılandırma.

Test çalıştırma parametreleri şunlardır:

  • Ad: Çalıştırmak istediğiniz test paketinin adı.
  • Çalıştırma Sayısı: Planlandığında bu test çalıştırmasının kaç kez yürütülmesi gerektiği. Test çalıştırmaları, Trade Federation kullanılarak planlanır. Bu araç, kapasitesi varsa 20'ye kadar test çalıştırmasını paralel olarak yürütür.
  • Maks. Yeniden Deneme: En az bir test başarısız olursa bir test çalıştırmanın yeniden denenme sayısı. Bu, güvenilir olmayan testleri yönetmek amacıyla tam CTS çalıştırması için genellikle 4-6 yeniden deneme olarak ayarlanır.
  • Sıralama Zaman Aşımı: Bir test çalıştırma işlemi Sırada durumunda çok uzun süre kalırsa otomatik olarak iptal edilir. İptalden önce beklemeniz gereken süreyi burada belirtin. Varsayılan sıklık 24 saattir.
  • Komut: Test paketini çalıştırma komutu. Buraya ek komut satırı bağımsız değişkenleri girebilirsiniz. Örneğin, CTS 8.1'de aşağıdakilerle belirli bir modülü çalıştırın:

    cts-suite -m ShortModuleName
    
  • Tekrar Deneme Komutu: Bir test paketini yeniden deneme komutu. Buraya başka komut satırı bağımsız değişkenleri ekleyebilirsiniz. Örneğin, yalnızca CTS 8.1'de belirli bir modülü yeniden denemek için şunu kullanın:

    cts --retry 0 -m ShortModuleName
    

    Yeniden deneme bağımsız değişkenleri, ilk komutta kullanılabilenlerden farklı olabilir. Bu nedenle, seçili test paketinin resmi sitesinde desteklenen parametreleri kontrol edin.

  • Önceki Test Çalıştırması: Önceki bir test çalıştırmasını yeniden çalıştırmak istiyorsanız:

    • Yerel: Çalıştırma mevcut ana makinede başlatıldıysa test çalıştırmasının ayrıntılarını görüntülerken görülen test çalıştırma kimliğini girin.

      Yerel Önceki Test Çalıştırması

      9. Şekil. Yerel önceki test çalıştırma.

    • Uzak: Çalıştırma farklı bir ana makinede başlatıldıysa Uzak'ı seçip Test Sonuçları Dosyasını Yükle'yi tıklayıp yerel depolama alanınızdan bir dosya seçerek test sonuçları dosyasını yükleyin.

      Önceki Test Çalıştırmasını Uzaktan Görüntüleme

      Şekil 10. Uzaktan önceki test çalıştırması.

Cihazları seçin

Test paketini çalıştırmak için ayrılacak cihazları seçmek üzere onay kutularını tıklayın. Parça sayısı, seçilen cihaz sayısıyla eşleşecek şekilde otomatik olarak değişmelidir.

Cihazları Seçin

Şekil 11. Cihazlar seçiliyor.

Cihazları seri numaraları dışındaki özelliklere göre seçmek için "Cihaz Özellikleri"ni manuel olarak girebilirsiniz. Örneğin, ürün adı "bramble" olan 3 cihaz seçmek için aşağıdakileri girin:

product:bramble;product:bramble;product:bramble

Desteklenen özellikler şunlardır:

  • build_id
  • device_serial
  • device_type [cihaz_türü]
  • ana makine adı
  • ürün
  • ürün_varyant
  • sim_state

Test çalıştırmasının yürütülebilmesi için seçilen tüm cihazlar Kullanılabilir durumunda olmalıdır ve test çalıştırması yürütüldüğünde tüm cihazlar Ayrılan durumuna geçer. Test çalıştırması, cihazların kullanılabilir hale gelmesini beklerken Sırada durumundadır.

Cihaz işlemleri ekleme

Cihaz işlemleri, her test çalıştırmadan önce yürütülebilecek komut dosyalarıdır. Yanıp sönme ve yeniden başlatma gibi bazı cihaz işlemleri önceden yapılandırılmış olarak gelir. Yeni cihaz işlemleri oluşturmak için Yeni cihaz işlemi oluşturma başlıklı makaleyi inceleyin.

Cihaz İşlemleri

Şekil 12. Cihaz işlemleri.

Test çalıştırmasına cihaz işlemi eklemek için Yeni işlem ekle'yi tıklayın, eklenecek işlemlerin onay kutularını işaretleyin ve İşlem Ekle'yi tıklayın. Cihaz işlemleri sırayla gerçekleştirilir. İşlemleri sürükleyerek yeniden sıralayabilirsiniz.

İşlem ekleme

Şekil 13. İşlemleri yeniden sıralama.

Test kaynaklarını ayarlama

Test kaynakları, test çalıştırmak için gereken dosyalardır. Örneğin, CTS'yi çalıştırmak için android-cts*.zip dosyası gerekir. Bir cihazın yanıp sönmesi için derleme görüntüsünü sağlamanız gerekir.

Test paketi zip dosyasının indirme URL'si varsayılan olarak iş ortaklarına verilen Google Drive bağlantıları olmalıdır. Göz at'ı tıklayarak farklı bir dosya seçebilirsiniz. Pop-up pencerede dosya indirme bağlantısı girebilir, kimliği doğrulanmış bir derleme kanalından dosya kullanabilir veya yerel depolama alanından kullanmak üzere dosya yükleyebilirsiniz.

Test Kaynakları

Şekil 14. Test kaynakları.

Aşağıda, web URL'sine göre test kaynağı seçmek için kullanılan pop-up pencere gösterilmektedir. İndirme URL'si bağlantısını girip Seç düğmesini tıklayarak seçimi onaylayabilirsiniz.

Test Kaynak Seçicisi - Web URL'si

Şekil 15. Test Kaynak Seçici - Web URL'si.

Google Grive, Google Cloud Storage (GCS) veya başka kanallara kaynak yüklediyseniz ilgili kanalın sekmesine gidip oradaki kaynakları da seçebilirsiniz. Aşağıda, Google Drive'dan kaynak seçme örneği verilmiştir.

Test Kaynak Seçici - Google Drive

Şekil 16. Test Kaynak Seçici - Google Drive.

Dosya adı alanında, yalnızca dosya seçmenin yanı sıra joker karakterler de desteklenir. Dokümanları burada bulabilirsiniz.

Test Kaynağı Seçici - Joker Karakter Deseni Desteği

Şekil 17. Test Kaynak Seçici - Joker karakter şablonu desteği.

OmniLab ATS'nin yerel dosya depolama alanından da dosya seçebilirsiniz. Bu depolama alanına dosya yükleyebilir veya yerel dosyaları ve dizinleri doğrudan kullanabilirsiniz.

Test Kaynak Seçici - Yerel Dosya Deposu

Şekil 18. Test Kaynak Seçici - Yerel dosya deposu.

Yeniden çalıştırma yapılandırmaları ekle

Birincil çalıştırma tamamlandıktan sonra başlayacak ve sonuçlarını yükleyecek yeniden çalıştırma işlemleri planlayabilirsiniz. Bu işlemlerde farklı cihaz, işlem veya kaynaklar kullanabilirsiniz.

Yeniden çalıştırma yapılandırmaları ekleme

Şekil 19. Yeniden çalıştırma yapılandırmaları ekleme.

Test çalıştırması başlatma

Test çalıştırma için gereken bilgileri girdikten sonra Test Çalıştırmayı Başlat'ı tıklayın. Tüm bilgiler geçerliyse test çalıştırması başlar ve test çalıştırmasının ayrıntılarını ve ilerlemesini görebileceğiniz bir sayfaya yönlendirilirsiniz.

Test Çalıştırmayı Başlat

Şekil 20. Test çalıştırması başlatma.

Test planı oluşturma

Test planları, periyodik bir programda test çalıştırmaları oluşturmak için kullanılır. Örneğin, CTS 9.0’ı her gün saat 17:00’de çalıştırmak. Yeni bir test planı oluşturmak için Yeni bir test planı oluştur'u tıklayın.

Test planı oluşturma

Şekil 21. Test planı oluşturma.

Test planını yapılandırma

Test planının adını ve eklemek istediğiniz etiketleri girin. Ardından, kullanılacak bir program seçin.

  • Manuel: Test planı, yalnızca kullanıcı test planı listesi sayfasında Test planını çalıştır'ı tıkladığında test çalıştırmaları oluşturur.
  • Düzenli: Test planı, test çalıştırmalarını seçilen düzenli programda otomatik olarak planlar. Örneğin, her gün saat 17:00'de bir test çalıştırma planlayabilirsiniz.
  • Özel: Test planı, girilen cron ifadesine göre test çalıştırmalarını otomatik olarak planlar. Örneğin, her gün saat 17:00'de bir test çalıştırması planlamak için cron ifadesi 0 17 * * * olur.

Test planını yapılandırma

Şekil 22. Test planı yapılandırma.

Test paketleri ekleme

+ Test çalıştırma yapılandırması ekle'yi tıklayarak test planı tarafından planlanmasını istediğiniz test paketlerini ekleyin. Ad açılır listesinden bir test paketi seçin ve Sonraki adım'ı tıklayın. Ardından, testi çalıştırmak istediğiniz cihazları seçin ve Yapılandırma Ekle'yi tıklayın. Her test planı için birden fazla yapılandırma ekleyebilirsiniz.

Test Çalıştırmasını Yapılandırma

Şekil 23. Test çalıştırmasını yapılandırma.

Cihaz işlemleri ekleme

Her test çalıştırmasından önce yürütülmesini istediğiniz cihaz işlemlerini ekleyin. Daha fazla bilgi için Cihaz işlemleri ekleme başlıklı makaleyi inceleyin.

Cihaz işlemleri ekleme

Şekil 24. Cihaz işlemleri ekleme.

Test kaynaklarını ayarlama

Test kaynaklarını test planlarına eklemek, bunları tek tek test çalıştırmalarına eklemekle aynıdır. Daha fazla bilgi için Test kaynaklarını ayarlama bölümüne bakın.

Test Kaynaklarını Ayarlama

Şekil 25. Test kaynaklarını ayarlama.

Test çalıştırmalarını göster

Test çalıştırma listesi

Planlanmış test çalıştırmalarının listesini Test Çalıştırmaları sayfasında görebilirsiniz. Test çalışmasıyla ilgili daha fazla ayrıntı görmek için Görüntüle'yi tıklayın.

Listeyi, filtre çubuğuna bir dize girip Enter tuşuna basarak da filtreleyebilirsiniz. Birden fazla filtreyi virgülle ayırarak kullanabilirsiniz. Filtre, Status (Durum) ve Created (Oluşturuldu) hariç olmak üzere herhangi bir sütunda tam metni içeren (alt dize eşleşmesi olmayan) tüm satırları döndürür.

Boş bir filtre tüm satırları döndürür. Şu anda boş değerleri olan satırları filtrelemenin bir yolu yoktur.

Test Çalıştırma Listesi

Şekil 26. Test çalıştırma listesi.

Test çalıştırma ayrıntıları

Test çalıştırmasının ayrıntılarını (ör. durum, günlükler ve sonuçlar) burada görüntüleyebilirsiniz.

Test Çalıştırma Ayrıntıları

Şekil 27. Test çalıştırma ayrıntıları.

Test çalıştırma durumu

Test çalıştırmasının ilerleme durumu, Durum bölümünde gösterilir. İndirme ilerleme durumu, iptal nedeni veya hata mesajı gibi ilgili bir mesaj varsa bu mesaj da burada gösterilir.

Test Çalıştırma Durumu

Şekil 28. Test çalıştırma durumu.

Test çalıştırma durumları şunlardır:

  • Bekleme: Gerekli kaynaklar indiriliyor.
  • Sıraya alındı: Test, bir cihaz kullanılabilir olduğunda çalıştırılmaya hazırdır.
  • Çalışıyor - Test, tahsis edilen bir cihazda çalışmaktadır.
  • Tamamlandı: Test tamamlandı ve sonuçları raporlandı.
  • İptal edildi - Test, kullanıcı tarafından iptal edilmiştir veya kullanılabilir cihazları bulmaya çalışırken zaman aşımına uğramıştır.
  • Hata: Testin çalışmasını engelleyen bir hata oluştu.

Test çalışmasını iptal etme

Test çalışması tamamlanmadıysa İptal'i ve ardından onay iletişim kutusunda Evet'i tıklayarak iptal edebilirsiniz. Ayrıca test çalıştırmaları, queue_timeout_seconds alanından daha uzun Queued durumunda kalırsa otomatik olarak iptal edilir. Çalışıyor durumundaki bir test çalıştırmanın iptal edilmesinin geçerlilik kazanması birkaç dakika sürebilir.

Test Çalıştırmasını İptal Et

Şekil 29. Test çalıştırmasını iptal etme.

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

Test çalışması tamamlandıktan sonra sonuçlar toplanır ve gösterilir. Her bir çalıştırmanın okunu tıklayarak ek ayrıntıları görüntüleyebilirsiniz. Toplanan test yapılarını (ör. test_result.xml ve test_result_failures.html) görmek için Çıkış Dosyalarını Görüntüle'yi tıklayın.

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

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

Canlı ana makine ve Tradefed günlüklerini Günlük sekmesinde görüntüleyebilirsiniz.

Test Çalıştırma Günlükleri

Şekil 31. Günlükler sekmesi.

Modüllerin sonuçları Test Sonuçları sekmesinde yer alır.

Test Sonuçları Sekmesi

Şekil 32. Test Sonuçları sekmesi.

Test kaynakları olarak kullanılan dosyaları Test Kaynakları sekmesinde 'ı tıklayarak indirebilirsiniz.

Test Kaynakları Sekmesi

Şekil 33. Test Kaynakları sekmesi.

Test çalıştırmasının ayrıntılarını (ör. create_time) görmek için Yapılandırma sekmesine gidin.

Test Yapılandırması Sekmesi

Şekil 34. Yapılandırma sekmesi.

Gelişmiş özellikler

Yapılandırma dosyalarını yönetme

OmniLab ATS, testler, derleme kanalları ve cihaz işlemleri gibi önceden tanımlanmış seçenekleri yüklemek için YAML ile yazılmış yapılandırma dosyalarını kullanır. Aşağıda bir örnek yapılandırma dosyası verilmiştir:

// example_file.yaml
tests:
- id : android.cts.9_0.arm
  name: CTS 9.0 (ARM)
  test_resource_defs:
  - name: android-cts.zip
    default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
    test_resource_type: TEST_PACKAGE
  command: cts
  env_vars:
  - name: TF_PATH
    value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
  - name: LD_LIBRARY_PATH
    value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
  setup_scripts:
  output_file_patterns:
  - android-cts/logs/latest/.*
  - android-cts/results/latest/.*\.html
  - android-cts/results/latest/compatibility_result\..*
  - android-cts/results/latest/logo.png
  - android-cts/results/latest/test_result.xml
  result_file: test_result.xml
  java_properties:
  - name: CTS_ROOT
    value: ${TF_WORK_DIR}
  context_file_dir: android-cts/results/
  context_file_pattern: '[\d_\.]+\.zip'
  retry_command_line: retry --retry 0
  runner_sharding_args: --shard-count ${TF_SHARD_COUNT}

build_channels:
- id: google_drive
  name: Google Drive
  provider_name: Google Drive

device_actions:
- id: flash
  name: Flash
  test_resource_defs:
  - name: bootloader.img
    test_resource_type: DEVICE_IMAGE
  - name: radio.img
    test_resource_type: DEVICE_IMAGE
  - name: img.zip
    test_resource_type: DEVICE_IMAGE
  tradefed_target_preparers:
  - class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
    option_values:
    - name: work-dir
      values:
      - ${TF_WORK_DIR}
    - name: host-setup-command
      values:
      - adb -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL flash bootloader bootloader.img
      - fastboot -s $SERIAL flash radio radio.img
      - fastboot -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL -w update img.zip
      - adb -s $SERIAL wait-for-device
    - name: host-cmd-timeout
      values:
      - 10m

OmniLab ATS örneğinizi kurarken yapılandırmanızı dosya olarak dışa aktararak diğer kullanıcılarla paylaşabilirsiniz. Bunu yapmak için Ayarlar sayfasına gidin ve sağ üstteki Dışa aktar'ı tıklayın.

Yapılandırma Dosyası Yönetimi

Şekil 35. Yapılandırma dosyası yönetimi.

Yapılandırma dosyanız indirildikten sonra dosyayı diğer kullanıcılarla paylaşın. İçe Aktar'ı tıklayıp yapılandırma dosyasını seçerek yapılandırma dosyasını OmniLab ATS örneğine ekleyebilirler.

Yeni bir cihaz işlemi oluşturma

Cihaz işlemleri, cihaz kurulum işlemini otomatikleştirmek için kullanılır. İşlemler, yeniden denemelerden önce de dahil olmak üzere her test çalıştırmadan önce testin çalıştığı her cihazda çalıştırılan komut dosyalardır. Kullanılabilir cihaz işlemlerinin listesini görüntülemek için Ayarlar sayfasına gidip Cihaz İşlemleri sekmesini tıklayın. Yeniden başlatma ve önyükleme gibi çeşitli cihaz işlemleri önceden yapılandırılmış olarak gelir.

Cihaz İşlemleri sekmesi

Şekil 36. Cihaz İşlemleri sekmesi.

Yeni cihaz işlemi ekleme

  1. Yeni cihaz işlemi'ni tıklayın.

    Yeni Cihaz İşlem düğmesi

    Şekil 37. Yeni cihaz işlem düğmesi.

  2. Ad ve açıklama girin.

    Cihaz işleminin adı

    38. Şekil. Cihaz işleminin adı.

  3. Hedef Hazırlayıcı Ekle'yi tıklayın.

  4. Trade Federation hedef hazırlayıcısının tam sınıf adını girin (ör. com.android.tradefed.targetprep.RunHostCommandTargetPreparer).

    Hedef Hazırlayıcı ekleme

    Şekil 39. Hedef hazırlayan ekleme.

    Kullanılabilir hedef hazırlayıcıların listesini com.android.tradefed.targetprep referansında bulabilirsiniz.

    Hedef Hazırlayıcı Listesi

    Şekil 40. Hedef Hazırlayıcı listesi.

  5. Hedef hazırlayıcıyla kullanılacak tüm seçenekleri ekleyin. Kullanılabilir seçenekleri görüntülemek için AOSP'deki her hedef hazırlayıcının kaynak koduna yönelik targetprep öğesini kontrol edin:

    İşlem Seçeneği Örneği

    Şekil 41. İşlem seçeneği örneği.

  6. Seçenek eklemek için Hedef Hazırlayıcı Seçeneği Ekle'yi tıklayın ve gerekli değerleri girin.

    İşlem Komutu Örneği

    Şekil 42. İşlem komutu örneği.

  7. Cihaz işlemini yürütmek için gereken test kaynaklarını tanımlayın (ör. önyükleme için resim oluşturma). Kaynak tanımı eklemek için Test Kaynağı Ekle'yi tıklayın ve gerekli alanları doldurun. Dosyalarınızın nerede olduğunu biliyorsanız göz at'ı tıklayarak varsayılan bir indirme URL'si sağlayabilirsiniz. Hedef hazırlayıcılar dizini test kaynağı olarak kabul ediyorsa Sıkıştırmayı kaldır'ı seçin. Ardından, geçici çalışma dizininin altındaki göreli Hedef dizinini ve sıkıştırması kaldırılacak Dosya Adlarını belirtin. Dosya adı belirtilmezse tüm dosyaların sıkıştırması test kaynağından kaldırılır.

    İşlem Testi Kaynakları

    Şekil 43. İşlem test kaynakları.

  8. Güncelle'yi tıklayın.

    İşlem Değişikliklerini Kaydet

    Şekil 44. İşlem kaydetme işlemi.

Testleri yönetme

Testi düzenleme

Kayıtlı bir testi düzenlemek için Testler sayfasına gidin ve değiştirmek istediğiniz testin satırında Düzenle'yi tıklayın. Test yapılandırmasını değiştirdikten sonra Güncelle'yi tıklayın.

Testi düzenleyin

45.şekilde Testi düzenleme

Yeni test ekleme

Yeni bir test eklemek için Testler sayfasına gidip Yeni Test Oluştur'u tıklayın. Uygun bilgileri girin ve Oluştur'u tıklayın.

Test oluşturma

Şekil 46. Test oluşturma.

Testi kopyalama

Şekil 47. Bir testi kopyalama.

Ana makine yapılandırmalarını dışa aktarma

Bir ana makineyi yapılandırdıktan sonra ana makinenin yapılandırmalarını bir dosyaya aktarabilirsiniz. Kayıtlı yapılandırmaları kopyalamak için bu dosyayı diğer ana makinelere yükleyebilirsiniz.

Bir ana makinenin yapılandırmalarını dışa aktarmak için Ayarlar sayfasına gidin ve sağ üst köşedeki Dışa aktar'ı tıklayın.

Ana makine yapılandırmalarını dışa aktarma

Şekil 48. Ana makine yapılandırmasını dışa aktarma.

Ana makine yapılandırma dosyasını içe aktarmak için Ayarlar sayfasına gidin ve sağ üst köşedeki İçe aktar'ı tıklayın.

Ana makine yapılandırmalarını içe aktarma

49. Şekil. Ana makine yapılandırmasını içe aktarma.

Yerel dosyaları ve dizinleri kullanma

R11 sürümünden itibaren, $HOME/.ats_storage dizinindeki dosyalara OmniLab ATS'de otomatik olarak erişilebilir. Bir dosyayı bu dizine kopyalayın veya taşıyın. Ardından, test çalıştırması planlarken Yerel Dosya sekmesinden dosyayı seçebilirsiniz.

cp /path/to/file $HOME/.ats_storage

Yerel dosya seçme

Şekil 50. $HOME/.ats_storage dizininden bir dosya seçiliyor.

--mount_local_path işaretçisini kullanarak yerel dosya deposuna başka dizinler de bağlayabilirsiniz.

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

Ek olarak monte edilen dizinler

Şekil 51. Yerel dosya deposuna eklenen ek dizinler.

Çoklu ana makine modunu etkinleştirme

Çoklu ana makine moduyla kullanıcılar, birden fazla ATS çalışan ana makinesindeki cihazları ve testleri yönetmek için tek bir ATS denetleyici ana makinesi kullanabilir.

Çoklu ana makine modu mimarisi

Şekil 52. Çoklu ana makine modu mimarisi.

  1. ATS denetleyicisini başlatmak için aşağıdaki komutu kullanın:

    mtt start --operation_mode=ON_PREMISE
    
  2. Denetleyiciye http://${CONTROLLER_HOSTNAME}:8000 adresinden erişilip erişilemediğini kontrol edin.

  3. Çalışanları başlatmak için aşağıdaki komutu kullanın:

    mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
    

Ağınız, ana makinelerin birbiriyle iletişim kurmasına izin vermiyorsa aşağıdaki ATS çalışanıyla ilgili daha gelişmiş kurulum talimatlarını uygulamanız gerekir.

  1. SSH tünelleri kullanarak iki ana makineyi bağlayın. Birincil ve dosya sunucusu bağlantı noktaları için bağlantı noktaları seçin (ör. 9000 ve 9006).

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. ATS'yi yapılandırın ve başlatın.

    DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
    socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
    socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
    mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \
                    --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \
                    --operation_mode=ON_PREMISE
    

Dosya temizleyici

Dosya temizleyici, kullanıcı tanımlı yapılandırmalara göre dosyaları temizlemek için saatlik olarak çalışan bir cron işidir. ATS, test çalıştırma sonuçlarını arşivlemek ve geçici dosyaları silmek için iki varsayılan yapılandırmaya sahiptir. Bu kılavuzda, dosyalarınızı etkili bir şekilde yönetmek için politikaları ve yapılandırmaları nasıl özelleştireceğiniz açıklanmaktadır.

Politikalar

Politikalar, dosya veya dizinlerde yapılacak işlemi ve hedefleri seçme ölçütlerini tanımlar. Kullanılabilir işlemler tabloda gösterilir:

İşlem türüParametreler
ARCHIVEremove_file: true ise dosyayı arşivledikten sonra kaldırın.
DELETE

Kriterler, dosya özelliklerine ve sistem bilgilerine dayanır. Kullanılabilir ölçütler tabloda gösterilmiştir:

Ölçüt türüAçıklamaParametreler
LAST_MODIFIED_TIMEDosyaları son değiştirilme tarihlerine ve saatlerine göre filtreleyin.ttl: 10m, 2h, 7 days, 4w gibi çeşitli zaman ifadeleri desteklenir. Desteklenen biçimler için pytimeparse bölümüne bakın.
LAST_ACCESS_TIMEDosyaları son erişim tarihlerine ve saatlerine göre filtreleyin.LAST_MODIFIED_TIME ile aynı.
NAME_MATCHNormal ifade kullanarak dosyaları adlarına göre filtreleyin.pattern: Sonuç sıkıştırmalarını eşleştirmek için normal ifade (ör. [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip).
SYSTEM_AVAILABLE_SPACESistemdeki kullanılabilir alana göre işlemleri tetikleyin.threshold: Kullanılabilir alan eşiğin altına düştüğünde işlemi tetikleyin. Örneğin, 200(B), 200KB, 200MB, 200GB, 2TB.

Yeni dosya temizleyici politikası

Şekil 53. Yeni bir dosya temizleyici politikası ekleyin.

Yapılandırmalar

Yapılandırma, bir veya daha fazla politikayı belirli dizinlerle birleştirir. Belirtilen dizinlerdeki dosyalar ve dizinler, tanımlanan politikalara göre işlenir. Politikalar, yapılandırmada göründükleri sırayla uygulanır.

Tüm hedef dizinler, /data dizininin altında olmalıdır. Yapılandırmanız hedef dizini logs olarak belirtiyorsa bu değer /data/logs olarak yorumlanır.

Dosya temizleyici yapılandırmasını düzenleme

Şekil 54. Dosya temizleyici yapılandırmasını düzenleyin.

Sıfırla

Ayarları Sıfırla'yı tıkladığınızda dosya temizleyici yapılandırması varsayılan durumuna geri döner. Bu işlemle TÜM özel öğeler temizlenir.

Dosya temizleyici ayarlarını sıfırlama

Şekil 55. Dosya temizleyici ayarlarını sıfırlayın.

Destek

Hata raporları

OmniLab ATS'ye katkıda bulunarak aracın geliştirilmesini destekleyebilirsiniz. Katkılarınızı bekliyoruz. En son sürümle ilgili ayrıntılar için OmniLab ATS sürüm notlarına bakın. Hataları bildirmek veya öneride bulunmak için hata raporu gönderin. İş ortakları, hataları veya önerileri iş ortağı kanallarını kullanarak bildirmelidir.