Bắt đầu với thử nghiệm thiết bị đo đạc

Hướng dẫn này mô tả cách chuẩn bị và chạy thử nghiệm thiết bị đo 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 một bài kiểm tra đo lường (do bạn hoặc nhóm của bạn viết) sử dụng khung kiểm tra Android hoặc Espresso hoặc UI Automator . Kiểm thử thiết bị có thể kéo dài tới 45 phút trên thiết bị vật lý và tối đa 60 phút trên thiết bị ảo .

Ở các bước sau, bạn sẽ tải APK của ứng dụng và APK của 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

Phòng thí nghiệm kiểm tra Firebase bao gồm một thư viện (testlab-instr-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 thử nghiệm thiết bị, chẳng hạn như các thử nghiệm được viết bằng khung thử nghiệm Espresso . Phần này mô tả cách tạo đối tượng ScreenCapture bằng thư viện AndroidX và cách xử lý chúng bằng testlab-instr-lib.

Sau khi chạy thử nghiệm thiết bị đo lường, bạn có thể xem ảnh chụp màn hình đã chụp trong bảng điều khiển Firebase.

Dùng thử một ứng dụng mẫu

Tải xuống ứng dụng mẫu NotePad để dùng 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ài đặt cấp gốc của dự án thử nghiệm của bạn ( settings.gradle.kts hoặc settings.gradle ), hãy thêm kho lưu trữ Maven của Google vào mọi phần repositories :

    pluginManagement {
        repositories {
            // Add the following line:
            google() // Google's Maven repository
            mavenCentral()
            gradlePluginPortal()
        }
    }
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            // Add the following line:
            google() // Google's Maven repository
            mavenCentral()
        }
    }
    // ...
    
  2. Trong tệp Gradle mô -đun (cấp ứng dụng) của bạn (thường là <project>/<app-module>/build.gradle.kts hoặc <project>/<app-module>/build.gradle ), hãy thêm phần phụ thuộc cho Test Lab thư viện ảnh chụp màn hình.

    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, hãy đăng ký FirebaseScreenCaptureProcessor trong thẻ siêu dữ liệu bên 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 , hãy 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 vào thẻ <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 quá trình kiểm thử 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 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 nên ảnh chụp màn hình của bạn sẽ được xử lý thông qua FirebaseScreenCaptureProcessor và kết quả sẽ có sẵn cho bạn khi bạn chạy thử nghiệm với Phòng thí nghiệm kiểm tra Firebase.

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 của Hoạt động ở mọi cấp độ API. Lưu ý rằng đây là tùy chọn duy nhất cho các thiết bị có phiên bản thấp hơn 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 tệp APK lên bảng điều khiển Test Lab 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 thử nghiệm hoàn tất, bạn có thể xem mọi ảnh chụp màn hình được chụp trong bảng điều khiển Firebase.

  1. Trong tab Kiểm tra , chọn bài 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 bài kiểm tra 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) Kích hoạt các tính năng kiểm tra bổ sung

Bạn có thể kích hoạt các tính năng sau trong thử nghiệm của mình trước khi chạy thử nghiệm với Test Lab:

Bật trình soạn thảo

Android Test Orchestrator là một công cụ chạy độc lập từng thử nghiệm đo lường của ứng dụng. Test Lab luôn sử dụng phiên bản mới nhất của Orchestrator.

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

Khi sử dụng Orchestrator, bạn được hưởng lợi từ những điều sau:

  • Không có trạng thái chia sẻ. Mỗi thử nghiệm chạy trong phiên bản công cụ riêng của nó, do đó trạng thái chia sẻ không tích lũy qua các thử nghiệm.
  • Sự cố bị cô lập. Nếu thử nghiệm gặp sự cố thì chỉ thiết bị đo đó 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ãy nhớ rằng khi bạn sử dụng Orchestrator, mỗi thử nghiệm sẽ chạy phiên bản công cụ riêng của nó, điều đó có nghĩa là quy trình ứng dụng sẽ được khởi động lại sau mỗi trường hợp thử nghiệm. Kết quả là thời gian chạy tăng lên có thể ảnh hưởng đến mức sử dụng hạn ngạch hoặc thời gian tính phí của bạn và có thể khiến bạn vượt quá giới hạn thời gian chờ của thiết bị. Nếu bạn giảm thời gian khởi động ứng dụng thì chi phí này sẽ rút ngắn lại.

Để đặt các tùy chọn bổ sung cho Orchestrator, hãy chỉ định chúng thông qua trường environmentVariables . Ví dụ: để sử dụng clearPackageData , hãy sử dụng tùy chọn này trong gcloud:

--environment-variables clearPackageData=true

Bật phân đoạn

Phân đoạn 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. 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.

Ví dụ: nếu bạn tạo N phân đoạn, đối với mỗi thiết bị bạn chọn, Test Lab sẽ tạo ra 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 kiểm thử được phân chia có thể dẫn đến nhiều lần thực hiện kiểm thử trên mỗi thiết bị. Tuy nhiên, các trường hợp kiểm thử không được phân đoạn sẽ dẫn đến một lần thực hiện kiểm thử trên mỗi thiết bị. Để tìm hiểu các khái niệm của Test Lab, hãy xem Các khái niệm chính .

Để bật phân đoạn thử nghiệm trong bảng điều khiển Firebase, hãy làm theo các bước sau:

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

  2. Trong phần Sharding , nhập số shard 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ế phân đoạn tích hợp của AndroidJUnitRunner. Để tránh bị tính phí khi quay vòng các phân đoạn trống (phân đoạn không có trường hợp kiểm thử được chỉ định), số lượng phân đoạn bạn tạo phải nhỏ hơn tổng số trường hợp kiểm thử. Tùy thuộc vào thời gian chạy của mỗi trường hợp kiểm thử, thông thường bạn nên chỉ định 2-10 trường hợp kiểm thử cho mỗi phân đoạn.

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