获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Bắt đầu với các bài kiểm tra thiết bị đo đạc

Hướng dẫn này mô tả cách chuẩn bị và chạy kiểm tra thiết bị bằng Phòng thí nghiệm kiểm tra Firebase. Để sử dụng hướng dẫn này, bạn sẽ cần kiểm tra thiết bị (do bạn hoặc nhóm của bạn viết) sử dụng khung kiểm tra Espresso hoặc UI Automator Android. Kiểm tra thiết bị có thể chạy tối đa 45 phút trên thiết bị vật lý và tối đa 60 phút trên thiết bị ảo .

Trong các bước sau, bạn sẽ tải APK của ứng dụng và APK thử nghiệm lên Firebase.

(Tùy chọn) Thêm thư viện ảnh chụp màn hình vào ứng dụng của bạn

Firebase Test Lab bao gồm một thư viện (testlab-guide-lib) mà bạn có thể sử dụng để xử lý bất kỳ ảnh chụp màn hình nào bạn chụp bằng ScreenCapture của AndroidX khi chạy các bài kiểm tra thiết bị, chẳng hạn như các bài kiểm tra được viết bằng khung kiểm tra Espresso . Phần này mô tả cách tạo các đối tượng ScreenCapture bằng thư viện AndroidX và cách xử lý chúng bằng testlab-guide-lib.

Sau khi quá trình kiểm tra thiết bị của bạn đã chạy, bạn có thể xem ảnh chụp màn hình đã chụp trong bảng điều khiển Firebase.

Hãy thử một ứng dụng mẫu

Tải xuống ứng dụng mẫu NotePad để thử chức năng này. Khả năng chụp ảnh màn hình đã được tích hợp vào dự án NotePad.

Bước 1. Thêm thư viện ảnh chụp màn hình vào dự án của bạn

  1. Trong tệp Gradle cấp gốc (cấp dự án) của dự án thử nghiệm ( build.gradle ), hãy thêm kho lưu trữ Maven của Google vào mọi phần kho:

    buildscript {
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
      }
    
      dependencies {
        // ...
    
        // Check that you have the following line (if not, add it):
        classpath 'com.google.gms:google-services:4.3.8'  // Google Services plugin
      }
    }
    
    allprojects {
      // ...
    
      repositories {
        // Add the following line:
        google()  // Google's Maven repository
        // ...
      }
    }
  2. Trong tệp Gradle mô-đun (cấp ứng dụng) của bạn (thường là app/build.gradle ), hãy thêm phần phụ thuộc vào thư viện ảnh chụp màn hình Test Lab.

    dependencies {
      // ...
      // Add Test Lab's instrumentation test screenshot library:
      androidTestImplementation 'com.google.firebase:testlab-instr-lib:0.2'
      // ...
    }
  3. Trong tệp AndroidManifest.xml của thử nghiệm, đăng ký FirebaseScreenCaptureProcessor trong thẻ siêu dữ liệu trong phần tử <instrumentation> . Thay vào đó, bạn cũng có thể chỉ định bộ xử lý làm đối số trong AndroidJUnitRunner (xem tài liệu tham khảo AndroidJUnitRunner để biết hướng dẫn về cách thực hiện).

    <instrumentation
      // Check that you have the following line (if not, add it):
      android:name="androidx.test.runner.AndroidJUnitRunner" // Specifies AndroidJUnitRunner as the test runner
      android:targetPackage="com.your.package.name">
    
    // Add the following:
    <meta-data
      android:name="screenCaptureProcessors"
      android:value="com.google.firebase.testlab.screenshot.FirebaseScreenCaptureProcessor" />
    </instrumentation>
    ...
    
  4. Trong tệp AndroidManifest.xml của ứng dụng, hãy thêm các dòng sau vào phần tử <manifest> :

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
  5. Trong tệp AndroidManifest.xml của bạn, chỉ định quyền hệ thống cho ứng dụng của bạn bằng cách thêm các dòng sau trong <manifest> . Nếu bạn đang thử nghiệm trên Android 10 (API cấp 29) trở lên , hãy bỏ qua quyền WRITE_EXTERNAL_STORAGE (ứng dụng của bạn không yêu cầu quyền này để đọc và ghi ảnh chụp màn hình vào thiết bị).

    <manifest ... >
        <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        ...
    </manifest>

Bước 2. Chụp ảnh màn hình trong quá trình kiểm tra của bạn

Tại bất kỳ thời điểm nào trong bài kiểm tra mà bạn muốn chụp ảnh màn hình, hãy gọi phương thức Screenshot.capture() từ thư viện AndroidX. Điều này tạo ra một đối tượng ScreenCapture . Khi bạn gọi process() trên đối tượng ScreenCapture , nó sẽ được xử lý bằng cách sử dụng ScreenCaptureProcessor đã đăng ký trong AndroidManifest.xml của bạn. Lưu ý rằng BasicScreenCaptureProcessor được sử dụng nếu không có bộ xử lý nào được đăng ký. Vì bạn đã đăng ký FirebaseScreenCaptureProcessor , ảnh chụp màn hình của bạn sẽ được xử lý qua FirebaseScreenCaptureProcessor và sẽ có sẵn cho bạn kết quả khi bạn chạy thử nghiệm với Firebase Test Lab.

Các trường hợp sử dụng ví dụ để tạo ScreenCapture :

  • Chụp toàn bộ màn hình trên API Build.VERSION_CODES.JELLY_BEAN_MR2 trở lên:

    Screenshot.capture()
    
  • Chụp ScreenCapture hình của hoạt động trên bất kỳ cấp API nào. Lưu ý rằng đây là tùy chọn duy nhất cho các thiết bị bên dưới Build.VERSION_CODES.JELLY_BEAN_MR2.

    @Rule
      public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);
    ...
    Screenshot.capture(activityRule.getActivity());
    ...
    

