Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Memulai uji instrumentasi

Panduan ini berisi penjelasan mengenai cara menyiapkan dan menjalankan uji instrumentasi menggunakan Firebase Test Lab. Untuk menggunakan panduan ini, Anda memerlukan uji instrumentasi (yang ditulis oleh Anda atau tim Anda) yang menggunakan framework pengujian Android Espresso atau UI Automator 2.0. Uji instrumentasi dapat dijalankan hingga 45 menit di perangkat fisik dan hingga 60 menit di perangkat virtual.

Pada langkah selanjutnya, Anda akan mengupload APK aplikasi dan APK pengujian ke Firebase. Baca artikel Menguji aplikasi untuk mempelajari lebih lanjut cara membuat APK pengujian. Jika mau, Anda juga dapat mendownload aplikasi contoh NotePad.

Langkah 1. (Opsional) Menambahkan library screenshot ke aplikasi

Test Lab menyediakan library screenshot yang dapat Anda gunakan untuk mengambil screenshot saat menjalankan uji instrumentasi di aplikasi. Setelah pengujian selesai, Anda dapat melihat screenshot di Android Studio atau di Firebase console.

Perlu diperhatikan bahwa kemampuan untuk mengambil screenshot sudah disertakan dalam APK pengujian app-debug-test-unaligned.apk dan aplikasi contoh NotePad. Screenshot juga otomatis diambil saat Anda menjalankan Uji Robo.

  1. Di Android Studio, buka tampilan Project dan klik kanan nama project Anda. Lalu, klik Baru > Direktori.

  2. Pada dialog Direktori Baru, ketik aars. Tindakan ini akan membuat direktori aars di root project uji Anda (sebagai direktori pembanding untuk folder app).

  3. Salin cloudtestingscreenshotter_lib.aar, lalu tempelkan ke folder aars.

  4. Di file build.gradle level root (level project) aplikasi, tambahkan referensi ke folder aars di setiap blok repositories:

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. Dalam direktori level teratas pada modul Anda (untuk aplikasi contoh NotePad, ini adalah direktori app), buka file build.gradle dan tambahkan dependensi pada cloudtestingscreenshotter_lib.aar ke level teratas blok dependencies:

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. Di file AndroidManifest.xml, tentukan izin sistem untuk aplikasi Anda dengan menambahkan baris berikut ke dalam tag <manifest>. Jika Anda melakukan pengujian di Android 10 (API level 29) atau versi yang lebih baru, abaikan izin WRITE_EXTERNAL_STORAGE (aplikasi Anda tidak memerlukan izin ini untuk dapat membaca dan menulis screenshot ke perangkat).

    <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>
    

Jika sewaktu-waktu Anda ingin mengambil screenshot selama pengujian, panggil metode ScreenShotter.takeScreenshot dari library cloudtestingscreenshotter_lib, dengan argumen pertama adalah label yang Anda gunakan untuk mengidentifikasi screenshot tersebut (main_screen_2 digunakan dalam contoh berikut):

Java

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin+KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

Melihat screenshot

Jika Anda menggunakan Android Studio untuk menjalankan pengujian, saat pengujian selesai berjalan, Anda dapat membandingkan screenshot yang diambil selama pengujian dengan memilih elemen di hierarki hasil pengujian, lalu mengklik opsi Melihat Screenshot Lihat Screenshot.

Layar perbandingan screenshot

Anda dapat memilih dan membandingkan screenshot dari berbagai konfigurasi seperti berikut ini:

Tugas Tindakan
Beralih antara eksekusi pengujian. Gunakan menu drop-down di pojok kiri atas.

menu kasus uji
Beralih antara screenshot dalam suatu eksekusi pengujian. Gunakan tanda panah di pojok kanan atas.

pengalih screenshot
Menambahkan panel perbandingan screenshot ke tampilan saat ini. Klik Bandingkan.

Bandingkan
Memilih dimensi pengujian yang berbeda (jenis perangkat, orientasi perangkat, lokalitas perangkat, dll.). Pilih anggota dimensi baru dari daftar di bagian bawah screenshot.

Langkah 2. Mengaktifkan fitur pengujian opsional

Anda dapat mengaktifkan fitur berikut dalam pengujian sebelum menjalankannya dengan Test Lab:

Mengaktifkan Orchestrator

Android Test Orchestrator adalah alat yang menjalankan setiap uji instrumentasi aplikasi secara terpisah. Test Lab selalu menjalankan Orchestrator versi terbaru.

Guna mengaktifkan Orchestrator untuk Test Lab, dalam penyiapan uji instrumentasi, klik Opsi tambahan > Jalankan dengan Orchestrator.

Kelebihan dan kekurangan

  • Kelebihan: Tidak ada status bersama. Setiap pengujian berjalan dalam instance instrumentasinya sendiri, sehingga status bersama tidak terakumulasi lintas pengujian.
  • Kelebihan: Error yang terisolasi. Jika ada pengujian yang mengalami error, hanya instrumentasi tersebut yang akan dihentikan, sementara pengujian lainnya di suite Anda dapat tetap berjalan.
  • Kekurangan: Runtime yang lebih lama. Setiap pengujian menjalankan instance instrumentasinya sendiri. Artinya, proses pengujian memakan waktu sedikit lebih lama secara keseluruhan. Jika tidak dikendalikan, runtime yang lebih lama dapat berpotensi memengaruhi penggunaan kuota atau waktu yang ditagih, serta dapat menyebabkan tercapainya batas waktu habis perangkat.

Mengaktifkan sharding

Sharding pengujian membagi satu set pengujian menjadi sejumlah subgrup (shard) yang berjalan sendiri-sendiri secara terpisah. Test Lab otomatis menjalankan setiap shard secara bersamaan menggunakan beberapa perangkat dan menyelesaikan keseluruhan set pengujian tersebut dalam waktu yang lebih singkat.

Cara kerja sharding pengujian

Misalkan Anda membuat N shard. Untuk setiap perangkat yang Anda pilih, Test Lab memutar N perangkat yang identik dan menjalankan subset pengujian di setiap perangkat. Ini berarti bahwa kasus uji dengan sharding dapat menghasilkan beberapa eksekusi uji per perangkat, tidak seperti kasus uji coba tanpa sharding, yang selalu menghasilkan satu eksekusi uji per perangkat (untuk ringkasan singkat tentang konsep utama dalam Test Lab, baca artikel tentang Konsep utama).

Anda dapat mengaktifkan sharding pengujian di Firebase console:

  1. Di penyiapan uji instrumentasi, klik Opsi tambahan.

  2. Di bagian Sharding, masukkan jumlah shard yang ingin Anda jalankan.

Penagihan untuk shard pengujian

Test Lab mengimplementasikan shard Anda dengan memanfaatkan mekanisme sharding bawaan AndroidJUnitRunner. Agar tidak dikenai biaya saat memutar shard kosong (shard tanpa kasus uji yang ditetapkan), jumlah shard yang Anda buat harus kurang dari jumlah total kasus uji. Secara umum, tetapkan 2-10 kasus uji per shard, tergantung durasi penyelesaian setiap kasus uji.

Untuk mengetahui informasi selengkapnya tentang penagihan, baca Penggunaan, kuota, dan penagihan.