OmniLab Android Test İstasyonu

OmniLab ATS, Android geliştiricilerin ve test mühendislerinin Android Uyumluluk Test Paketi (CTS) gibi standart Android test paketlerini çalıştırmak için kullanıcı arayüzü kullanabileceği bir test aracıdır. Bu araç, Trade Federation (TF) ve Google Mobly gibi çeşitli test çerçeveleri için bir web arayüzü görevi görür. Bu sayede, minimum kurulumla bir dizi test cihazında CTS ve çok cihazlı testler yapabilir, ayrıca testleri sürekli olarak çalıştırmak için 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 kodunu kullanır:

OmniLab ATS'yi yükleme

Çalıştırdığınız test paketleriyle ilgili donanım ve yazılım gereksinimlerini karşılayın.

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 gereksinimini kullanmanızı öneririz.

OmniLab ATS'yi yüklemenin iki yolu vardır:

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ükleyip 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 kurulum 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 açmanız gerekebilir.

Python 3'ü yükleyin.

OmniLab ATS CLI, 3.7-3.11 arasındaki Python sürümleriyle doğrulanmıştır.

Ubuntu 16.04 veya önceki sürümlerde, önce aşağıdakilerden birini yaparak Python 3 için depoyu 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

Belirli bir Python 3 sürümünü (örneğin, 3.10) yüklemek için bunun yerine şu komutları çalıştırın:

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

OmniLab ATS CLI'yı edinme

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 kez başlatıldığında görünmesi birkaç dakika sürebilir. CLI, tarayıcıda kullanıcı arayüzüne erişmek için bir web URL'si görüntüler. Varsayılan olarak web URL'si localhost:8000 şeklindedir. 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ı'nı inceleyebilirsiniz.

Mevcut 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 aşağıdaki komutu çalıştırın. Bu komut, geçerli veritabanını ana dizininizde mtt-backup.tar adlı bir TAR dosyasına yedekler:

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

Geri yüklemek için uygulamayı başlatmadan önce 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 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ı üzerinden 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 dosyayı yükleyip söz konusu ana makinede değiştirilen tüm yapılandırmaları kopyalayabilirsiniz.

Yapılandırma Yedeğini Geri Yükleme

1. şekil. Yapılandırma yedeğini 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 kullandığı bir hizmet hesabı ayarlayabilirsiniz. Hizmet hesabınızın kimliğini doğrulamak için Upload Service Account Key'i (Hizmet Hesabı Anahtarını Yükle) tıklayın ve hizmet hesabınızın JSON anahtar dosyasını seçin.

Hizmet Hesabı Ayarlama

Şekil 2. Hizmet hesabını ayarlama

Hizmet hesabı başarıyla kimlik doğrulandığında hesap e-posta adresi sayfanın sağ üst köşesinde 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

3.Şekil 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ırmaya yönelik 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ı Google Hesabınızla doğruladıktan sonra, kullanabileceğiniz tüm yapılandırma kümelerinin listesini görürsünüz.

Test İstasyonu ana makinenize eklemek istediğiniz yapılandırma kümelerini seçip Seçilenleri İçe Aktar'ı tıklayın.

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

Şekil 4. Yapılandırma kümesi içe aktarma.

Kablosuz ağ ayarlarını dahil et

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

Kablosuz Ayarları

5.şekil Kablosuz hotspot ayarları.

Kurulum sihirbazını tamamladıktan sonra sayfa, yeni ayarlar uygulanmış şekilde yeniden yüklenir.

Cihaz bağla

Bir cihazı test için kullanmak üzere USB hata ayıklama etkinleştirilmelidir. Hata ayıklamayı etkinleştirmek için:

  1. Geliştirici seçeneklerini ve hata ayıklamayı etkinleştirme 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/ dizinine yerleştirin.

    Dosyalar otomatik olarak yüklenir ve bu derlemelerin yüklü olduğu cihazlar için cihazın flash'ı yapıldıktan sonra USB hata ayıklamayı otomatik olarak etkinleştirmek üzere 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. Cihazların durumunu bu sekmede de görüntüleyebilirsiniz.

    Cihaz bağlama

    6.şekil Cihaz bağlama

Farklı cihaz durumları şunlardır:

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

Testi çalıştırma

Bir test seçin

OmniLab ATS, önceden paketlenmiş bir dizi CTS yapılandırmasıyla birlikte gelir. Bu testlerden birini çalıştırmak için Test Paketleri sekmesine gidip seçilen test için Testi çalıştır'ı tıklayın.

