Membuat pengujian UI dengan Espresso Test Recorder

Espresso Test Recorder memungkinkan Anda membuat pengujian UI untuk aplikasi tanpa perlu menulis kode pengujian apa pun. Dengan merekam skenario pengujian, Anda bisa merekam interaksi dengan perangkat dan menambahkan assertion untuk memverifikasi elemen UI dalam snapshot tertentu aplikasi Anda. Espresso Test Recorder kemudian mengambil rekaman yang sudah disimpan dan otomatis menghasilkan pengujian UI terkait yang dapat Anda jalankan untuk menguji aplikasi.

Espresso Test Recorder menulis pengujian berdasarkan framework Espresso Testing, sebuah API dalam AndroidX Test. Espresso API mendorong Anda untuk membuat pengujian UI yang ringkas dan andal berdasarkan tindakan pengguna. Dengan menyatakan ekspektasi, interaksi, dan assertion tanpa secara langsung mengakses aktivitas dan tampilan aplikasi yang mendasarinya, struktur ini mencegah kegagalan pengujian dan mengoptimalkan kecepatan pengujian.

Mematikan animasi di perangkat pengujian Anda

Sebelum menggunakan Espresso Test Recorder, pastikan untuk mematikan animasi pada perangkat pengujian guna mencegah hasil yang tidak diharapkan. Ikuti petunjuk "Menyiapkan Espresso" pada halaman Menguji UI untuk Aplikasi Tunggal, tetapi harap diingat bahwa Anda tidak perlu menetapkan referensi dependensi secara manual ke library Espresso karena Test Recorder otomatis menangani hal ini saat Anda menyimpan rekaman. Langkah-langkah ini hanya perlu dilakukan sekali untuk project tertentu.

Merekam pengujian Espresso

Pengujian Espresso terdiri dari dua komponen utama: interaksi UI dan assertion pada elemen View. Interaksi UI mencakup tindakan ketuk dan ketik yang dapat digunakan pengguna untuk berinteraksi dengan aplikasi Anda. Assertion memverifikasi keberadaan atau konten elemen visual pada layar. Misalnya, pengujian Espresso untuk aplikasi pengujian Notes mungkin mencakup interaksi UI untuk mengklik tombol dan menulis catatan baru, tetapi menggunakan assertion untuk memverifikasi keberadaan tombol dan konten catatan.

Bagian ini akan membahas cara membuat kedua komponen pengujian ini menggunakan Espresso Test Recorder, serta cara menyimpan rekaman yang sudah selesai untuk menghasilkan pengujian.

Merekam interaksi UI

Untuk mulai merekam pengujian dengan Espresso Test Recorder, lakukan langkah-langkah berikut:

  1. Klik Run > Record Espresso Test.
  2. Di jendela Select Deployment Target, pilih perangkat tempat Anda ingin merekam pengujian. Jika perlu, buat Android Virtual Device baru. Klik OK.
  3. Espresso Test Recorder memicu build project Anda, dan aplikasi tersebut harus diinstal dan diluncurkan sebelum Espresso Test Recorder mengizinkan Anda berinteraksi dengannya. Jendela Record Your Test muncul setelah aplikasi diluncurkan, dan karena Anda belum berinteraksi dengan perangkat, panel utama akan menampilkan "No events recorded yet". Lakukan interaksi dengan perangkat untuk memulai peristiwa logging seperti tindakan "mengetuk" dan "mengetik".

Catatan: Sebelum bisa mulai mencatat interaksi, Anda mungkin melihat dialog di perangkat yang menampilkan "Waiting for Debugger" atau "Attaching Debugger". Espresso Test Recorder menggunakan debugger untuk mencatat peristiwa UI. Setelah debugger tersambung, dialog akan otomatis menutup; jangan menekan Force Close.

Interaksi yang terekam akan muncul di panel utama pada jendela Record Your Test, seperti yang ditunjukkan pada gambar 1 di bawah. Saat Anda menjalankan pengujian, pengujian Espresso akan mencoba mengeksekusi tindakan ini dengan urutan yang sama.

Gambar 1. Jendela Record Your Test dengan interaksi UI yang dicatat.

Menambahkan assertion untuk memverifikasi elemen UI

Assertion memverifikasi keberadaan atau konten elemen View melalui tiga cara utama:

  • text is: Memeriksa konten teks dari elemen View yang dipilih
  • exists: Memastikan elemen View ada dalam hierarki View saat ini yang terlihat di layar
  • does not exist: Memastikan elemen View tidak ada dalam hierarki View saat ini

Untuk menambahkan assertion ke pengujian Anda, lakukan langkah-langkah berikut:

  1. Klik Add Assertion. Dialog Screen Capture muncul saat Espresso mendapatkan hierarki UI dan informasi lain tentang status aplikasi saat ini. Dialog akan otomatis menutup begitu Espresso merekam screenshot-nya.
  2. Tata letak layar saat ini akan muncul dalam panel di sebelah kanan jendela Record Your Test. Untuk memilih elemen View di mana assertion akan dibuat, klik elemen pada screenshot atau gunakan menu drop-down pertama di kotak Edit assertion di bagian bawah jendela. Objek View yang dipilih akan ditandai dengan kotak merah.
  3. Pilih assertion yang ingin Anda gunakan dari menu drop-down kedua di kotak Edit assertion. Espresso mengisi menu dengan assertion yang valid untuk elemen View yang dipilih.
    • Jika Anda memilih assertion "text is", Espresso akan otomatis memasukkan teks yang saat ini berada di dalam elemen View yang dipilih. Anda bisa mengedit teks agar sesuai dengan assertion yang diinginkan menggunakan kolom teks di kotak Edit assertion.
  4. Klik Save and Add Another untuk membuat assertion lain, atau klik Save Assertion untuk menutup panel assertion.

