Định cấu hình Kiểm tra ACTS

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