Test seçin

Şekil 7. Test seçme

Testleri düzenlemek veya yeni testler eklemek için Test ekleme başlıklı makaleyi inceleyin.

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

Bu belirli 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 Maksimum Yeniden Deneme ve Komut gibi parametreleri ihtiyaçlarınıza göre değiştirebilirsiniz.

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

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

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

  • Ad: Çalıştırmak istediğiniz test paketinin adı.
  • Çalıştırma sayısı: Bu test çalıştırmasının planlandığında kaç kez yürütülmesi gerektiği. Test çalıştırmaları, kapasite olması durumunda 20'ye kadar test çalıştırmasını paralel olarak çalıştıran Ticaret Federasyonu kullanılarak planlanır.
  • Maksimum yeniden deneme sayısı: En az bir test başarısız olursa test çalıştırmasının yeniden denenebileceği maksimum sayı. Bu değer, genellikle tam bir CTS çalıştırması için 4-6 yeniden deneme olarak ayarlanır. Böylece, kararsız testler ele alınabilir.
  • Kuyrukta Zaman Aşımı: Bir test çalıştırması çok uzun süre Kuyrukta durumunda kalırsa otomatik olarak iptal edilir. İptalden önce beklenecek süreyi belirtin. Varsayılan sıklık 24 saattir.
  • Komut: Test paketini çalıştırmak için kullanılan komut. Buraya ek komut satırı bağımsız değişkenleri girebilirsiniz. Örneğin, CTS 8.1'de belirli bir modülü şu komutla çalıştırın:

    cts-suite -m ShortModuleName
    
  • Komutu Yeniden Deneme: Bir test paketini yeniden deneme komutu. Buraya ek komut satırı bağımsız değişkenleri ekleyebilirsiniz. Örneğin, CTS 8.1'de yalnızca 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 komutla kullanılabilenlerden farklı olabilir. Bu nedenle, seçilen test paketi için resmi sitede 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 işlemi mevcut ana makinede başlatıldıysa test çalıştırmasının ayrıntıları görüntülenirken görünen test çalıştırması kimliğini girin.

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

      Şekil 9. Önceki yerel test çalıştırması.

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

      Önceki Test Çalıştırmasını Uzaktan Çalıştırma

      10.şekil Önceki test çalıştırmasını uzaktan çalıştırma.

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şir.

Cihazları seçin.

11.Şekil Cihazları seçme

Cihazları, cihaz 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
  • ana makine adı
  • ürün
  • product_variant
  • sim_state

Test çalıştırmasının yürütülmesi için seçilen tüm cihazlar Kullanılabilir durumunda olmalı ve test çalıştırması yürütüldüğünde tümü Ayrılmış durumuna geçmelidir. Bir test çalıştırması, cihazların kullanılabilir olmasını beklerken Sıraya alındı durumundadır.

Cihaz işlemleri ekleme

Cihaz işlemleri, her test çalıştırmadan önce yürütülebilen komut dosyalarıdır. Bazı cihaz işlemleri (ör. yanıp sönme ve yeniden başlatma) ö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ırması yürütmek için gereken dosyalardır. Örneğin, CTS'yi çalıştırmak için android-cts*.zip dosyası gerekir ve bir cihaza yazılım yüklemek 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ındaki dosyayı kullanabilir veya yerel depolama alanından kullanılacak bir dosya yükleyebilirsiniz.

Test Kaynakları

Şekil 14. Kaynakları test edin.

Aşağıda, web URL'si ile test kaynağı seçmeye yönelik pop-up pencere gösterilmektedir. İndirme URL'si bağlantısını girip Seç düğmesini tıklayarak seçimi onaylayabilirsiniz.

Kaynak Seçiciyi Test Etme - Web URL'si

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

Google Drive, Google Cloud Storage (GCS) veya diğer kanallara kaynak yüklediyseniz ilgili kanalın sekmesine gidip kaynakları buradan da seçebilirsiniz. Google Drive'dan kaynak seçme örneğini aşağıda bulabilirsiniz.

Kaynak Seçiciyi Test Etme - Google Drive

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

Yalnızca dosya seçmenin yanı sıra, Dosya adı alanında joker karakterler de desteklenir. Belgelere buradan ulaşabilirsiniz.

Test Kaynak Seçici - Joker Karakter Kalıbı Desteği

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

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

Test Kaynak Seçici - Yerel Dosya Deposu

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

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

