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