Kiểm thử điện thoại ACTS

Bộ kiểm thử giao tiếp Android (ACTS) thực hiện kiểm thử tự động các ngăn xếp kết nối, chẳng hạn như Wi-Fi, Bluetooth và dịch vụ di động. Công cụ kiểm thử yêu cầu adb và Python. Công cụ này nằm trong tools/test/connectivity/acts.

Trang này mô tả cách chạy các bài kiểm thử điện thoại cơ bản có trong Dự án nguồn mở Android (AOSP) cho người dùng có 2 điện thoại.

Điều kiện tiên quyết

Để chạy các kiểm thử điện thoại ACTS, bạn phải có quyền truy cập vào kho lưu trữ Android đầy đủ và cài đặt các bản dựng userdebug trên các thiết bị mà bạn muốn kiểm thử.

Tải kho lưu trữ Android xuống

Làm theo hướng dẫn trong phần Tải nguồn xuống để tải kho lưu trữ Android xuống trên một máy có kết nối USB với các thiết bị mà bạn muốn kiểm thử.

  • AOSP là một cơ sở mã có dung lượng nhiều gigabyte và liên tục phát triển. Điều chỉnh kỳ vọng về thời gian tải xuống cho phù hợp.
    • Nếu máy bị hạn chế về kích thước, hãy thêm --depth=1 vào lệnh repo init.
  • Để nhận thông tin cập nhật trong tương lai về công cụ ACTS, hãy chuyển đến thư mục gốc của Android:
    • Sử dụng repo sync tools/test/connectivity
    • repo sync external/sl4a

Xác minh bản dựng userdebug trên thiết bị

