REST Assured vs. JMeter: Perbandingan Alat Uji REST
Diterbitkan: 2022-03-11Pengujian otomatis adalah komponen penting dari proses jaminan kualitas perangkat lunak. Tetapi menguji API transfer status representasional (REST) bisa menjadi bisnis yang rumit. Banyak yang menggunakan pengujian REST API secara manual mengabaikan detail dan kehilangan cara untuk menghemat waktu.
Setiap layanan REST API yang diuji dengan benar akan mencakup area berikut:
- Pengujian apakah layanan API sesuai dengan standar REST
- Pengujian kode respons layanan API
- Penegasan konten respons layanan API
- Tolok ukur kinerja layanan API
Untuk ini, Anda memerlukan alat yang tepat. Apache JMeter dan REST Assured adalah dua alat uji REST yang populer untuk menguji layanan REST API. Anda dapat mempelajari lebih lanjut tentang bagaimana Anda dapat menggunakannya dalam praktik dari sini dan di sini.
Dalam artikel ini, Anda akan mempelajari pro dan kontra dari kedua alat ini dan di mana mereka paling cocok dengan proyek REST API Anda yang sudah ada.
Kemudahan Pengaturan
Ada satu prasyarat: JMeter dan REST Assured membutuhkan Java, jadi Anda harus menginstal Java di komputer Anda untuk menjalankan JMeter atau REST Assured.
Menginstal Apache JMeter sangat sederhana: Buka halaman unduhan, pilih ZIP atau TAR, unduh arsip, buka kemasannya, dan Anda siap melakukannya.
Buka folder tempat Anda membongkar arsip, buka subfolder bin
, dan jalankan jmeter.bat
(atau yang serupa untuk sistem operasi Anda, jika selain Windows). Untuk informasi lebih rinci tentang cara mengatur Apache JMeter, lihat halaman ini.
Menginstal REST Assured adalah pengalaman yang sedikit berbeda. REST Assured bukan alat yang berdiri sendiri. Ini adalah perpustakaan Java. Untuk menggunakannya, Anda harus menyiapkan proyek Java baru dan memasukkannya sebagai pustaka untuk proyek Anda. Tentu saja, ada dukungan untuk banyak alat pembangunan, jadi Anda bisa mengarahkan penyelesai ketergantungan Anda ke beberapa repo publik (Maven). Anda dapat menemukan informasi lebih rinci tentang cara mengatur REST Assured di sini.
Dokumentasi
Dokumentasi Apache JMeter dapat ditemukan di situs web resmi JMeter. Ini memberikan beberapa dokumentasi yang cukup menyeluruh mulai dari memulai hingga fitur kompleks seperti pendengar. Juga, di situs web resmi JMeter, Anda dapat menemukan tautan ke beberapa sumber yang sangat kaya seperti tutorial video. Jika Anda kurang suka membaca dan lebih suka menonton, ini jelas merupakan nilai tambah bagi Anda.
Dokumentasi REST Assured, sebagai alat/pustaka itu sendiri, dapat ditemukan di dalam repositori Github. Ini memiliki daftar besar fitur yang tercantum dalam dokumentasi online dengan penjelasan yang sangat rinci tentang bagaimana mencapai sesuatu. Namun, seluruh dokumentasi adalah satu halaman web besar—bukan cara yang paling ramah pengguna untuk menjelajahi alat.
Pembuatan dan Pemeliharaan Tes REST Otomatis
Apache JMeter, sebagai aplikasi mandiri dengan antarmuka pengguna grafis (GUI), memungkinkan Anda membuat pengujian dari GUI. Ini bisa berguna terutama karena hierarki entitas yang diperkenalkan dari JMeter—semua yang Anda buat di dalam pengujian Anda akan ditampilkan dalam representasi seperti pohon di GUI JMeter.
Untuk membuat tes, seseorang tidak harus memiliki keterampilan pengkodean. Namun, GUI tidak membatasi kemungkinan apa pun terkait perencanaan pengujian. Jika Anda masih ingin menambahkan beberapa pemrograman/alur kustom, komponen BeanShell akan memungkinkan Anda melakukannya.
Saat Anda menyimpan proyek JMeter Anda, semua yang telah Anda buat akan disimpan ke satu file XML besar (dengan ekstensi .jmx
). Umumnya, bahkan untuk perubahan kecil di salah satu pengujian, Anda (kemungkinan besar) harus membuka kembali proyek di GUI untuk membuat perubahan.
Jika Anda perlu berkolaborasi dengan orang lain pada file proyek JMeter yang sama, file XML besar ini tidak akan mudah dipelihara menggunakan sistem manajemen kontrol sumber (SCM) mana pun (seperti Git, SVN, Perforce, dll).
REST Assured, di sisi lain, membutuhkan keterampilan pengkodean Java untuk membuat tes. Tidak ada GUI yang mudah digunakan untuk pembuatan tes. Namun, REST Assured memungkinkan Anda untuk menulis tes menggunakan bahasa Gherkin (sintaks Diberikan-Kapan-Lalu) jadi meskipun Anda memerlukan beberapa keterampilan pengkodean Java, tes cukup dapat dibaca manusia.
given(http://via.placeholder.com/2000x200?text=image+placeholder). config(RestAssured.config(http://via.placeholder.com/2000x200?text=image+placeholder).jsonConfig(jsonConfig(http://via.placeholder.com/2000x200?text=image+placeholder).numberReturnType(BIG_DECIMAL))). when(http://via.placeholder.com/2000x200?text=image+placeholder). get(“/price”). then(http://via.placeholder.com/2000x200?text=image+placeholder). body(“price”, is(new BigDecimal(12.12)));
Karena REST Assured adalah pustaka dan pengujian sebenarnya ditulis dalam Java, Anda dapat mengatur pengujian dalam file Java yang terpisah sehingga saat Anda perlu mengubah satu pengujian, Anda hanya perlu membuka satu file. Anda tidak memerlukan GUI, sehingga Anda dapat mengedit tes dengan mudah bahkan melalui terminal SSH. Kolaborasi dengan orang lain cukup sederhana karena mudah untuk memelihara file Java menggunakan SCM apa pun.
Jenis Tes REST
JMeter terkenal sebagai alat uji kinerja untuk menguji aplikasi dan layanan web. Di luar kotak, ia memiliki opsi pelaporan yang bagus dengan berbagai jenis bagan yang dapat Anda gunakan untuk menunjukkan metrik uji kinerja.
Di sisi lain, ini juga bukan skenario penggunaan utama untuk JMeter. Anda dapat membuat pengujian fungsional untuk REST API dengan JMeter, termasuk pernyataan respons.
Skenario penggunaan utama REST Assured adalah untuk pengujian fungsional layanan REST API. Itu bahkan dilengkapi dengan mekanisme penegasan responsnya sendiri (sintaks Gherkin). Karena REST Assured adalah pustaka Java, ia dapat dengan mudah diintegrasikan dengan pengujian unit.
Dalam hal pengujian kinerja, REST Assured tidak mendukung pengujian kinerja di luar kotak. Namun, jika Anda ingin menggunakannya untuk pengujian kinerja, Anda harus mengembangkan kerangka kerja kustom Anda sendiri untuk pengujian kinerja seputar REST Assured.

Eksekusi Tes
Tes JMeter dapat dipanggil dengan dua cara.
Dari antarmuka pengguna dengan mengklik tombol Jalankan:
Dari baris perintah:
jmeter -n -t your_script.jmx
Rekomendasi resmi dari JMeter adalah untuk tidak menjalankan tes kinerja menggunakan GUI, karena tes akan berjalan lebih lambat (dalam hal jumlah permintaan per detik) dibandingkan dengan menjalankannya dari baris perintah.
REST Assured, di sisi lain, memerlukan test runner terpisah, misalnya jUnit atau TestNG (atau cara lain untuk mengeksekusi kode Java).
Dari Eclipse menggunakan TestNG:
Dari baris perintah menggunakan, misalnya, alat pembuatan Semut:
ant run-tests
Jenis Laporan
Apache JMeter, karena tujuan utamanya, memiliki banyak jenis laporan yang dapat Anda buat dari hasil pengujian Anda. Karena Anda dapat menjalankan tes kinerja dari JMeter, metrik kinerja biasanya ditampilkan menggunakan bagan seperti ini:
Anda dapat mempelajari lebih lanjut tentang laporan JMeter dan jenis laporan yang dapat Anda buat dari sini.
REST Assured sendiri tidak membuat laporan apa pun, jadi terserah Anda dan kerangka pengujian yang Anda pilih. Namun, ketika terintegrasi dengan beberapa kerangka pengujian unit, Anda bisa mendapatkan laporan yang cukup berguna dalam format HTML, teks, atau XML.
Integrasi dengan Jenkins
Dalam hal integrasi berkelanjutan dari produk yang sedang diuji, sangat penting untuk mengintegrasikan kerangka kerja otomatisasi pengujian Anda dengan alat CI untuk menjalankan pengujian dan melaporkan hasil.
Tes otomatis JMeter dapat dengan mudah diintegrasikan dengan Jenkins menggunakan plugin Performance yang memungkinkan Anda mengatur tindakan Post-build dan mendapatkan halaman dasbor yang tampak bagus dari halaman pekerjaan Jenkins.
REST Assured juga dapat dengan mudah diintegrasikan dengan Jenkins karena Jenkins memiliki plugin untuk hampir semua kerangka pengujian; misalnya, plugin TestNG yang sekali lagi dapat membuat grafik tren yang solid untuk hasil pengujian.
Aktivitas Komunitas
Ini kategori yang tidak bisa diukur dengan mudah. Aktivitas komunitas tergantung pada sejumlah faktor seperti kematangan alat atau jumlah kontributor.
Apache JMeter memiliki komunitas yang lebih besar saat ini. Ini sebagian besar karena fakta bahwa JMeter muncul di pasar sejak lama dan dianggap sebagai standar industri dalam hal pengujian kinerja aplikasi dan layanan web. JMeter menerbitkan rilis resmi setiap 5-6 bulan. Repositori GitHub-nya sangat aktif, dengan komitmen baru setiap hari. JMeter menggunakan Bugzilla sebagai pelacak masalah dan memiliki daftar masalah terbuka yang sering diubah. Ada 23000+ hasil untuk JMeter dalam pencarian StackOverflow. Dari situs jejaring sosial tersebut, JMeter memiliki akun Twitter resmi. Di Facebook dan LinkedIn, tidak ada akun resmi untuk JMeter, tetapi ada beberapa grup, yang terbesar adalah grup Facebook ini dan grup LinkedIn ini.
REST Assured sedang menuju tahap utama dan telah menjadi pilihan pertama, sebuah rekomendasi dari berbagai sumber, dalam hal mengotomatisasi pengujian fungsional layanan REST API. REST Assured telah menerbitkan rilis resmi setiap 6 bulan sekali selama dua tahun terakhir. Repositori GitHub memiliki banyak kontributor dan sedikit kurang aktif daripada JMeter, tetapi juga sangat aktif. REST Assured melacak masalah di repositori GitHub, jadi semuanya ada di satu tempat. Di StackOverflow, ada 2000+ hasil pencarian untuk REST Assured, jadi kami dapat mengatakan itu jauh lebih rendah dibandingkan dengan hasil pencarian JMeter. Sedangkan untuk grup jejaring sosial, hanya grup LinkedIn yang ditemukan dengan jumlah anggota yang jauh lebih rendah dibandingkan dengan JMeter. Komunitas REST Assured mungkin tidak sebesar komunitas JMeter, tetapi sangat aktif.
Ringkasan
Baik JMeter dan REST Assured memiliki keunggulan satu sama lain. Tetapi berdasarkan proyek yang sedang Anda kerjakan, yang satu akan lebih cocok daripada yang lain untuk otomatisasi pengujian REST API Anda. Keduanya sangat kuat, memiliki opsi pengujian yang berguna, membanggakan kemampuan pelaporan yang bagus, dan dapat dengan mudah diintegrasikan dengan kerangka pengujian khusus.
Berikut adalah ringkasan dari semua kriteria perbandingan yang dieksplorasi dalam artikel ini untuk dua alat tes REST yang populer ini:
Apache JMeter | Yakinlah | |
---|---|---|
Membutuhkan keterampilan pengkodean | Tidak | Ya (Jawa) |
Dokumen lengkap | Ya | Ya |
Pengujian fungsional | Ya (tapi berlebihan) | Ya |
Pengujian kinerja | Ya | Tidak (di luar kotak) |
Cocok untuk SCM (Git, P4...) | Tidak | Ya |
Laporan pengujian | Ya | Tidak |
Integrasi dengan alat CI | Ya | Ya |
Integrasi dengan unit test | Tidak | Ya |
Uji paralelisasi | Ya | Ya |
Aktivitas komunitas | Ya | Ya |