Birincil yayın tamamlandıktan sonra başlayacak ve sonuçları yüklenecek yeniden yayınlar planlayabilirsiniz ancak farklı cihazlar, işlemler 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ırması 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 ilerleme durumunu görüntülemek için bir sayfaya yönlendirilirsiniz.

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

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

Test planı oluşturma

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

Test planı oluşturma

Şekil 21. Test planı oluşturma

Test planını yapılandırın

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

  • Manuel: Test planı, yalnızca bir kullanıcı test planı listesi sayfasında Test planını çalıştır'ı tıkladığında test çalıştırmaları oluşturur.
  • Periyodik: Test planı, seçilen periyodik programa göre test çalıştırmalarını otomatik olarak planlar. Örneğin, her gün saat 17:00'de test çalıştırması planlama.
  • Ö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

22. şekil. 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

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

Cihaz işlemleri ekleme

Her test çalıştırmadan ö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 İşlemleri Ekleme

Şekil 24. Cihaz işlemleri ekleme

Test kaynaklarını ayarlama

Test planlarına test kaynağı eklemek, bunları tek tek test çalıştırmalarına eklemekle aynıdır. Daha fazla bilgi için Test kaynaklarını ayarlama başlıklı makaleyi inceleyin.

Test Kaynaklarını Ayarlama

25. şekil. Test kaynaklarını ayarlama.

Test çalıştırmalarını görüntüleme

Test çalıştırması listesi

Planlanan test çalıştırmalarının listesini Test Çalıştırmaları sayfasında görüntüleyin. Bir test çalıştırması hakkında daha fazla ayrıntı görmek için Görüntüle'yi tıklayın.

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

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

Test çalıştırması listesi

26.şekil Test çalıştırması listesi.

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

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

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

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

Test çalıştırması 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 ileti varsa bu ileti de burada gösterilir.

Test çalıştırması durumu

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

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

  • Beklemede: Gerekli kaynaklar indiriliyor.
  • Sıraya alındı: Test, bir cihaz kullanılabilir olduğunda çalıştırılmaya hazırdır.
  • Çalışıyor: Test, ayrılmış bir cihazda çalışıyor.
  • Tamamlandı: Test tamamlandı ve sonuçları bildirildi.
  • İptal edildi: Test, kullanıcı tarafından iptal edildi veya kullanılabilir cihazlar bulunmaya çalışılırken zaman aşımına uğradı.
  • Hata: Testin çalışmasını engelleyen bir hata oluştu.

Test çalıştırmasını iptal etme

Test yayını tamamlanmadıysa İptal'i ve ardından onay iletişim kutusunda Evet'i tıklayarak iptal edebilirsiniz. Test çalıştırmaları, Queued (Sıraya Alındı) durumunda queue_timeout_seconds alanından daha uzun süre kalırsa otomatik olarak iptal edilir. Çalışıyor durumundayken test çalıştırmasını iptal etmenin etkili olması birkaç dakika sürebilir.

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

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

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

Test çalıştırması tamamlandıktan sonra sonuçlar toplanır ve gösterilir. Her çalıştırma için oku tıklayarak ek ayrıntıları görüntüleyebilirsiniz. test_result.xml ve test_result_failures.html gibi toplanan test yapılarını görmek için Çıkış Dosyalarını Görüntüle'yi tıklayın.

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

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

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

Test çalıştırma günlükleri

Şekil 31. Günlükler sekmesi.

Bağımsız modüllerin sonuçları Test Sonuçları sekmesinde yer alır.

Test Sonuçları Sekmesi

32. şekil. Test Sonuçları sekmesi.

Test Kaynakları sekmesinde 'ı tıklayarak test kaynağı olarak kullanılan dosyaları indirebilirsiniz.

Test Kaynakları Sekmesi

Şekil 33. Test Kaynakları sekmesi

