Tutorial Performance Testing Menggunakan JMeter — Beginner
Sebelumnya, di artikel ini kita sudah membahas tentang apa itu performance testing, jenis-jenis, dan contoh kasus dari masing-masing jenis performance testing. Dalam menjalankan performance testing, banyak tools yang dapat digunakan, salah satunya adalah JMeter. JMeter merupakan salah satu performance testing tool yang sangat powerful, user friendly, dan bersifat open source. Selain itu, JMeter juga cukup mudah untuk di-install di beberapa sistem operasi. Di kesempatan kali ini, kita akan membahas cara penggunaan JMeter dalam melakukan pengujian performance dengan mengakses API themoviedb sebagai data test kita.
INSTALL JMETER
Hal pertama yang harus dilakukan adalah meng-install JMeter. Teman-teman bisa download aplikasi desktop Apache JMeter melalui link ini. Dalam menggunakan JMeter, dibutuhkan Java. Jalankan java--version
pada command shell untuk melihat apakah perangkat kita sudah memiliki Java. Apabila perangkat kita belum memiliki Java, install terlebih dulu melalui link berikut.
Setelah berhasil download, ekstrak folder JMeter lalu buka folder “bin” dan klik dua kali file jmeter.bat
. Bagi pengguna Linux, jalankan $JMETER_FOLDER/bin/jmeter
pada terminal. Akan muncul tampilan aplikasi JMeter seperti pada gambar berikut.
Membuat Test Plan
Setelah berhasil membuka JMeter, kita dapat membuat test plan yang berisi urutan komponen-komponen uji yang berfungsi sebagai penentu bagaimana sebuah server akan disimulasikan.
Di percobaan kita kali ini, ubah nama test plan menjadi “Contoh Test Plan 1” lalu save dengan menekan ctrl + s
.
Menambah Thread Group
Thread Group merupakan salah satu komponen uji yang ada pada test plan. Cara menambah thread group :
- Klik kanan pada nama Test Plan yang sudah kita simpan, “Contoh Test Plan 1”
- Arahkan mouse, pilih Add >
- Arahkan kembali mouse, pilih Threads (Users) >
- Pilih Thread Group
Di thread group terdapat beberapa properties yang dapat mempengaruhi skenario pengujian performance yang dijalankan;
Number of Threads (users) : jumlah user virtual yang akan disimulasikan.
Ramp-up period (seconds) : total durasi yang dibutuhkan seluruh skenario dijalankan dari awal sampai akhir.
Loop Count : jumlah percobaan pengujian yang dijalankan. Teman-teman juga bisa membuat pengujian yang loop-nya tak terhingga dengan meng-klik checkbox “Infinite”.
Jadi, apabila kita memasukkan number of threads = 10, ramp-up period = 10, dan loop count = 1, itu artinya ada 1 thread yang dijalankan setiap 1 detik. Apabila kita memasukkan ramp-up period = 100, itu artinya ada 1 thread yang dijalankan setiap 10 detik karena 100 ramp-up period/10 threads = 10. Saya beri contoh lagi, kalau ramp-up period = 200 dan threads = 10, artinya ada 1 thread yang dijalankan setiap 20 detik.
Catatan tambahan, kalau teman-teman ingin membuat skenario dimana di setiap thread ada delay, teman-teman bisa klik checkbox “Delay Thread creation until needed”. Misalnya saat ramp-up period = 5 dan threads = 10, itu artinya setiap 0.5 detik 1 thread dijalankan. Kalau teman-teman klik checkbox “Delay Thread creation until needed”, itu artinya JMeter akan memberikan sedikit delay sampai 1 thread selesai dijalankan, kemudian dilanjutkan dengan thread berikutnya. Pilihan ini akan berguna saat kita memiliki thread yang sangat banyak, dan tidak mengharuskan semua thread aktif secara bersamaan.
Untuk contoh yang akan kita jalankan, masukkan number of threads = 2, ramp-up period = 10, dan loop = 60.
Menambah HTTP Header Manager
Sesuai dengan namanya, header, sebelum dilakukan pengujian dibutuhkan informasi tambahan yang berfungsi sebagai pendukung proses pengujian. Informasi-informasi tambahan itu biasanya bersifat global, artinya dapat digunakan di semua request.
Cara menambahkan http header manager :
- Pada Thread Group, klik kanan
- Arahkan mouse pada “Add >”
- Arahkan mouse pada “Config Element >”
- Pilih “Http Header Manager”
Pada header manager, tambahkan informasi berupa Content-Type dan Authorization, dimana value dari Authorization-nya adalah Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJINTUwZGFjMjUwMjE4OTQyZjRmOTEzOTFiYjZkY2NjNSIsInN1YiI6IjYwYWY2MDAxYzVjMWVmMDA1OWU2MzVIYiIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uljoxfQ.wGzbkGdNmzm7cWjLfyNFVGdpLJKMelfCaoEbUuYs-CA
seperti pada gambar di atas.
Menambah HTTP Request Sampler
Setelah menambahkan header manager, kita dapat menambahkan http request sampler . Http request sampler ini merupakan tempat untuk menambahkan informasi berupa protocol, IP Address, port number, dan method serta path dari web server yang hendak kita uji.
Cara menambahkan http request sampler :
- Pada Thread Group, klik kanan
- Arahkan mouse pada “Add >”
- Arahkan mouse pada “Sampler >”
- Pilih “HTTP Request”
Saat tampilan HTTP Request terbuka, masukkan protokol web server yang kita gunakan (HTTP/HTTPS) kemudian masukkan IP Address atau server name lalu port number. Setelah itu pilih method yang ingin kita gunakan (GET, POST, etc.) dan tambahkan path dari API address yang menjadi tujuan kita.
Di contoh ini kita tambahkan protocol -> https, server name -> api.themoviedb.org
, port dikosongkan, http request -> GET, dan path -> /3/person/changes
Menambah HTTP Request Default (Optional)
Setelah tahu http request sampler, teman-teman juga harus tahu apa itu http request default. Http request default digunakan untuk mengatur alamat http request secara default. Sampler ini akan berguna saat teman-teman mau mengirimkan banyak request dengan method yang berbeda.
Cara menambahkan http request default :
- Pada Thread Group, klik kanan
- Arahkan mouse pada “Add >”
- Arahkan mouse pada “Config Element >”
- Pilih “Http Request Defaults”
Di tampilan http request default, teman-teman bisa menambahkan informasi berupa protocol, server name, port number, dan path. Jadi, kalau teman-teman sudah menggunakan http request default, pada halaman http request, teman-teman hanya perlu mengisi method dan path — nya saja (kalau path yang teman-teman jalankan lebih dari satu), karena JMeter akan otomatis menggunakan informasi yang teman-teman sudah tambahkan di http request default.
Menambah HTTP Cookie Manager (Optional)
Http Cookie Manager berguna untuk menangani web server yang menggunakan cookies. Untuk menambahkannya, dapat dilakukan dengan cara :
- Pada Thread Group, klik kanan
- Arahkan mouse pada “Add >”
- Arahkan mouse pada “Config Element >”
- Pilih “Http Cookie Manager”
Menambah Listener
Setelah menyusun kerangka mulai dari http header manager sampai ke http request, kita butuh listener. Listener adalah komponen pada JMeter yang menunjukkan hasil dari skenario yang kita susun. Listener memiliki banyak jenis, teman-teman bisa memilih dalam bentuk apa hasil pengujian itu disajikan. Bisa dalam bentuk tree, table, graph, atau dalam bentuk log.
Cara menambahkan listener :
- Pada Thread Group, klik kanan
- Arahkan mouse pada “Add >”
- Arahkan mouse pada “Listener >”
- Teman-teman bisa memilih jenis listener apa saja (disini saya menggunakan listener dalam bentuk tree)
Jadi, kerangka pengujian kita kali ini adalah seperti pada gambar berikut :
Setelah semua kerangka pengujian telah siap, klik tombol hijau untuk menjalankan skenario yang sudah kita susun.
Hasil dari pengujian yang kita lakukan akan tampil di listener “View Results Tree” seperti pada gambar berikut.
Kalau kita perhatikan, dari sampler result diberikan informasi berupa load time, latency, error count, response code, response message, dan sebagainya. Biasanya, melalui informasi-informasi ini, QA diharapkan mampu menarik kesimpulan terkait ketahanan sebuah web server saat diberikan tekanan yang bervariasi. Untuk melihat response body dari API yang kita hit dapat dilihat dari bagian “Response Data” seperti pada gambar berikut.
Bagaimana? Cukup mudah bukan? Sampai disini dulu artikel kali ini. Untuk menganalisis hasil dari performance testing, akan saya bahas di artikel berikutnya. Ciaooo!