Trang này mô tả cách định cấu hình kiểm thử ACTS.
Nguồn cấu hình
Bộ kiểm thử giao tiếp Android (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 dùng để chạy kiểm thử ACTS. Nếu bạn chỉ định giá trị ở 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 kiểm thử ACTS. Đây là những giá trị mà người dùng ít thấy nhất và không nên 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ị tắt trong quá trình kiểm thử tự động ACTS để ngăn chặn tình trạng nhiễm độc môi trường.
Biến cấu hình bắt buộc
Mỗi bài kiểm thử ACTS đều yêu cầu bạn phải đặt các biến sau.
Đường dẫn kiểm thử ACTS
ACTS chạy từ một vị trí nhập chính duy nhất. Do đó, trình chạy không xác định được vị trí đường dẫn kiểm thử.
Đặt vị trí đường dẫn kiểm thử bằng cách sử dụng biến môi trường ACTS_TESTPATH
hoặc bằng cờ -tp
/--testpaths
trong dòng lệnh. Giá trị này có thể là danh sách các thư mục.
Lớp kiểm thử ACTS
ACTS phải biết những lớp kiểm thử nào cần chạy. Đây có thể là biểu thức chính quy hoặc danh sách tên lớp kiểm thử.
Để đặt giá trị này, hãy sử dụng cờ -tc
/--test_class
trong dòng lệnh. Xin 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, ví dụ: SampleTest
phải có trong SampleTest.py
.
Đường dẫn nhật ký ACTS
ACTS phải có một vị trí để ghi nhật ký khác vớ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 một số kiểm thử không thành công. Để tránh tình trạng lộn xộn, ACTS không ghi các 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 kiểm thử, ACTS phải biết có nền tảng kiểm thử nào. Cấu hình ACTS chứa tất cả các thiết bị trong môi trường thử nghiệm và mọi thông số môi trường hoặc kiểm thử đặc biệt có thể cần thiết. Hãy đặ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 môi trường thử nghiệm trong cấu hình, ACTS sẽ chạy các kiểm thử cho từng môi trường thử nghiệm. Để chỉ chạy kiểm thử cho một môi trường thử nghiệm trong danh sách, hãy sử dụng đối số dòng lệnh -tb/--testbed <NAME>
.
Ví dụ về máy trạm cục bộ
Hầu hết người dùng ACTS đều phát triển trên một nhánh kho lưu trữ Android duy nhất và có thiết lập tương tự như sau:
# 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 môi trường thử nghiệm
Tệp cấu hình ACTS cung cấp tất cả thông tin cần thiết để chạy kiểm thử trên các 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ơ sở của cấu hình này là nền tảng thử nghiệm. Trong cấu hình mẫu ở trên, my_testbed
của môi trường thử nghiệm được tạo bằng một giá trị môi trường thử nghiệm duy nhất. Lớp kiểm thử thứ hai, another_testbed
, có một cấu hình tay điều khiển đặc biệt chứa thông tin của danh sách thiết bị Android. Các thiết bị này được lưu trữ trong danh sách thiết bị trong self.android_devices
. Xin lưu ý rằng nếu một môi trường thử nghiệm không chỉ định đối tượng AndroidDevice
, thì một lớp kiểm thử dự kiến đối tượng AndroidDevice
sẽ tạo ra một ngoại lệ. Để xem danh sách đầy đủ các cấu hình tay đ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) được lưu trữ trong self.user_params
dưới dạng từ điển. Đây là nơi phù hợp để lưu trữ môi trường hoặc thông tin kiểm thử, chẳng hạn như liệu điện thoại có ở trong môi trường dữ liệu có đo lượng dữ liệu hay không hoặc thời gian thu thập dữ liệu cho một kiểm thử.
Các trường hợp đặc biệt cho AndroidDevice
Để thuận tiện cho việc phát triển khi bạn muốn có 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 khoá/giá trị trong ví dụ JSON sau đây đều đượ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 gửi.
"AndroidDevice": [{"serial": "XXXXXX", "label": "publisher"},
{"serial": "YYYYYY", "label": "subscriber", "user_parameter_1": "anything"}]
Sau đó, trong tập lệnh kiểm thử, bạn có thể sử dụng hàm bộ lọc để truy xuất thiết bị chính xác và truy cập vào 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))
Thông số tuỳ chọn
Sau đây là một tham số không bắt buộc:
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ếu bạn đặtadb_logcat_param
, phần-b all
sẽ bị ghi đè. Ví dụ: việc đặtadb_logcat_param
thành-b radio
sẽ thay đổi lệnh thànhadb logcat -v threadtime -b radio
.