REST Assured vs. JMeter: Perbandingan Alat Uji REST

Diterbitkan: 2022-03-11

Pengujian 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

Alat untuk tes REST

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.

Tangkapan Layar GUI JMeter

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.

Tangkapan Layar Waktu Respons JMeter

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:

Tangkapan Layar Tombol JMeter Run

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:

Tangkapan Layar Eclipse Terjamin REST

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:

Laporan Kinerja JMeter

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.

REST Terjamin Laporan HTML

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.

Tangkapan Layar JMeter 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.

Tangkapan Layar Jenkins Terjamin REST

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