Stress Test Aplikasi Dompet Digital
- June 30, 2022
- Posted by: Equine
- Category: Articles


Stress Test Aplikasi Dompet Digital
Uang elektronik memiliki fungsi yang sama dengan uang tunai sebagai alat pembayaran yang sah dan memiliki nilai setara dengan nilai uang tunai, yang ditransaksikan melalui platform aplikasi yang dimiliki oleh client kami.
Pada platform aplikasi ini, pengguna dapat melakukan registrasi, cek saldo, melakukan pembelian, serta melihat riwayat transaksi yang telah dilakukan. Aplikasi digunakan secara masif sehingga membutuhkan pengujian dengan volume transaksi yang besar. Kami berkesempatan membantu hal ini dengan melakukan Stress Test.
Aplikasi ini berbasis API yang dikembangkan menggunakan JSON (Javascript Object Notation) yang merupakan format pertukaran data ringan untuk koneksi Host ke Host. Aplikasi menggunakan parameter RequestAuth yang diterapkan di seluruh header proses API kecuali Login untuk menghitung hash yang bertujuan mencegah serangan man-in-the-middle. Dibutuhkan scripting dengan tingkat kesulitan yang tinggi untuk menyesuaikan dengan behavior aplikasi tersebut.
Dalam melakukan testing, tantangan utamanya adalah perlunya pemahaman alur data pada aplikasi untuk menentukan cara testing yang paling real, serta resource untuk melakukan pemantauan server selama pelaksanaan testing.
Terdapat 2 skenario yang dilakukan, yaitu:
- Skenario proses register dengan volume 3 (tiga) juta transaksi yang dilakukan oleh 60 (enam puluh) concurrent user untuk menguji aplikasi pada kondisi puncak, dimana target yang harus dicapai oleh aplikasi adalah average response time tidak melebihi 500ms. Kami menggunakan Apache Jmeter sebagai tools pengujian. Aktivitas ini dinamakan Stress Test.
- Skenario transaksi purchase selama 1 (satu) jam terus-menerus untuk menguji ketahanan sistem dan melihat berapa transaksi yang bisa diproses setiap detik (transaction per second). Aktivitas ini dinamakan Soak Test.
Menindaklanjuti hal tersebut, kami melakukan sosialisasi dan briefing kepada para pihak yang terlibat dalam aktivitas testing, terutama menyampaikan support yang kami perlukan selama pelaksanaan testing, seperti monitoring utilisasi CPU dan memory seluruh server terdampak, serta melakukan pengambilan fluktuasi data utilisasi.
Hasilnya, dari skenario pertama didapatkan average response time selama memproses 3 (tiga) juta transaksi dengan 60 (enam puluh) concurrent user adalah 366ms, dengan utilisasi CPU dan memory server tidak melewati threshold yang ditetapkan yaitu 80%. Dalam hal ini, performa aplikasi masih sesuai harapan, dimana targetnya adalah average response time tidak melebihi 500 ms.
Pada skenario yang kedua yaitu transaksi purchase selama 1 (satu) jam, hasil yang didapatkan adalah 297.945 transaksi (82 transaction per second), sehingga berdasarkan asumsi, dalam 1 (satu) hari (24 jam), aplikasi mampu memproses lebih dari 3 (tiga) juta transaksi, sesuai dengan target.
Berdasarkan hasil tersebut, testing dinyatakan PASS, tidak terdapat hal kritikal pada infrastruktur yang dapat mempengaruhi performa aplikasi. Aplikasi juga telah mampu memenuhi target performa yang diharapkan.
Dari pengujian ini, kita bisa mengambil beberapa lesson learn:
- Kunci dari Stress Test tidak terletak pada secanggih apa testing toolsnya, tetapi seberapa dekat skenario yang dilakukan apabila dibandingkan dengan kondisi real.
- Pengambilan kesimpulan dan analisa atas hasil testing diperlukan untuk mendapatkan gambaran performa dari sistem yang diuji.
- Konsistensi dalam melakukan monitoring selama pelaksanaan testing agar gejala-gejala penurunan performa dapat diidentifikasi segera.
Stress Test merupakan salah satu service andalan PT Equine Global. Konsultasi dapat dilakukan melalui contact@equine.co.id.