Showing posts with label jmeter. Show all posts
Showing posts with label jmeter. Show all posts

Sunday, September 17, 2017

Concurrent Test menggunakan JMeter

Pada kali ini kita akan membahas cara menggunakan JMeter untuk melakukan simulasi concurrent user mengakses sebuah REST API. Pengenalan JMeter sudah di bahas pada postingan berikut: Menggunakan JMeter untuk test service REST.

Thread Group

Pertama kita tambahkan Thread Group terlebih dahulu. Thread Group ini yang nanti bisa kita setting untuk keperluan concurrent test. Apabila sudah di tambahkan ke dalam Test Plan kita bisa melihat terdapat Thread Properties yang berisi Number of Thread (User) dan Ramp-Up Period (in seconds).


Number of Thread (User) merupakan jumlah user yang akan kita simulasikan. Jadi jika kita mau mensimulasikan 100 user maka field ini di isi 100. Pada skenario kali ini akan kita simulasikan 5 user concurrent.

Ramp-Up Period (in seconds) merupakan scope atau range waktu untuk concurent user memulai eksekusi thread group. Jadi misal kita memiliki 5 concurent user dan mengisi Ramp-up dengan 1, maka artinya adalah waktu 1 second akan di bagi 5, jadi setiap concurrent user akan memiliki jeda 0.2 second.
user 1 start pada detik 0
user 2 start pada detik 0.2
user 3 start pada detik 0.4
dan seterusnya...


Bila menginginkan simulasi concurrent user berjalan secara serentak pada detik 0, maka tinggal isi bagian Ramp-Up dengan 0. Ramp-Up 0 second ini akan berefek menambah beban pada PC/Laptop yang merunning JMeter karena akan menggenerate banyak HTTP Request pada waktu yg sama.

Sampler HTTP Request

Selanjutnya kita masukan sebuah Sampler HTTP Request pada Thread Group yg ada.


Pada Sampler HTTP Request ada beberapa yang perlu dilengkapi isinya, diantaranya adalah Server Name or IP, Port Number, Implementation, Protocol, Method, Path, dan Body Data. Request Body untuk API Login kali ini adalah username dan password seperti berikut:


HTTP Header Manager

Jangan lupa tambahkan HTTP Header Manager pada Sampler HTTP Request agar kita bisa menambahkan properties pada header HTTP request. 


Pada skenario kali ini yang di perlukan hanya Content-Type application/json saja.


Listener

Bagian akhir adalah menambahkan Listener View Result pada Thread Group agar kita bisa melihat hasil proses. Listener yang paling biasanya dipakai adalah View Result Tree.


Kita bisa menjalankan concurrent test dengan klik button Start pada bagian toolbar. Hasil nya bisa dilihat pada View Result Tree.


Terdapat 5 buah HTTP Request, kita bisa melihat detail Request dan Response dari masing-masing HTTP Response. Simbol pada HTTP Request berwarna hijau merupakan tanda jika respon yang di dapat adalah bukan HTTP Response error. Apabila response yang di terima adalah 401, 503, dll maka simbol pada HTTP Request akan berwarna merah.

Dengan di lakukan nya Concurrent Test ini kita bisa mengetahui apakah sistem/aplikasi yang kita develop bisa menghandle jumlah concurrent user seberapa banyak dalam satu detik.

Thursday, July 31, 2014

Menggunakan JMeter untuk test service REST

Ada banyak tools untuk melakukan test service REST misalnya Poster plugin, Postman plugin atau bisa juga menggunakan curl dari linux terminal.

Pada kesempatan ini saya ingin membagikan pengalaman menggunakan JMeter untuk test service REST, untuk dapat menggunakan JMeter sebaiknya download dulu di-sini. Bila sudah jalankan JMeter.

Selanjutnya save test plan terlebih dahulu

Isi nama file test plan, misalnya Rest Test Plan.jmx

Kemudian tambahkan elemen Thread Group pada elemen Test Plan, elemen Thread Group berguna untuk men-simulasi-kan jumlah user yang akan melakukan test.

Selanjutnya tambahkan elemen HTTP Request Defaults pada elemen Thread Group yang tadi kita buat, elemen HTTP Request Defaults berguna untuk meng-konfigurasi nilai default untuk setiap pemanggilan HTTP, kenapa pemanggilan HTTP ? karena service REST bekerja menggunakan protokol HTTP.

Isi nilai-nilai default yang mungkin pada elemen HTTP Request Defaults, seperti Server Name or IP dan Port Number

Kemudian tambahkan elemen HTTP Header Manager pada elemen Thread Group yang tadi kita buat, elemen HTTP Header Manager berguna untuk menambahkan header HTTP pada setiap request HTTP seperti Content-Type=application/xml jika data yang dikirim melalui body HTTP berupa dokumen XML.

Karena data yang dikirim melalui body HTTP menggunakan format JSON, maka tambahkan header HTTP yang baru dengan Name = Content-Type, dan Value = application/json

Kemudian tambahkan elemen HTTP Request pada elemen Thread Group yang tadi kita buat, elemen HTTP Request merupakan representasi dari pemanggilan service REST.

Misalkan ingin melakukan pemanggilan service REST pada endpoint URI http://localhost:8089/service/customer/list dengan method HTTP GET, maka konfigurasi pada elemen HTTP Request cukup dengan mengisi Path = service/customer/list dan Method = GET. Sedangkan untuk Server Name or IP dan Port Number sudah dikonfigurasi pada elemen HTTP Request Defaults.

Dan untuk melihat data request dan response dari setiap pemanggilan service REST maka perlu ditambahkan elemen View Result Tree pada elemen Thread Group yang tadi kita buat.

Untuk menambahkan pemanggilan service REST ke endpoint URI yang lain dapat dengan menambahkan elemen HTTP Request lagi pada elemen Thread Group yang sama.

Untuk mulai melakukan test lakukan dengan menekan tombol

Untuk menghapus hasil test pada elemen View Result Tree lakukan dengan menekan tombol

Berikut contoh hasil pemanggilan yang dapat kita lihat pada View Result Tree

Berikut contoh request HTTP yang dikirim ke endpoint URI http://localhost:8089/service/customer/list dengan method HTTP GET

Berikut contoh response HTTP yang didapat dari request HTTP ke endpoint URI http://localhost:8089/service/customer/list dengan method HTTP GET

Sekian blog sederhana penggunaan JMeter untuk test service REST. Semoga bermanfaat.

Selamat Lebaran, mohon maaf lahir batin. :)