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 kaynaklardaki 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ülebilen değerlerdir ve geliştiricinin iş istasyonunun dışında kullanılması önerilmez. Ortam değişkenleri, ortam kirliliğini önlemek için ACTS otomatik testleri sırasında 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, test yolu konumu çalıştırıcı tarafından bilinmez.

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

ACTS test sınıfları

ACTS, hangi test sınıflarının çalıştırılacağını bilmelidir. Bu, normal ifade veya test sınıfı adlarının listesi 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ı, ilgili dosya adlarıyla eşleşmelidir. Örneğin, SampleTest, SampleTest.py içinde bulunmalıdır.

ACTS günlük yolu

ACTS, günlükleri STDOUT dışında bir yere yazacak bir yere sahip olmalıdır. ACTS, bazı testlerin neden başarısız olduğunu belirlemeye yardımcı olabilecek veriler içeren tam hata ayıklama günlükleri yazar. ACTS, karmaşıklığı önlemek için 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

ACTS'nin testi çalıştırabilmesi için hangi test ortamının mevcut 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 komut satırında -c/--config kullanarak ayarlayın.

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

Yerel iş istasyonu örneği

ACTS kullanıcılarının çoğu tek bir Android deposu dalında geliştirme yapar ve aşağıdakine 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ır ve ACTS_TESTPATH için göreli bir yol kullanır:

# 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 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ırmadaki temel birim test ortamıdır. Yukarıdaki örnek yapılandırmada, test ortamı my_testbed tek bir test ortamı değeriyle oluşturulur. İkinci test ortamı olan another_testbed, Android cihaz listesinin bilgilerini içeren özel bir denetleyici yapılandırmasına sahiptir. Bu cihazlar, self.android_devices altındaki bir cihaz listesinde saklanır. Bir test ortamı AndroidDevice nesnesi belirtmezse AndroidDevice nesnesi bekleyen bir test sınıfının 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 belirtilen özel değerler değilse) self.user_params içinde sözlük olarak depolanır. Telefonların ücretli veri ortamında olup olmadığı veya bir test için ne kadar süre boyunca veri toplanacağı gibi ortam veya test bilgilerini burada tutabilirsiniz.

AndroidDevice için özel durumlar

Farklı özelliklere sahip birden fazla cihaz kullanmak istediğinizde geliştirmeyi kolaylaştırmak için AndroidDevice'te bazı özel durumlar vardır.

JSON yapılandırma biçimi

Aşağıdaki JSON örneğindeki tüm anahtar/değer çiftleri, ilgili AndroidDevice nesnesine ayarlanmıştır. Yapılandırma, AndroidDevice özelliğ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"}]

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

Aşağıdakiler isteğe bağlı parametrelerdir:

  • 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 değerini -b radio olarak ayarladığınızda komut adb logcat -v threadtime -b radio olarak değişir.