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

Bộ kiểm tra giao tiếp Android (ACTS) thực hiện quy trình 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 ở 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 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 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 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ã nhiều gigabyte vẫn tiếp tục phát triển. Hãy điều chỉnh thời gian tải xuống mà bạn mong đợi 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 một phiên bản userdebug của Android trên các thiết bị thử nghiệm.

  • Xây dựng kho lưu trữ theo hướng dẫn trong bài viết Xây dựng Android.
  • Cài đặt ROM thiết bị theo mô tả trong phần Cài đặt ROM 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 dành cho Android. Bạn không bắt buộc phải sử dụng mục Thêm bản dựng SL4A vào bản dựng Android theo mặc định.

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ề một thông điệp 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 sau đây về bản dựng/công cụ ACTS:

  • 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á của nhà cung cấp ADB:

    • Trình điều khiển và khoá 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 các khoá của 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ố liên quan đến ADB, hãy tham khảo nội dung Chạy ứng dụng trên thiết bị phần cứng.
  • Cho phép gỡ lỗi qua USB: Khi bạn cài đặt trình điều khiển adb, các thiết bị adb có thể kích hoạ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ủ kiểm tra.

  • Các quá trình kiểm thử này phụ thuộc vào các mạng di động trực tiếp, vì vậy, hãy đặt thẻ SIM vào điện thoại và để điện thoại ở nơi có dịch vụ di động tốt.

  • Thêm tất cả các thẻ SIM vào một tệp JSON như mô tả trong phần Viết 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 việc cài đặt, hãy chạy act.py -h để in danh sách các lệnh có sẵn.

Viết một 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à một tệp .config mẫu. Hiện có một tệp tương tự trong kho lưu trữ Android trong tools/test/connectivity/acts/framework/sample_config.json. Thay thế XXXXXXX bằng số sê-ri của thiết bị để cung cấp thông tin tối thiểu mà ACTS cần để chạy quy trình 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ử
(thử nghiệm) _description Nhận xét về từng trung tâm thử nghiệm, vì ACTS có thể nhắm mục tiêu đến từng trường hợp thử nghiệm
(thử nghiệm) name Tên của nền tảng kiểm thử để gọi từ dòng lệnh
(thử nghiệm) AndroidDevice Danh sách các thiết bị cụ thể mà quy trình kiểm thử này nhắm đến
Lưu ý: Có thể có nhiều thiết bị được liệt kê. Một chương trình kiểm thử chạy các điện thoại gọi nhau dự kiến có hai thiết bị và sẽ không thành công nếu có ít thiết bị hơn. 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.
(thử nghiệm)(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ã thẻ SIM thường được in trên thẻ SIM hoặc có sẵn trên 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 thấy các tham số dành riêng cho kiểm thử trong mã bằng cách tì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 thử nghiệm

Để 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ư minh hoạ trong bộ kiểm thử hồi quy mẫu:

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 ví dụ này giả định rằng tệp có tên là regression_suite.

act.py -c minimum.config -tf regression_suite

Chạy thử nghiệm 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.