Screenshot pada gambar 2 menunjukkan assertion "text is" dibuat untuk memverifikasi bahwa judul catatan adalah "Happy Testing!":

Gambar 2. Kotak Edit assertion setelah elemen View dipilih (merah).

Selagi membuat assertion, Anda dapat melanjutkan interaksi dengan aplikasi, meskipun panel assertion masih terbuka di jendela Record Your Test. Espresso Test Recorder akan terus mencatat tindakan Anda tetapi, begitu disimpan, assertion yang Anda edit akan muncul sebelum semua interaksi tersebut. Screenshot untuk assertion juga mempertahankan tata letak yang ditampilkan perangkat atau emulator saat Anda menekan tombol Add Assertion.

Menyimpan rekaman

Setelah Anda selesai berinteraksi dengan aplikasi dan menambahkan assertion, lakukan langkah-langkah berikut untuk menyimpan rekaman dan menghasilkan pengujian Espresso:

  1. Klik Complete Recording. Jendela Pick a test class name for your test akan muncul.
  2. Espresso Test Recorder memberikan pengujian Anda nama yang unik dalam paketnya berdasarkan nama aktivitas yang diluncurkan. Gunakan kolom teks Test class name jika Anda ingin mengubah nama yang disarankan. Klik Save.
    • Jika Anda belum menambahkan dependensi Espresso ke aplikasi Anda, dialog Missing Espresso dependencies akan muncul saat Anda mencoba menyimpan pengujian. Klik Yes untuk otomatis menambahkan dependensi ke file build.gradle Anda.
  3. File akan otomatis terbuka setelah Espresso Test Recorder membuatnya, dan Android Studio akan menampilkan class uji seperti yang dipilih di jendela Project IDE.
    • Dalam hal ini, penyimpanan pengujian bergantung pada lokasi root pengujian instrumentasi Anda, serta nama paket aktivitas yang diluncurkan. Misalnya, pengujian untuk aplikasi pengujian Notes akan disimpan di folder src > androidTest > java > com.example.username.appname pada modul aplikasi tempat Anda merekam pengujian.

Menjalankan pengujian Espresso secara lokal

Untuk menjalankan pengujian Espresso, gunakan jendela Project di sisi kiri Android Studio IDE:

  1. Buka folder modul aplikasi yang diinginkan dan buka pengujian yang ingin Anda jalankan. Lokasi pengujian tergantung pada lokasi root pengujian instrumentasi dan nama paket aktivitas yang diluncurkan. Contoh berikut menunjukkan lokasi penyimpanan pengujian untuk aplikasi pengujian Notes:
    • Jika Anda menggunakan tampilan Android di dalam jendela ini, buka java > com.example.username.appname (androidTest).
    • Jika Anda menggunakan tampilan Project di dalam jendela ini, buka src > androidTest > java > com.example.username.appname dalam folder modul.
  2. Klik kanan pengujian dan klik Run ‘testName’.
    • Atau, Anda dapat membuka file pengujian dan mengklik kanan metode atau class uji yang dihasilkan. Baca selengkapnya cara menjalankan pengujian di halaman Menguji Aplikasi Anda.
  3. Pada jendela Select Deployment Target, pilih perangkat tempat Anda ingin menjalankan pengujian. Jika perlu, buat Android Virtual Device baru. Klik OK.

Pantau progres pengujian Anda di jendela Run di bagian bawah IDE. Android Studio menjalankan build lengkap project Anda dan membuka sebuah tab dengan nama pengujian Anda di jendela Run, seperti ditunjukkan pada gambar 3. Anda dapat memeriksa apakah pengujian Anda lulus atau gagal di tab ini, serta berapa lama pengujian berjalan. Setelah pengujian selesai, tab akan mencatat log "Test run to completion".

Gambar 3. Contoh output di jendela Run setelah menjalankan pengujian Espresso secara lokal.

Untuk mempelajari lebih lanjut cara menulis konfigurasi test run, baca bagian "Menentukan konfigurasi pengujian untuk sebuah class atau metode" di Membuat dan Mengedit Konfigurasi Run/Debug.

Menjalankan pengujian Espresso dengan Firebase Test Lab for Android

Anda bisa menggunakan pengujian yang dihasilkan oleh Espresso Test Recorder dengan Firebase Test Lab untuk menguji aplikasi di cloud pada ratusan konfigurasi perangkat. Pengujian aplikasi dengan Test Lab dapat dilakukan secara gratis asalkan tidak melebihi kuota gratis harian pada paket Spark. Untuk menjalankan pengujian Espresso dengan Firebase Test Lab, buat project Firebase untuk aplikasi Anda, lalu ikuti petunjuk Menjalankan pengujian dengan Firebase Test Lab dari Android Studio.

Gambar 4. Contoh output di jendela Run setelah menjalankan pengujian dengan Firebase Test Lab di beberapa perangkat.