Các trường hợp sử dụng ví dụ để xử lý ScreenCapture

  • Xử lý ScreenCapture thông qua FirebaseScreenCaptureProcessor :

    Screenshot.capture().process();
    
  • Xử lý ScreenCapture thông qua ScreenCaptureProcessor được chỉ định (điều này cho phép bạn bỏ qua việc đăng ký bộ xử lý):

    Set<ScreenCaptureProcessor> processors = new HashSet<>();
    processors.add(new FirebaseScreenCaptureProcessor());
    Screenshot.capture().process(processors);
    
  • Đặt tên và định dạng của ScreenCapture và xử lý nó bằng bộ xử lý đã đăng ký:

    Screenshot.capture().setName("myscreenshot").setFormat(CompressFormat.JPEG).process();
    

Bước 3. Xây dựng và chạy thử nghiệm của bạn

  1. Xây dựng ứng dụng của bạn và thử nghiệm APK (xem Thử nghiệm ứng dụng của bạn để biết hướng dẫn).

  2. Tải các tệp APK lên trang tổng quan Phòng thí nghiệm kiểm tra của bảng điều khiển Firebase.

  3. Cuối cùng, chạy thử nghiệm của bạn.

Bước 4. Xem ảnh chụp màn hình thử nghiệm của bạn

Sau khi quá trình kiểm tra của bạn hoàn tất, bạn có thể xem bất kỳ ảnh chụp màn hình nào được chụp trong bảng điều khiển Firebase.

  1. Trong tab Kiểm tra , chọn kiểm tra đã hoàn thành của bạn, sau đó nhấp vào tab Kết quả .

  2. Chọn lại thử nghiệm của bạn, sau đó nhấp vào tab Ảnh chụp màn hình xuất hiện.

(Tùy chọn) Bật các tính năng kiểm tra bổ sung

Bạn có thể bật các tính năng sau trong bài kiểm tra của mình trước khi chạy nó với Test Lab:

Bật dàn nhạc

Android Test Orchestrator là một công cụ chạy từng bài kiểm tra thiết bị đo đạc trong ứng dụng của bạn một cách độc lập. Test Lab luôn sử dụng phiên bản Orchestrator mới nhất.

Để bật Orchestrator cho Test Lab, trong thiết lập kiểm tra thiết bị, hãy nhấp vào Tùy chọn bổ sung > Chạy với Orchestrator .

Lợi ích và hạn chế

  • Quyền lợi: Không có trạng thái chia sẻ. Mỗi bài kiểm tra chạy trong phiên bản thiết bị đo riêng của nó để trạng thái được chia sẻ không tích lũy qua các bài kiểm tra.
  • Lợi ích: Tai nạn biệt lập. Nếu thử nghiệm gặp sự cố, chỉ thiết bị đó bị chấm dứt và các thử nghiệm khác trong bộ của bạn vẫn có thể chạy.
  • Hạn chế: Thời gian chạy lâu hơn . Mỗi bài kiểm tra chạy phiên bản thiết bị đo riêng của nó, có nghĩa là quá trình kiểm tra tổng thể sẽ lâu hơn một chút. Nếu không được chọn, thời gian chạy tăng lên có thể ảnh hưởng đến việc sử dụng hạn ngạch hoặc thời gian thanh toán của bạn và có thể khiến bạn đạt đến giới hạn thời gian chờ của thiết bị.

Bật sharding

Tính năng phân chia thử nghiệm chia một tập hợp các thử nghiệm thành các nhóm con (phân đoạn) chạy riêng biệt một cách riêng biệt. Test Lab tự động chạy song song từng phân đoạn bằng nhiều thiết bị và hoàn thành toàn bộ bộ thử nghiệm trong thời gian ngắn hơn.

Cách thức hoạt động của sharding thử nghiệm

Giả sử bạn tạo N mảnh. Đối với mỗi thiết bị bạn chọn, Test Lab quay N thiết bị giống hệt nhau và chạy một tập hợp con các bài kiểm tra trên mỗi thiết bị. Điều này có nghĩa là các trường hợp thử nghiệm được phân đoạn có thể dẫn đến nhiều lần thực thi thử nghiệm trên mỗi thiết bị, không giống như các trường hợp thử nghiệm không được phân đoạn, luôn dẫn đến một lần thực thi thử nghiệm trên mỗi thiết bị (để biết tổng quan nhanh về các khái niệm chính trong Test Lab, hãy xem Các khái niệm chính ).

Bạn có thể bật thử nghiệm sharding trong bảng điều khiển Firebase:

  1. Trong thiết lập kiểm tra thiết bị, hãy nhấp vào Tùy chọn bổ sung .

  2. Trong phần Làm sắc nét, hãy nhập số phân đoạn bạn muốn chạy.

Thanh toán cho các phân đoạn thử nghiệm

Test Lab triển khai các phân đoạn của bạn bằng cách tận dụng cơ chế sharding tích hợp sẵn của AndroidJUnitRunner. Để tránh bị tính phí khi quay các phân đoạn trống (các phân đoạn không có trường hợp thử nghiệm được chỉ định), số phân đoạn bạn tạo phải ít hơn tổng số trường hợp thử nghiệm. Tùy thuộc vào thời gian chạy mỗi trường hợp thử nghiệm, bạn nên chỉ định 2-10 trường hợp thử nghiệm cho mỗi phân đoạn.

Để biết thêm thông tin về thanh toán, hãy đọc Sử dụng, hạn ngạch và thanh toán .