Robotium Tutorial: Android Kerangka Kerja Pengujian dengan Contoh

⚡ Ringkasan Cerdas

Robotium adalah sumber terbuka Android Kerangka kerja otomatisasi pengujian yang menggerakkan aplikasi native dan hybrid melalui antarmuka penggunanya, memungkinkan penguji untuk membuat skrip skenario fungsional, sistem, dan penerimaan yang mencakup beberapa hal. Android kegiatan.

  • 🔘 Kelas inti: Solo mengungkap metode klik, pencarian, seret, dan penegasan yang digunakan oleh setiap Robotium panggilan kasus uji.
  • ☑️ Ramah terhadap sistem kotak hitam: Pengujian terikat pada komponen UI saat dijalankan, sehingga pengetahuan minimal tentang kode sumber aplikasi tidak diperlukan.
  • ✅ Prosedur empat langkah: Rancang spesifikasi pengujian, tulis program pengujian, jalankan pada perangkat, lalu kumpulkan hasilnya.
  • 🧪 Contoh yang dikerjakan: Salam lengkapAndroidKelas pengujian memeriksa teks yang terlihat, aktivitas saat ini, dan tombol Mulai.
  • ️ Dua mode pengoperasian: Jalankan pengujian dari IDE atau dari terminal dengan perintah adb shell am instrument.
  • ⚙️ Status terkini: Robotium 5.6.3 tetap menjadi rilis terakhir, jadi yang baru Android proyek biasanya memasangkan atau menggantinya dengan Espresso.

Robotium Tutorial

Apa itu Robotium?

Robotium adalah Android Kerangka kerja pengujian yang mengotomatiskan kasus uji untuk aplikasi native dan hybrid. Menggunakan Robotium, seorang pengembang dapat membuat kasus uji GUI otomatis yang tangguh untuk Android aplikasi. Seorang pengembang juga dapat menulis skenario pengujian fungsional, sistem, dan penerimaan yang mencakup beberapa Android kegiatan.

Robotium Kerangka Pengujian

Standar Android Kerangka pengujian memiliki keterbatasan yang tercantum di bawah ini.

  • Tidak dapat menangani banyak aktivitas
  • Performa eksekusi pengujian lambat
  • Kasus uji bersifat kompleks dan sulit untuk diimplementasikan.

The Robotium framework adalah pilihan yang lebih baik untuk melakukan pengujian pada sebuah Android aplikasi.

Robotium adalah kerangka kerja sumber terbuka dan dianggap sebagai perluasan dari Android kerangka kerja pengujian. Menggunakan Robotium, seorang pengembang dapat membuat kasus uji GUI otomatis yang tangguh untuk Android Selain itu, seorang pengembang dapat menulis skenario pengujian fungsional, sistem, dan penerimaan yang mencakup berbagai aplikasi. Android kegiatan.

Tabel di bawah ini merangkum fitur-fitur canggih yang membedakannya. Robotium dari kerangka instrumentasi sederhana.

Fitur lanjutan dari Robotium dibandingkan dengan standar Android kerangka instrumentasi

Fitur lanjutan dari Robotium

Robotium Kelas Kasus Uji

Robotium menyediakan sejumlah kecil kelas untuk pengujian, dan contoh dalam artikel tersebut mengimpor versi lama. com.jayway.android.robotium.solo paket. Kelas-kelas ini mendukung kasus uji yang mencakup berbagai aktivitas, dan Solo terintegrasi dengan ActivityInstrumentationTestCase2.

Catatan: arus Robotium rilis tersebut mengekspos kelas yang sama dalam versi yang lebih pendek. com.robotium.solo paket, sementara koordinat Maven tetap sama com.jayway.android.robotium:robotium-soloSesuaikan impor agar sesuai dengan versi JAR yang sebenarnya Anda tambahkan ke proyek.

Diagram di bawah ini menunjukkan bagaimana kelas Solo berada di atas kasus uji instrumentasi.

Kelas Solo terintegrasi dengan ActivityInstrumentationTestCase2 dalam sebuah Robotium Kasus cobaan

Integrasi dari Robotium dan ActivityInstrumentationTestCase2

Seorang penguji dapat menulis kasus uji tanpa mengetahui desain aplikasi, yang menjadikan pendekatan ini sebagai suatu bentuk pengujian kotak hitamItu adalah keunggulan luar biasa dibandingkan dengan yang biasa saja. Android kelas kasus uji.

