ACTS Testlerini Yapılandırma

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

Yapılandırma kaynakları

Android Comms Test Suite'in (ACTS) üç ana yapılandırma kaynağı vardır:

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

Bu kaynaklardan alınan değerler, ACTS testini çalıştırmak için kullanılan tek bir yapılandırmada birleştirilir. Değerler birden fazla konumda belirtilirse yukarıdaki sıraya göre (CLI'nin öncelikli olduğu) değerlerin üzerine yazılır.

Ortam değişkenleri üzerine bir not

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

Gerekli yapılandırma değişkenleri

Her ACTS testi aşağıdaki değişkenlerin ayarlanmasını gerektirir.

ACTS test yolları

ACTS, tek bir ana giriş konumundan çalışır. Sonuç olarak, test yolunun konumu koşucu tarafından bilinmemektedir.

ACTS_TESTPATH ​​ortam değişkenini kullanarak veya komut satırındaki -tp / --testpaths bayrağını kullanarak test yolu konumunu 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ının bir listesi olabilir.

Bu değeri ayarlamak için komut satırında -tc / --test_class bayrağını kullanın. Bu bayrağın aynı zamanda 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ükleri STDOUT dışında bir yere yazabileceği bir konumu olmalıdır. ACTS, bazı testlerin neden başarısız olduğunu belirlemeye yardımcı olabilecek verileri içeren tam hata ayıklama günlükleri yazar. Karışı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 bayrağını kullanın.

ACTS yapılandırma yolu

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

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

Yerel bir iş istasyonu örneği

Çoğu ACTS kullanıcısı tek bir Android repo şubesinde geliştirme yapar ve buna benzer 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ırlar ve ACTS_TESTPATH ​​için göreceli 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 ortamlarınızı yapılandırma

ACTS yapılandırma dosyası, donanım aygıtlarında testlerin çalıştırılması 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 konfigürasyonun temel birimi test ortamıdır. Yukarıdaki örnek konfigürasyonda, test yatağı my_testbed tek bir test yatağı değeriyle oluşturulur. İkinci test yatağı, another_testbed , Android cihazların listesine ilişkin bilgileri tutan özel bir denetleyici yapılandırmasına sahiptir. Bu cihazlar self.android_devices altındaki cihazların listesinde saklanır. Bir test ortamı bir AndroidDevice nesnesi belirtmiyorsa, bir AndroidDevice nesnesi bekleyen bir test sınıfının bir istisna oluşturduğunu 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 bahsedilen özel değerler olmayanlar), sözlük olarak self.user_params dosyasında saklanır. Burası, telefonların ölçümlü veri ortamında olup olmadığı veya bir test için verilerin ne kadar süreyle toplanacağı gibi ortam veya test bilgilerini tutmak için iyi bir yerdir.

AndroidDevice için özel durumlar

Farklı özelliklere sahip birden fazla cihaza sahip olmak istediğinizde geliştirme kolaylığı sağlamak için AndroidDevice bazı özel durumları vardır.

JSON yapılandırma biçimi

Aşağıdaki JSON'daki tüm anahtar/değer çiftleri karşılık gelen AndroidDevice nesnesine ayarlanmıştır. Yapılandırma, AndroidDevice özniteliğinde tanımlanan bir parametrenin üzerine yazmaya çalışırsa, ControllerError atılır.

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

Daha sonra test komut dosyasında doğru cihazı almak ve cihaz nesnesinden ekstra 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

Aşağıdaki isteğe bağlı bir parametredir:

  • 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 ayarlandıysa -b all bölümünün üzerine yazılır. Örneğin, adb_logcat_param -b radio olarak ayarlamak, komutu adb logcat -v threadtime -b radio olarak değiştirir.