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çinadb logcat
komutuna eklenen bir dize. Varsayılan olarakadb 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 komutuadb logcat -v threadtime -b radio
olarak değiştirir.