Cài đặt phiên bản userdebug của Android trên thiết bị kiểm thử.

  • Tạo kho lưu trữ bằng cách làm theo hướng dẫn trong phần Tạo Android.
  • Cài đặt ROM cho thiết bị như mô tả trong phần Cài đặt ROM cho thiết bị.
    • Lệnh adb shell getprop ro.build.type sẽ trả về userdebug.
    • Nếu không có ro.build.type, bản dựng userdebug sẽ cho phép chạy shell adb dưới dạng gốc (cửa sổ dòng lệnh #).

Tạo và cài đặt SL4A

Để tạo và cài đặt Lớp tập lệnh cho Android (SL4A), hãy làm theo hướng dẫn trong Lớp tập lệnh cho Android. Phần Thêm bản dựng SL4A vào bản dựng Android theo mặc định là không bắt buộc.

Sau khi tạo SLA4, thông điệp nhật ký cuối cùng sẽ chứa vị trí của tệp sl4a.apk mà bạn cần cài đặt trên TẤT CẢ thiết bị. Dưới đây là ví dụ về thông báo nhật ký:

Copy: out/target/path/to/sl4a.apk

Định cấu hình thiết bị để kiểm thử

Định cấu hình thiết bị bằng các yêu cầu về công cụ/bản dựng ACTS sau:

  • Nếu khoá của nhà cung cấp ADB không có sẵn, hãy nhấn vào cửa sổ bật lên Trust this computer (Tin cậy máy tính này) trên DUT khi cửa sổ này xuất hiện. Nếu có khoá nhà cung cấp ADB:

    • Các khoá và trình điều khiển của nhà cung cấp ADB phải là duy nhất cho DUT.
    • Để luôn bật tính năng gỡ lỗi qua USB, bạn phải thêm khoá nhà cung cấp ADB trong cây nguồn vào ~/.bashrc (hoặc tương đương) bằng cách sử dụng export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys, trong đó /path/to/directory là đường dẫn đủ điều kiện trên máy chủ. Để khắc phục sự cố ADB, hãy tham khảo phần Chạy ứng dụng trên thiết bị phần cứng.
  • Cho phép gỡ lỗi qua USB: Khi trình điều khiển adb được cài đặt, các thiết bị adb có thể kích hoạt một lời nhắc trên thiết bị để cho phép gỡ lỗi qua USB.

  • Cài đặt sl4a.apk bằng $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

  • Đảm bảo rằng điện thoại sử dụng kết nối USB 2.0 với máy chủ thử nghiệm.

  • Các bài kiểm thử này phụ thuộc vào mạng di động đang hoạt động, vì vậy, hãy lắp thẻ SIM vào điện thoại và đặt điện thoại ở khu vực có dịch vụ di động tốt.

  • Thêm tất cả thẻ SIM vào tệp JSON như mô tả trong phần Ghi tệp cấu hình.

Thiết lập môi trường

Trước khi thiết lập môi trường, hãy xác minh rằng Python 3.4 trở lên đã được cài đặt.

Chạy:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

Cài đặt ACTS

Chạy:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

Để xác minh quá trình cài đặt, hãy chạy act.py -h. Thao tác này sẽ in danh sách các lệnh có sẵn.

Ghi tệp cấu hình

Để chạy kiểm thử, bạn phải tạo một tệp có thông tin cấu hình. Dưới đây là tệp .config mẫu. Một tệp tương tự có trong kho lưu trữ Android trong tools/test/connectivity/acts/framework/sample_config.json. Thay thế XXXXXXX bằng số sê-ri thiết bị để cung cấp thông tin tối thiểu mà ACTS cần để chạy kiểm thử điện thoại.

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

Sử dụng các khoá trong bảng để định cấu hình các tham số kiểm thử. Tham khảo Các tuỳ chọn cấu hình bổ sung để biết thêm các lựa chọn.

Khoá Giá trị
_description Nhận xét về nội dung của toàn bộ tệp cấu hình
testbed Thông số kỹ thuật của một môi trường có thể chạy kiểm thử
(testbed) _description Nhận xét về từng môi trường thử nghiệm, vì ACTS có thể nhắm đến từng môi trường thử nghiệm
(testbed) name Tên của môi trường thử nghiệm để gọi từ dòng lệnh
(testbed) AndroidDevice Danh sách các thiết bị cụ thể mà kiểm thử nhắm đến
Lưu ý: Có thể có nhiều thiết bị được liệt kê. Một kiểm thử chạy điện thoại gọi cho nhau sẽ yêu cầu có hai thiết bị và sẽ không thành công nếu có ít hơn hai thiết bị. Nếu có hai thiết bị được liệt kê và bài kiểm thử chỉ dự kiến có một thiết bị, thì quá trình kiểm thử đó sẽ được chạy trên thiết bị đầu tiên.
(testbed)(AndroidDevice) serial Số sê-ri của thiết bị (được in từ adb devices)
(thử nghiệm)(AndroidDevice) adb_logcat_param Các tham số được truyền khi adb logcat được gọi trong quá trình kiểm thử
logpath Vị trí trên máy chủ kiểm thử nơi lưu nhật ký
testpaths Vị trí của mã trường hợp kiểm thử
sim_conf_file Vị trí của tệp .json liệt kê các thẻ SIM có sẵn
Danh sách thẻ SIM bao gồm mã nhận dạng của thẻ, các chức năng của thẻ, nhà vận hành và số điện thoại.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

Bạn có thể lấy số điện thoại từ thiết bị trong Hệ thống > Giới thiệu về điện thoại. Mã nhận dạng thẻ SIM thường được in trên thẻ SIM hoặc có trong thiết bị trong phần Hệ thống > Giới thiệu về điện thoại > Trạng thái SIM. Chuỗi toán tử được xác định tại tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py, sau đó tìm kiếm CARRIER_.

Các lựa chọn khác về cấu hình

Tệp entries.py nằm tại tools/test/connectivity/acts/framework/acts/config/entries.py trong kho lưu trữ Android có định nghĩa cho các tuỳ chọn cấu hình dòng lệnh chính.

Bạn cũng có thể tìm các tham số dành riêng cho kiểm thử trong mã bằng cách tìm kiếm self.user_params.get.

Chạy chương trình kiểm thử

Chạy kiểm thử từ dòng lệnh sau khi ghi tệp cấu hình. Mặc dù có nhiều lựa chọn, nhưng cách đơn giản nhất là sử dụng -c filename.config -tc TestCase:name. Ví dụ này sử dụng tệp cấu hình có tên minimum.config:

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

Một lần chạy chương trình kiểm thử thành công sẽ có một thông báo đầu ra cuối cùng như sau:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

Chạy nhiều chương trình kiểm thử

Để chạy các trường hợp kiểm thử cụ thể trên nhiều tệp, hãy tạo một tệp kiểm thử và truyền tệp đó bằng cờ -tf , như trong ví dụ về bộ kiểm thử hồi quy:

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

Lệnh mẫu này giả định rằng tệp có tên là regression_suite.

act.py -c minimum.config -tf regression_suite

Chạy kiểm thử nhiều lần

Để chạy một trường hợp kiểm thử (-tc) hoặc tệp kiểm thử (-tf) nhiều lần, hãy thêm -ti # (số lần lặp lại kiểm thử) vào lệnh.