Định cấu hình kiểm thử ACTS

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ệnh adb 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 đặt adb_logcat_param, phần -b all sẽ bị ghi đè. Ví dụ: việc đặt adb_logcat_param thành -b radio sẽ thay đổi lệnh thành adb logcat -v threadtime -b radio.