Test çalıştırmasıyla ilgili ayrıntıları (ö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 örnek bir 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 oluştururken 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

35.şekil 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 örneklerine ekleyebilirler.

Yeni bir cihaz işlemi oluşturma

Cihaz işlemleri, cihaz kurulum sürecini otomatikleştirmek için kullanılır. Eylemler, her test çalıştırmadan önce (yeniden denemeler dahil) testin üzerinde çalıştırıldığı her cihazda yürütülen komut dosyalarıdı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 flaşlama gibi çeşitli cihaz işlemleri önceden yapılandırılmıştır.

Cihaz İşlemleri sekmesi

Şekil 36. Cihaz İşlemleri sekmesi

Yeni bir cihaz işlemi ekleme

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

    Yeni Cihaz İşlemi düğmesi

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

  2. Ad ve açıklama girin.

    Cihaz İşlemi adı

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

  3. Hedef hazırlayan ekle'yi tıklayın.

  4. Trade Federation Target Preparer'ın tam sınıf adını girin (ör. com.android.tradefed.targetprep.RunHostCommandTargetPreparer).

    Hedef Hazırlayıcı Ekleme

    39.şekil Hedef hazırlayıcı ekleme.

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

    Hedef Hazırlayıcı Listesi

    40.Şekil Hedef hazırlayan listesi.

  5. Hedef hazırlayıcıyla kullanılacak seçenekleri ekleyin. Mevcut seçenekleri görüntülemek için AOSP'deki her hedef hazırlayıcının kaynak kodunu targetprep'te kontrol edin:

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

    41.şekil İş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. yanıp sönme için derleme resimleri). Kaynak tanımı eklemek için Test Kaynağı Ekle'yi tıklayın ve zorunlu alanları doldurun. Dosyalarınızın nerede bulunduğunu biliyorsanız Gözat'ı tıklayarak varsayılan bir indirme URL'si sağlayabilirsiniz. Hedef hazırlayanlar dizini test kaynağı olarak kabul ediyorsa 'ı seçin. Ardından, geçici çalışma dizini altındaki göreli Hedef dizini ve sıkıştırılmış dosyaların Dosya Adlarını belirtin. Dosya adı verilmezse tüm dosyalar test kaynağında sıkıştırılmış olarak çıkarılır.

    İşlem Testi Kaynakları

    43. şekil. İşlem testi kaynakları.

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

    Eylem: Değişiklikleri Kaydet

    Şekil 44. İşlem değişiklikleri kaydeder.

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üzenleme

Şekil 45. Test düzenleme

Yeni test ekleme

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

Test oluşturma

46.şekil Test oluşturma

Test kopyalama

Şekil 47. Test 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 bilgisayarlara 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

Bir 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

Şekil 49. 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 dosyayı Yerel Dosya sekmesinden seçebilirsiniz.

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

Yerel bir dosya seçme

50.şekil $HOME/.ats_storage dizininden bir dosya seçme

--mount_local_path işaretini kullanarak yerel dosya deposuna ek dizinler bağlayabilirsiniz.

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

Ek olarak bağlanan dizinler

Şekil 51. Yerel dosya deposunda ek dizinler monte edilir.

Çoklu düzenleyen modunu etkinleştirme

Çoklu ana makine modu sayesinde 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

52. şekil. Ç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. Kontrol cihazına http://${CONTROLLER_HOSTNAME}:8000 adresinden erişilebildiğ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ın ana makinelerin birbirleriyle iletişim kurmasına izin vermiyorsa ATS çalışanı üzerinde aşağıdaki daha gelişmiş kurulum talimatlarını uygulamanız gerekir.

  1. SSH tünellerini kullanarak iki ana bilgisayarı birbirine bağlayın. Birincil ve dosya sunucusu bağlantı noktaları için bağlantı noktaları seçin (örneğin, 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 saatte bir ç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

Politika, dosyalarda veya dizinlerde gerçekleştirilecek 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 dosya, arşivlendikten sonra kaldırılır.
DELETE

Ölçütler, dosya özelliklerine ve sistem bilgilerine göre belirlenir. Kullanılabilir ölçütler tabloda gösterilir:

Ölçüt türüAçıklamaParametreler
LAST_MODIFIED_TIMEDosyaları son değiştirilme tarih ve saatine göre filtreleyin.ttl: 10m, 2h, 7 days, 4w gibi çeşitli zaman ifadeleri desteklenir. Desteklenen biçimler için pytimeparse sayfasına bakın.
LAST_ACCESS_TIMEDosyaları son erişim tarih ve saatine göre filtreleyin.LAST_MODIFIED_TIME ile aynıdır.
NAME_MATCHNormal ifade kullanarak dosyaları adlarına göre filtreleyin.pattern: Normal ifade (ör. sonuç zip'lerini eşleştirmek için [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip).
SYSTEM_AVAILABLE_SPACESistemdeki kullanılabilir alana göre işlemleri tetiklemethreshold: 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ı

53.şekil 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 dizini altında bulunmalıdır. Yapılandırmanız hedef dizini logs olarak belirtiyorsa bu, /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şlem, TÜM özel öğeleri temizler.

Dosya temizleyici ayarlarını sıfırlama

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

Destek

Hata raporları

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