Trang này mô tả cách cấu hình các bài kiểm tra ACTS.
Nguồn cấu hình
Bộ kiểm tra Android Comms (ACTS) có ba nguồn cấu hình chính:
- Giao diện dòng lệnh (CLI)
- Tệp cấu hình ACTS
- Biến môi trường
Các giá trị từ các nguồn này được kết hợp thành một cấu hình duy nhất được sử dụng để chạy thử nghiệm ACTS. Nếu các giá trị được chỉ định ở nhiều vị trí thì các giá trị đó sẽ được ghi đè dựa trên thứ tự trên (trong đó CLI được ưu tiên).
Lưu ý về biến môi trường
Hãy cẩn thận khi sử dụng các biến môi trường cho các bài kiểm tra ACTS. Những giá trị này ít được người dùng nhìn thấy nhất và không được khuyến nghị sử dụng bên ngoài máy trạm của nhà phát triển. Các biến môi trường bị vô hiệu hóa trong quá trình kiểm tra tự động ACTS để ngăn ngừa nhiễm độc môi trường.
Các biến cấu hình bắt buộc
Mỗi bài kiểm tra ACTS đều yêu cầu cài đặt các biến sau.
Đường dẫn thi ACTS
ACTS chạy từ một vị trí nhập chính duy nhất. Kết quả là người chạy không xác định được vị trí đường thử.
Đặt vị trí đường dẫn kiểm tra bằng biến môi trường ACTS_TESTPATH
hoặc bằng cờ -tp
/ --testpaths
trong dòng lệnh. Giá trị có thể là danh sách các thư mục.
Các lớp thi ACTS
ACTS phải biết nên chạy những lớp kiểm tra nào. Đây có thể là biểu thức chính quy hoặc danh sách tên lớp kiểm tra.
Để đặt giá trị này, hãy sử dụng cờ -tc
/ --test_class
trong dòng lệnh. Lưu ý rằng cờ này cũng chấp nhận danh sách tên lớp. Tên lớp phải khớp với tên tệp tương ứng của chúng, ví dụ: SampleTest
phải được tìm thấy trong SampleTest.py
.
Đường dẫn nhật ký ACTS
ACTS phải có một vị trí để ghi nhật ký ngoài STDOUT. ACTS ghi nhật ký gỡ lỗi đầy đủ chứa dữ liệu có thể giúp xác định lý do tại sao một số thử nghiệm không thành công. Để tránh sự lộn xộn, ACTS không ghi những nhật ký này vào STDOUT.
Để đặt đường dẫn nhật ký, hãy sử dụng biến môi trường ACTS_LOGPATH
hoặc cờ -lp
/ --logpath
trong dòng lệnh.
Đường dẫn cấu hình ACTS
Để chạy thử nghiệm, ACTS phải biết thử nghiệm nào tồn tại. Cấu hình ACTS chứa tất cả các thiết bị trong nền thử nghiệm và mọi tham số môi trường hoặc thử nghiệm đặc biệt có thể cần thiết. Đặt giá trị này trên dòng lệnh bằng cách sử dụng -c
/ --config
.
Nếu có nhiều nền tảng thử nghiệm trong cấu hình, ACTS sẽ chạy thử nghiệm cho từng nền tảng thử nghiệm. Để chỉ chạy thử nghiệm cho một giường thử nghiệm duy nhất trong danh sách, hãy sử dụng đối số dòng lệnh -tb/--testbed <NAME>
.
Một ví dụ về máy trạm cục bộ
Hầu hết người dùng ACTS phát triển trên một nhánh repo Android duy nhất và có thiết lập tương tự như nhánh này:
# 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
Nếu người dùng ACTS chạy trên nhiều nhánh, họ thường chạy ACTS từ thư mục acts/framework
và sử dụng đường dẫn tương đối cho ACTS_TESTPATH
:
# 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
Định cấu hình giường thử nghiệm của bạn
Tệp cấu hình ACTS cung cấp tất cả thông tin cần thiết để chạy thử nghiệm trên thiết bị phần cứng:
{
"testbed": {
"my_testbed": {
"my_testbed_value": "value"
},
"another_testbed": {
"AndroidDevice": [
"53R147"
]
}
},
"user_parameter_1": "special environment value",
"user_parameter_2": "other special value"
}
Đơn vị cơ bản của cấu hình này là bệ thử nghiệm. Trong cấu hình ví dụ ở trên, giường thử nghiệm my_testbed
được tạo bằng một giá trị thử nghiệm duy nhất. Nền thử nghiệm thứ hai, another_testbed
, có cấu hình bộ điều khiển đặc biệt chứa thông tin về danh sách các thiết bị Android. Các thiết bị này được lưu trữ trong danh sách các thiết bị bên dưới self.android_devices
. Lưu ý rằng nếu lớp thử nghiệm không chỉ định đối tượng AndroidDevice
thì lớp thử nghiệm mong đợi đối tượng AndroidDevice
sẽ đưa ra một ngoại lệ. Để biết danh sách đầy đủ các cấu hình bộ điều khiển được hỗ trợ đi kèm với ACTS, hãy xem danh sách tại /acts/framework/acts/controllers/
.
Tất cả các giá trị khác (không phải là giá trị đặc biệt được đề cập trong phần trên) đều được lưu trữ trong self.user_params
dưới dạng từ điển. Đây là nơi thích hợp để lưu giữ thông tin về môi trường hoặc kiểm tra, chẳng hạn như liệu điện thoại có ở trong môi trường dữ liệu được đo bằng đồng hồ đo hay không hoặc thời gian thu thập dữ liệu cho kiểm tra.
Trường hợp đặc biệt dành cho thiết bị Android
Để thuận tiện cho việc phát triển khi bạn muốn có sẵn nhiều thiết bị với các thuộc tính khác nhau, AndroidDevice
có một số trường hợp đặc biệt.
Định dạng cấu hình JSON
Tất cả các cặp khóa/giá trị trong JSON bên dưới được đặt thành đối tượng AndroidDevice
tương ứng. Nếu cấu hình cố gắng ghi đè một tham số được xác định trong thuộc tính AndroidDevice
thì ControllerError
sẽ được đưa ra.
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
Sau đó, trong tập lệnh kiểm tra, bạn có thể sử dụng chức năng lọc để truy xuất đúng thiết bị và truy cập các tham số bổ sung từ đối tượng thiết bị:
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))
Tham số tùy chọn
Sau đây là một tham số tùy chọn:
-
adb_logcat_param
: Một chuỗi được thêm vào lệnhadb logcat
để thu thập nhật ký adb. Theo mặc định,adb logcat -v threadtime -b all
được sử dụng. Nếuadb_logcat_param
được đặt, phần-b all
sẽ bị ghi đè. Ví dụ: đặtadb_logcat_param
thành-b radio
sẽ thay đổi lệnh thànhadb logcat -v threadtime -b radio
.