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