Cara Menggunakan Robotium

Untuk menggunakan Robotium di Anda Android Untuk proyek uji coba, Anda perlu mengikuti langkah-langkah di bawah ini.

Langkah-langkah yang diperlukan untuk menambahkan dan menggunakan Robotium di dalam sebuah Android proyek uji

Cara penggunaan Robotium

Untuk menjamin kualitas Anda Android Untuk mengajukan permohonan, ikuti prosedur empat tahap di bawah ini.

  • Rancang spesifikasi pengujian.
  • Kembangkan program pengujian
  • Jalankan kasus uji pada perangkat target.
  • Kumpulkan hasil tesnya

Diagram alur di bawah ini menempatkan keempat tahapan tersebut secara berurutan.

Diagram alur empat tahap Android prosedur pengujian aplikasi

Android prosedur pengujian aplikasi

LANGKAH 1) Merancang Spesifikasi Uji

Ini adalah langkah pertama dalam menguji aplikasi Anda. Pada langkah ini, Anda menentukan target yang akan diuji. Sebuah Android Sebuah aplikasi memiliki banyak target yang perlu diuji, seperti UI, aktivitas, komponen, dan layanan. Mendefinisikan target dengan jelas membantu Anda mencapai cakupan pengujian yang luas.

  • Rencanakan jenis pengujian yang perlu dilakukan (pengujian unit, pengujian fungsional, pengujian sistem).
  • Rancang setiap Kasus cobaan untuk cakupan maksimal sambil tetap menjagaping Jumlah kasus uji yang sedikit. Semakin banyak kode yang Anda uji, semakin tinggi peluang deteksi bug sejak dini.

LANGKAH 2) Tulis Program Pengujian

Bagian ini memandu Anda dalam menulis sebuah Android program uji menggunakan Android JUnit tes dan RobotiumAnggaplah Anda sudah mengembangkan sebuah Android program bernama HelloAndroidProgram ini memiliki fungsi-fungsi yang dijelaskan di bawah ini.

  • Tampilkan teks “Hello world!” di layar.
  • Tampilkan HaloAndroid pesan yang muncul saat pengguna menekan tombol “Mulai”.

Tangkapan layar di bawah ini menunjukkan aplikasi yang sedang diuji berjalan di sebuah perangkat.

HaloAndroid Aplikasi yang sedang diuji menampilkan teks "Hello world" dan tombol Mulai.

HaloAndroid aplikasi

Persyaratan sistem

  • The Android platform dikirim dengan pra-terintegrasi JUnit 3 kerangka kerja, yang merupakan apa ActivityInstrumentationTestCase2 membangun.
  • Untuk membuat file Android proyek uji dari EclipseMesin Anda membutuhkan sesuatu yang berfungsi. Android Instalasi SDK.
  • Instal yang terbaru Android SDK platform, bukan rilis lama yang sudah ditentukan.

Tangkapan layar dalam panduan ini menggunakan Eclipse dengan plugin ADT, yang merupakan toolchain standar saat contoh tersebut ditulis. Eclipse ADT sudah tidak lagi didukung, jadi pada mesin modern Anda akan Download Android Studio sebagai gantinya, gunakan kembali kode pengujian yang sama di dalam sebuah Gradle modul.

Untuk Robotium kerangka kerja pengujian, unduh Robotium perpustakaan dari Robotium halaman proyek.

Buat Android Proyek Uji

  • Klik File -> Baru -> Lainnya
  • Pilih Android -> Android Jalankan Proyek Uji seperti yang ditunjukkan pada gambar di bawah ini, lalu pilih Berikutnya.

Eclipse Panduan Proyek Baru dengan Android Proyek Uji yang dipilih

Buat yang baru Android proyek uji

Tuliskan nama proyek pengujian Anda. Sesuai konvensi penamaan, proyek pengujian harus diberi nama “Hello”.AndroidTes".

Eclipse dialog dengan proyek uji coba bernama HelloAndroidUji coba mengikuti konvensi penamaan

Tambahkan nama proyek pengujian berdasarkan konvensi penamaan.

Pilih aplikasi target yang akan diuji. Dalam hal ini, aplikasi targetnya adalah Hello.Android, lalu klik Selesai.

Eclipse Langkah panduan memilih HaloAndroid sebagai aplikasi target yang sedang diuji

Pilih aplikasi target yang akan diuji.

Buat Rangkaian Tes

