ACTS testlerini yapılandır

Bu sayfada ACTS testlerinin nasıl yapılandırılacağı açıklanmaktadır.

Yapılandırma kaynakları

Android Comms Test Suite (ACTS) üç ana yapılandırma kaynağı içerir:

  • Komut satırı arayüzü (KSA)
  • ACTS yapılandırma dosyası
  • Ortam değişkenleri

Bu kaynaklardan gelen değerler, ACTS testi çalıştırmak için kullanılan tek bir yapılandırmada birleştirilir. Birden fazla konumda değer belirtilirse değerlerin üzerine yukarıdaki sıraya (KSA'nın öncelik verdiği) göre yazılır.

Ortam değişkenleriyle ilgili not

ACTS testleri için ortam değişkenlerini kullanırken dikkatli olun. Bu değerler, kullanıcı tarafından en az görülecek değerlerdir ve geliştiricinin iş istasyonu dışında kullanılması önerilmez. Ortam zehirlenmesini önlemek için ACTS otomatik testleri sırasında çevre değişkenleri devre dışı bırakılır.

Gerekli yapılandırma değişkenleri

Her ACTS testi için aşağıdaki değişkenlerin ayarlanması gerekir.

ACTS test yolları

ACTS tek bir ana giriş konumundan çalışır. Sonuç olarak, koşucu, test yolunun konumunu bilmez.

Test yolu konumunu, ACTS_TESTPATH ortam değişkenini kullanarak veya komut satırında -tp/--testpaths işaretiyle ayarlayın. Değer, bir dizin listesi olabilir.

ACTS test sınıfları

ACTS, hangi test sınıflarının çalıştırılacağını bilmelidir. Bu, bir normal ifade veya test sınıfı adlarından oluşan bir liste olabilir.

Bu değeri ayarlamak için komut satırında -tc/--test_class işaretini kullanın. Bu işaretin sınıf adlarının bir listesini de kabul ettiğini unutmayın. Sınıf adları, karşılık gelen dosya adlarıyla eşleşmelidir. Örneğin, SampleTest SampleTest.py içinde bulunmalıdır.

ACTS günlük yolu

ACTS'nin günlük yazabileceği STDOUT dışında bir konumu olmalıdır. ACTS, bazı testlerin neden başarısız olduğunu belirlemeye yardımcı olabilecek verileri içeren eksiksiz hata ayıklama günlükleri yazar. Karmaşıklığı önlemek için ACTS, bu günlükleri STDOUT'a yazmaz.

Günlük yolunu ayarlamak için ACTS_LOGPATH ortam değişkenini veya komut satırında -lp/--logpath işaretini kullanın.

ACTS yapılandırma yolu

Testi yürütebilmek için ACTS'nin hangi test ortamının olduğunu bilmesi gerekir. ACTS yapılandırması, test platformundaki tüm cihazları ve gerekli olabilecek özel test ya da ortam parametrelerini içerir. Bu değeri, -c/--config kullanarak komut satırında ayarlayın.

Yapılandırmada birden fazla test platformu varsa ACTS, her test yatağı için testleri çalıştırır. Testi yalnızca listedeki tek bir test platformunda çalıştırmak için -tb/--testbed <NAME> komut satırı bağımsız değişkenini kullanın.

Yerel iş istasyonu örneği

Çoğu ACTS kullanıcısı tek bir Android kod deposu dalında geliştirme yapar ve bunun gibi bir kuruluma sahiptir:

# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='~/android/<REPO_BRANCH>/tools/test/connectivity/acts_tests/'

# On cmdline
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin

ACTS kullanıcıları birden fazla dalda çalışıyorsa genellikle ACTS'yi acts/framework dizininden çalıştırır ve ACTS_TESTPATH için göreli bir yol kullanırlar:

# in ~/.bashrc
ACTS_LOGPATH='/tmp/acts_logpath'
ACTS_TESTPATH='../acts_tests/'

# On cmdline
$ cd ~/android/main/tools/test/connectivity/acts_tests/acts_contrib/
$ act.py -c ~/acts_configs/local_config.json -tc SampleTest -tb marlin

Test yataklarınızı yapılandırın

ACTS yapılandırma dosyası, donanım cihazlarında test çalıştırmak için gerekli tüm bilgileri sağlar:

{
  "testbed": {
    "my_testbed": {
      "my_testbed_value": "value"
    },
    "another_testbed": {
      "AndroidDevice": [
        "53R147"
      ]
    }
  },
  "user_parameter_1": "special environment value",
  "user_parameter_2": "other special value"
}

Bu yapılandırmanın temel birimi test platformudur. Yukarıdaki örnek yapılandırmada, test platformu my_testbed tek bir test yatağı değeriyle oluşturulmuştur. İkinci test platformu olan another_testbed, Android cihaz listesinin bilgilerini içeren özel bir kumanda yapılandırmasına sahiptir. Bu cihazlar, self.android_devices altındaki bir cihaz listesinde saklanır. Test platformu bir AndroidDevice nesnesi belirtmiyorsa AndroidDevice nesnesi bekleyen bir test sınıfının istisna oluşturacağını unutmayın. ACTS ile birlikte gelen desteklenen denetleyici yapılandırmalarının tam listesi için /acts/framework/acts/controllers/ adresindeki listeye bakın.

Diğer tüm değerler (yukarıdaki bölümde belirtilen özel değerler dışındakiler) self.user_params içinde sözlük olarak depolanır. Burası, telefonların sayaçlı veri ortamında olup olmadığı veya test için verilerin ne kadar süre toplanacağı gibi ortam veya test bilgilerini saklamak için iyi bir yerdir.

AndroidDevice için özel durumlar

Farklı özelliklere sahip birden fazla cihazınız olmasını istediğinizde, AndroidDevice ürününün bazı özel durumları vardır.

JSON yapılandırma biçimi

Aşağıdaki JSON örneğinde bulunan tüm anahtar/değer çiftleri, karşılık gelen AndroidDevice nesnesine ayarlanır. Yapılandırma, AndroidDevice özelliğinde tanımlı bir parametrenin üzerine yazmaya çalışırsa ControllerError atlanır.

  "AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
                    {"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]

Ardından test komut dosyasında, doğru cihazı almak ve cihaz nesnesinden ek parametrelere erişmek için bir filtre işlevi kullanabilirsiniz:

  def setup_class(self):
      self.pub = next(filter(lambda ad: ad.label == 'publisher',
                             self.android_devices))
      self.sub = next(filter(lambda ad: ad.label == 'user_parameter_1',
                             self.android_devices))

İsteğe bağlı parametre

İsteğe bağlı bir parametre aşağıda verilmiştir:

  • adb_logcat_param: Adb günlüklerini toplamak için adb logcat komutuna eklenen bir dize. Varsayılan olarak adb logcat -v threadtime -b all kullanılır. adb_logcat_param ayarlanırsa -b all bölümünün üzerine yazılır. Örneğin, adb_logcat_param politikasını -b radio olarak ayarlamak komutu adb logcat -v threadtime -b radio olarak değiştirir.