Stress Test menggunakan Python dan Locust

Stress Test Menggunakan Python dan Locust

Kalau kita bicara tentang performa aplikasi, salah satu hal penting yang wajib diperhatikan adalah seberapa kuat server kita menangani banyak request dalam waktu bersamaan. Nah, di sinilah stress test punya peran penting—semacam uji ketahanan buat server kita.

Apa Itu Stress Test?

Stress test adalah metode untuk menguji sistem dengan memberi beban tinggi, jauh lebih besar dari kondisi normal, untuk melihat:

  • Sampai di titik mana sistem kita masih bisa bertahan. Biar tahu, server ini pejuang atau cuma modal janji manis #eh.
  • Bagaimana sistem merespons saat dia “dipaksa kerja rodi”. Apakah dia memilih diam, lemot, atau langsung nyerah ga mau perjuangin #eh.
  • Bagaimana respon sistem saat recovery dari kondisi overload. Bisa comeback atau malah give up?

Tujuannya? Supaya kita tahu kapasitas server, menemukan bottleneck tersembunyi, dan memperbaiki potensi masalah sebelum masalah itu muncul di jam sibuk.

Kenapa Perlu Stress Test?

Simple aja:

  • Biar nggak panik pas traffic mendadak naik. Daripada tiba-tiba dashboard merah semua load/request tinggi, mending simulasi dulu kayak gladi resik.
  • Biar tahu kapan harus scale up atau optimasi sistem. Daripada server digeber terus kayak Supra bapak yang udah dimodif tapi mesinnya masih standar.
  • Biar user tetap happy karena server tetap responsif. Karena satu detik delay bisa bikin orang pindah ke aplikasi milik kompetitor.
  • Biar bisa cerita di warung kopi, “Wah kemarin server diserbu 10 ribu user serentak, tapi masih ngacir!”
  • Dan tentunya, biar kita kelihatan pinter waktu presentasi ke manajemen. 😎

Kalau server kita belum pernah di-stress test, itu ibarat punya mobil balap tapi belum pernah dites ngebut di sirkuit—nggak tahu bakal oleng atau nggak. Jangan-jangan pas digas dikit aja udah minta tolong.


Tools yang Kita Pakai: Locust

Untuk keperluan stress test ini, kita akan pakai Locust, sebuah tool testing berbasis Python yang simpel tapi galak. Ringan, fleksibel, dan bisa disesuaikan dengan kebutuhan testing kita.

Install Locust dulu kalau belum:

pip install locust

Contoh Stress Test untuk Beberapa Endpoint

Sekarang kita bikin contoh testing. Misalnya kita punya dua endpoint:

  • GET /api/products
  • POST /api/order (pakai data JSON)

Kita buat file Python, misalnya locustfile.py:

from locust import HttpUser, task, between

class MyUser(HttpUser):
    wait_time = between(1, 5)

    @task
    def get_products(self):
        self.client.get("/api/products")

    @task
    def create_order(self):
        self.client.post("/api/order", json={
            "product_id": 123,
            "quantity": 2
        })

Penjelasan singkat:

  • @task menandai fungsi mana yang akan dijalankan Locust.
  • self.client.get untuk request GET biasa.
  • self.client.post untuk POST dengan payload JSON.

Menjalankan Locust (Single Process)

Untuk menjalankan Locust di mode default (single process):

locust -f locustfile.py --host http://domainkamu.com

Lalu buka browser ke http://localhost:8089, isi jumlah user yang mau disimulasikan dan spawn rate-nya. Mudah banget—kayak daftar seminar online.


Menjalankan Locust dengan 4 Processes

Kalau kita punya mesin dengan beberapa core CPU dan ingin memaksimalkannya, kita bisa jalankan Locust dengan 4 worker process seperti ini:

locust -f locustfile.py --host http://domainkamu.com --processes 4

Ini artinya Locust akan jalan dengan 1 master dan 4 worker process. Cocok buat simulasi beban yang lebih serius, biar server nggak cuma kaget, tapi juga mulai ngos-ngosan.


Menjalankan Locust dengan Auto-Detect Logic Core

Kalau ingin Locust otomatis pakai semua core yang tersedia di mesin (biar maksimal), cukup jalankan:

locust -f locustfile.py --host http://domainkamu.com --processes -1

Locust akan auto-detect jumlah core CPU, lalu menjalankan proses sebanyak itu. Praktis banget, cocok kalau kita sedang males ngitung jumlah core manual.


Stress test itu penting untuk menjaga performa aplikasi tetap stabil di kondisi ekstrim. Dengan Locust, kita bisa mulai dari tes sederhana sampai simulasi skala besar, hanya dengan script Python yang pendek dan mudah dibaca.

Selamat ngoprek, semoga servermu kuat kayak Hulk! 💪

Atau kamu bisa baca beberapa tutorial yang pernah saya tulis di sini..

Leave a Reply