Berdasarkan spesifikasi pengujian Anda, sekarang Anda membuat rangkaian pengujian untuk program pengujian Anda. Anda dapat memilih dari berbagai pilihan yang tersedia. pengujian perangkat lunak kerangka kerja. Tutorial ini menggunakan standar. Android kerangka pengujian ActivityInstrumentationTestCase2Untuk menguji dengan Robotium, Tambahkan Robotium berkas perpustakaan ke sebuah libs direktori di dalam folder proyek Anda.

Sebuah kasus uji mendefinisikan fixture yang digunakan untuk menjalankan beberapa pengujian. Untuk mendefinisikan sebuah kasus uji, ikuti struktur program di bawah ini.

  • Implementasikan subkelas dari TestCase.
  • Definisikan variabel instance yang menyimpan status fixture.
  • Inisialisasi status fixture dengan menimpa metode setUp().
  • Bersihkan setelah pengujian dengan menimpa metode tearDown().

Diagram di bawah ini memetakan struktur tersebut ke dalam program pengujian yang akan Anda tulis.

Struktur Sebuah Robotium Program pengujian yang menunjukkan setUp, metode pengujian, dan tearDown.

Struktur program pengujian

package com.example.helloandroid.test;

import com.example.helloandroid.HelloAndroid;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2 <HelloAndroid> {
    
	private HelloAndroid mActivity;
	private TextView mView;
	private String resourceString;
	private Solo solo;
	
	public HelloAndroidTest () {
		// TODO Auto-generated constructor stub
		super("com.example.helloandroid",HelloAndroid.class);	
	}
	
	 @Override
	protected void setUp() throws Exception {
		// TODO Auto-generated method stub
	//	super.setUp();
		 
	 	mActivity = this.getActivity();
		solo = new Solo(getInstrumentation(),getActivity());
		mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview2);
		resourceString = mActivity.getString(com.example.helloandroid.R.string.hello_world);
		
	}
	 
	 @Override
	protected void tearDown() throws Exception {
		// TODO Auto-generated method stub
		//super.tearDown();
		solo.finishOpenedActivities();
	}
	
	public void testPrecondition() {
		assertNotNull(mView);
	}
	
	/* test Target application contains a text display "Hello World!"*/
	public void testSearchText() {
		assertEquals(resourceString,(String) mView.getText());
	}
	
	/* test HelloAndroid Activity on target application is exist*/
	public void testCurrentActivity() throws Exception  {
    	solo.assertCurrentActivity("wrong activity", HelloAndroid.class);
    }
    
	/* test Application UI contains "Start" button */
	/* send event click button to target application */
    public void testSearchButton() throws Exception {
    	boolean found = solo.searchButton("Start");
    	solo.clickOnButton("Start");
    	assertTrue(found);
    }

	

}

Menambahkan Kasus Uji

  • Dalam paket yang sama dengan rangkaian pengujian, buat kelas TestCase.
  • Untuk menguji aktivitas tertentu, misalnya HaloAndroid, buatlah sebuah test case yang memperluas ActivityInstrumentationTestCase2Android>.
  • Di dalam kelas tersebut, penguji mendapatkan aktivitas yang sedang diuji melalui metode getActivity().
  • Buat pengujian untuk aktivitas tersebut secara bebas dengan menambahkan metode bernama “test + nama metode asli”.
  • Di dalam metode pengujian, penguji dapat menggunakan Android JUnit Fungsi-fungsi untuk membandingkan nilai aktual dengan nilai yang diharapkan. Metode-metode ini ditunjukkan di bawah ini.

Tabel di bawah ini mencantumkan metode pernyataan dan interaksi yang paling sering digunakan dalam kedua kerangka kerja tersebut.

Contoh metode dari Robotium Kelas solo dan Android kerangka pengujian

Contoh metode Robotium dan Android kerangka pengujian

Rangkaian pengujian di atas memverifikasi bahwa GUI aplikasi menampilkan teks “Hello World!” dan berisi tombol bernama “Start”.

LANGKAH 3) Jalankan Tes

Setelah Anda selesai menulis program pengujian, jalankan pengujian menggunakan langkah-langkah di bawah ini.

  • Hubungkan sebuah Android Hubungkan perangkat ke PC Anda, atau jalankan emulator jika tidak ada perangkat sungguhan yang tersedia.
  • Di IDE Anda, klik kanan proyek pengujian dan pilih Jalankan Sebagai → Android Uji Unit.

Tangkapan layar di bawah ini menunjukkan proses pengujian yang diluncurkan dari IDE.

Peluncuran Robotium program pengujian sebagai sebuah Android Pengujian Unit dari IDE

Menjalankan program pengujian

Selain menjalankan pengujian dari IDE, Anda juga dapat menjalankannya dari baris perintah. Dalam program pengujian ini, paket pengujiannya adalah... com.example.helloandroid.testDi terminal Linux, gunakan perintah berikut untuk menjalankan semua pengujian dalam paket tersebut.

$ adb shell am instrument -w -e package com.example.helloandroid.test

LANGKAH 4) Dapatkan Hasil Tes

Setelah pengujian dijalankan, Anda mengumpulkan hasil pengujian.

Dalam program pengujian ini, empat metode pengujian dijalankan. Pada eksekusi di bawah ini, semua kasus uji berhasil.

Hasil keluaran tes yang menunjukkan keempatnya Robotium kasus uji berhasil

Hasil keluaran pengujian ketika semua kasus uji berhasil

Jika sebuah kasus uji gagal, output akan ditampilkan dan menunjukkan kasus uji mana yang gagal.

Daftar keluaran hasil pengujian Robotium kasus uji yang gagal

Output hasil pengujian ketika sebuah kasus uji gagal

sumber Code contoh

Artikel ini menyertakan contoh kode sumber yang membantu Anda mengikuti tutorial dengan lebih jelas dan memahami detail teknis dengan cepat.

  • HaloAndroid: aplikasi yang sedang diuji.
  • HaloAndroiduji: program pengujian yang menggunakan Android kerangka kerja pengujian.

Jika Anda ingin membandingkan Robotium Untuk opsi lain di bidang ini, lihat pengujian aplikasi seluler panduan, itu Appium tutorial dan rangkuman dari alat pengujian aplikasi seluler.

Pertanyaan Umum Demo Slot

Robotium Versi 5.6.3 tetap menjadi rilis terakhir yang diterbitkan dan pengembangan aktif telah berhenti bertahun-tahun yang lalu. Kerangka kerja tersebut masih berjalan, dan artefaknya masih ada di Maven Central, tetapi versi baru tidak tersedia. Android proyek biasanya memilih Espresso, yang Google mempertahankan.

Robotium adalah kerangka kerja kotak hitam yang terikat pada widget saat runtime dan hanya membutuhkan sedikit pengetahuan tentang kode sumber. Espresso is GoogleAlat white-box yang melakukan sinkronisasi dengan thread UI dan mengharapkan akses ke kode aplikasi.

Robotium hanya menjalankan satu aplikasi dalam satu waktu, tidak dapat menangani Flash atau konten web di luar WebView secara andal, tidak menawarkan perekaman bawaan dalam JAR sumber terbuka, dan ketergantungannya pada kelas instrumentasi yang sudah usang mempersulit aplikasi modern. Gradle membangun.

Menyatakan androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3' di dalam file build modul, atau hilangkan robotium-solo JAR ke libs dan merujuknya sebagai dependensi file.

Ya. Robotium Pengujian yang dilakukan adalah pengujian instrumentasi biasa, sehingga APK yang sama dapat dijalankan pada emulator atau perangkat fisik. Perangkat keras asli lebih disukai untuk pemeriksaan gerakan, sensor, dan kinerja, di mana waktu yang dibutuhkan emulator dapat berbeda.

Robotium Cocok untuk skenario fungsional, sistem, dan penerimaan pengguna pada tingkat UI. Ini bukan pengganti pengujian unit, yang berjalan lebih cepat di JVM, maupun untuk pengujian yang lebih luas. jenis pengujian perangkat lunak Rilis masih diperlukan.

Pembelajaran mesin digunakan untuk locator yang dapat memperbaiki diri sendiri dan tetap berfungsi meskipun terjadi perubahan tata letak, perbandingan visual yang menandai regresi rendering, dan deteksi pengujian yang tidak stabil yang memberi peringkat pada pengujian ulang. Perangkat lunak ini mengurangi pemeliharaan, tetapi manusia tetap memutuskan perilaku mana yang penting.

Kopilot GitHub dapat membuat kerangka untuk metode pengaturan Solo, pembongkaran, dan penegasan dari kelas aktivitas. RevPerhatikan saran tersebut dengan saksama, karena mungkin akan memunculkan impor paket lama atau pernyataan yang tidak pernah dipenuhi oleh aplikasi.

Ringkaslah postingan ini dengan: