Load Testing: Uji Beban Toko Online dan Aplikasi Sebelum Promo Besar dan Musim Puncak
Isi artikel
- Ringkasan
- Mengapa sistem tumbang saat ramai
- Jenis uji yang perlu dikenal
- Menentukan target: berapa pengguna yang harus sanggup dilayani
- Merancang skenario yang realistis
- Apa yang diukur dan cara membacanya
- Lingkungan, alat, dan keamanan pengujian
- Perbaikan yang biasanya paling berdampak
- Rencana hari puncak
- Kesalahan yang sering terjadi
- Langkah memulai
- Pertanyaan yang sering diajukan
- Kesimpulan
Tanggal kembar, promo gajian, atau siaran langsung dengan influencer besar: momen-momen yang paling diharapkan toko online adalah juga momen yang paling sering membuat sistemnya tumbang. Pengunjung membludak, halaman checkout berputar tanpa henti, pembayaran gagal, dan dalam beberapa menit pelanggan pindah ke pesaing. Biaya iklan sudah dikeluarkan, stok sudah disiapkan, tim sudah lembur, tetapi penjualan tertahan oleh sistem yang tidak sanggup melayani.
Kegagalan seperti ini hampir selalu bisa diprediksi sebelum terjadi. Uji beban, atau load testing, adalah latihan terkontrol yang mensimulasikan banyak pengguna sekaligus pada sistem Anda, sehingga titik lemahnya ketahuan pada hari uji dan bukan pada hari promo. Banyak bisnis menganggap pengujian ini hanya urusan perusahaan besar. Kenyataannya, justru bisnis menengah yang bergantung pada beberapa hari penjualan puncak paling diuntungkan.
Artikel ini menjelaskan apa itu uji beban, jenis-jenisnya, apa yang diukur, cara merancang skenario yang realistis, bagaimana membaca hasilnya, serta hal-hal praktis seperti biaya, keamanan, dan perbaikan yang biasanya paling berdampak. Tidak perlu menjadi insinyur untuk memahami logikanya, dan Anda sebagai pemilik bisnis bisa menuntut hasil yang jelas dari tim teknis atau vendor.
Ringkasan
- Uji beban mensimulasikan pengguna dalam jumlah besar untuk menemukan batas kapasitas dan titik gagal sebelum pengguna sungguhan menemukannya
- Ukur waktu respons pada persentil tinggi, tingkat galat, dan penggunaan sumber daya, bukan hanya rata-rata
- Rancang skenario dari perilaku nyata: penelusuran produk, pencarian, keranjang, checkout, dan pembayaran, dengan perkiraan jumlah pengguna dari data historis dan rencana kampanye
- Hambatan yang paling umum ada pada database, pihak ketiga seperti payment gateway, dan komponen yang tidak bisa diskalakan
- Lakukan uji di lingkungan yang menyerupai produksi, jauh sebelum puncak, dan sisakan waktu untuk memperbaiki serta mengulang

Mengapa sistem tumbang saat ramai
Sebuah sistem yang berjalan lancar dengan seratus pengguna belum tentu lancar dengan lima ribu pengguna. Hubungan antara beban dan kinerja tidak linear. Pada beban rendah, penambahan pengguna hanya menambah waktu respons sedikit. Setelah melewati ambang tertentu, antrean menumpuk, waktu respons melonjak tajam, dan galat bermunculan. Ambang itu ditentukan oleh komponen yang paling lemah, bukan rata-rata seluruh sistem.
Beberapa penyebab klasik: kueri database yang terasa cepat dengan data sedikit tetapi lambat saat banyak yang mengakses bersamaan; sesi atau koneksi yang habis; proses yang saling mengunci; layanan pihak ketiga yang membatasi jumlah permintaan; gambar dan skrip yang berat sehingga bandwidth terkuras; serta konfigurasi server yang tidak pernah disesuaikan dengan beban nyata. Gejala-gejala ini berkaitan dengan yang dibahas di performa database dan aplikasi bisnis yang melambat.
Selain itu, lonjakan lalu lintas saat promo berbeda dari pertumbuhan bertahap. Lalu lintas melonjak dalam hitungan menit, perilaku pengguna seragam (semua menuju produk promo yang sama), dan setiap pengguna melakukan tindakan berat seperti menambah ke keranjang dan membayar. Kombinasi inilah yang menguji sistem sampai batasnya.
Jenis uji yang perlu dikenal
Istilah uji beban sering dipakai untuk beberapa jenis pengujian dengan tujuan berbeda.
Uji beban
Mensimulasikan jumlah pengguna yang diharapkan pada hari puncak untuk memastikan sistem tetap memenuhi target kinerja. Pertanyaannya: apakah sistem sanggup menangani beban yang kami perkirakan?
Uji tekanan
Menaikkan beban jauh melampaui perkiraan sampai sistem gagal, untuk mengetahui batas dan cara kegagalannya. Pertanyaannya: pada angka berapa sistem rusak, dan bagaimana ia rusak, apakah berhenti dengan rapi atau menyebarkan kerusakan?
Uji lonjakan
Menaikkan beban secara tiba-tiba, seperti saat tautan promo disebarkan, lalu menurunkannya. Pertanyaannya: apakah sistem merespons cepat terhadap lonjakan dan pulih setelahnya?
Uji ketahanan
Mempertahankan beban sedang selama berjam-jam untuk menemukan kebocoran memori, koneksi yang tidak dilepas, atau penumpukan data yang membuat sistem melambat perlahan.
Bagi kebanyakan bisnis, kombinasi uji beban pada perkiraan puncak dan uji tekanan untuk mengetahui margin keamanan sudah sangat berharga. Tambahkan uji lonjakan bila Anda menjalankan kampanye dengan pemicu mendadak, seperti yang dibahas di penjualan lewat media sosial dan live commerce.
Menentukan target: berapa pengguna yang harus sanggup dilayani
Uji tanpa target tidak berarti. Mulailah dari data, bukan dugaan.
- Data historis: jumlah pengunjung, sesi bersamaan, dan pesanan per menit pada puncak sebelumnya, dari alat analitik dan log server
- Rencana kampanye: perkiraan anggaran iklan, ukuran daftar email, dan jangkauan influencer, dikonversi menjadi perkiraan kunjungan per jam
- Faktor pengaman: gandakan atau lipat tigakan perkiraan agar ada ruang bila kampanye lebih berhasil dari rencana
- Bentuk lonjakan: berapa lama puncak berlangsung, apakah tiba-tiba atau bertahap
Terjemahkan target menjadi angka yang bisa diuji, misalnya: sistem harus melayani lima ratus pengguna bersamaan dengan waktu respons halaman produk di bawah dua detik, dan seratus pesanan per menit dengan tingkat galat di bawah satu persen. Data analitik yang rapi, seperti yang dibahas di analitik website dan aplikasi mobile untuk keputusan, mempermudah penyusunan angka ini.
Merancang skenario yang realistis
Hasil uji hanya bermakna bila skenarionya menyerupai perilaku nyata. Menembak satu halaman beranda dengan seribu permintaan tidak mewakili apa pun.
- Susun alur pengguna: masuk dari beranda atau iklan, melihat daftar produk, memakai pencarian dan filter, membuka detail produk, menambah ke keranjang, checkout, dan membayar
- Tentukan proporsi: tidak semua pengunjung sampai membayar. Misalnya sembilan puluh persen hanya melihat-lihat, delapan persen mengisi keranjang, dan dua persen menyelesaikan pembelian. Sesuaikan dengan data konversi Anda
- Sertakan variasi data: produk berbeda, akun berbeda, kata pencarian berbeda, agar hasil tidak terbantu cache secara tidak realistis
- Masukkan juga proses di belakang layar yang berjalan bersamaan, seperti sinkronisasi stok, pengiriman email, dan pembaruan ke ERP, karena mereka berebut sumber daya yang sama
- Libatkan pihak ketiga dengan hati-hati: payment gateway dan layanan pengiriman umumnya menyediakan lingkungan uji atau melarang pengujian beban pada sistem produksi mereka. Gunakan lingkungan sandbox atau tiruan layanan
Perhatikan titik yang paling kritis bagi pendapatan: pencarian, keranjang, dan checkout, seperti yang dibahas di checkout toko online: mengurangi keranjang terbengkalai dan pencarian dan filter produk toko online. Untuk promosi, aturan diskon yang kompleks juga membebani sistem; lihat mengelola promo dan diskon.

Apa yang diukur dan cara membacanya
Rata-rata waktu respons bisa menyesatkan, karena menyembunyikan pengalaman pengguna yang paling lambat. Fokus pada angka-angka berikut.
- Persentil waktu respons: median menunjukkan pengalaman umum, sedangkan persentil sembilan puluh lima dan sembilan puluh sembilan menunjukkan pengalaman pengguna yang apes. Pada puncak penjualan, satu dari dua puluh pengguna yang menunggu sepuluh detik tetap berarti ratusan pelanggan hilang
- Tingkat galat: persentase permintaan yang gagal. Tetapkan ambang yang bisa diterima, misalnya di bawah satu persen
- Throughput: jumlah permintaan atau pesanan yang berhasil diproses per detik atau menit
- Penggunaan sumber daya: CPU, memori, koneksi database, I/O disk, dan jaringan pada setiap komponen, untuk melihat siapa yang menjadi leher botol
- Perilaku saat pulih: seberapa cepat sistem kembali normal setelah beban turun
Cari titik tekuk, yaitu beban di mana kurva waktu respons mulai naik tajam. Itulah kapasitas efektif sistem Anda, bukan angka maksimum sebelum server mati. Bandingkan dengan target, dan catat komponen yang pertama jenuh. Pemantauan yang baik di produksi, seperti dibahas di observabilitas, log, dan penanganan error dan monitoring dan uptime website dan aplikasi bisnis, memberi data pembanding antara hasil uji dan kenyataan.
Lingkungan, alat, dan keamanan pengujian
Uji sebaiknya berjalan di lingkungan yang menyerupai produksi dari sisi spesifikasi server, ukuran database, konfigurasi, dan jaringan. Menguji di laptop pengembang atau database kecil menghasilkan angka yang tidak berlaku. Isi database uji dengan volume data yang mendekati produksi, namun gunakan data fiktif atau yang sudah dianonimkan untuk menjaga kerahasiaan, sejalan dengan pelindungan data pribadi.
Ada banyak alat uji beban, baik gratis maupun berbayar, dengan skrip yang mendefinisikan alur pengguna. Pilih yang tim Anda bisa pakai dan integrasikan dengan jalur rilis, sehingga uji beban ringan dapat berjalan rutin, seperti dalam pengujian otomatis dan CI/CD. Untuk beban sangat besar, generator beban perlu terdistribusi agar tidak menjadi leher botol itu sendiri.
Ada beberapa hal yang harus diperhatikan agar pengujian tidak menimbulkan masalah baru. Beri tahu penyedia hosting dan pihak ketiga bila pengujian berskala besar. Jangan mengarahkan uji beban ke sistem produksi tanpa koordinasi, karena dapat mengganggu pelanggan nyata dan memicu pemblokiran. Jangan menguji layanan pihak ketiga tanpa izin mereka. Dan hati-hati dengan efek samping: uji tidak boleh mengirim email sungguhan kepada pelanggan, membuat transaksi pembayaran nyata, atau mengubah stok produksi.
Perbaikan yang biasanya paling berdampak
Setelah menemukan leher botol, perbaikan umumnya jatuh pada beberapa kategori.
Database
Tambahkan indeks yang tepat, perbaiki kueri yang lambat, kurangi kueri berulang, dan pisahkan beban baca dari tulis dengan replika bila perlu. Banyak kasus tumbang saat puncak ternyata berasal dari satu kueri yang tidak memiliki indeks.
Cache
Simpan hasil yang sering diminta dan jarang berubah, seperti halaman produk, kategori, dan konfigurasi. Cache di lapisan jaringan penyaluran konten dan di aplikasi mengurangi beban pada server dan database secara drastis. Isu serupa dibahas di kecepatan website dan dampaknya dan Core Web Vitals.
Pekerjaan di belakang layar
Pindahkan pekerjaan berat yang tidak perlu menunggu, seperti mengirim email, memperbarui ERP, dan membuat faktur, ke antrean agar tidak memperlambat halaman checkout. Ini sejalan dengan pola di webhook dan integrasi real-time untuk bisnis.
Penskalaan dan kapasitas
Tambah kapasitas server secara horizontal atau gunakan penskalaan otomatis, tetapi pastikan komponen aplikasi memang bisa berjalan berdampingan. Perhatikan biaya, karena kapasitas berlebih sepanjang tahun untuk satu hari puncak adalah pemborosan. Pendekatan yang lebih hemat dibahas di mengendalikan biaya cloud untuk bisnis, dan pilihan infrastruktur di cloud atau on-premise.
Ketahanan terhadap kegagalan sebagian
Rancang agar kegagalan satu komponen tidak menjatuhkan semuanya: batas waktu pada pemanggilan pihak ketiga, pemutus sirkuit, dan halaman yang tetap bisa dilihat meski fitur tertentu mati. Bila ada antrean masuk atau ruang tunggu virtual, pengguna yang melebihi kapasitas diatur dengan rapi daripada ditolak dengan galat. Untuk rilis fitur baru menjelang puncak, feature flag dan rilis bertahap memungkinkan Anda mematikan fitur bermasalah dengan cepat.
Rencana hari puncak
Uji beban hanyalah separuh persiapan. Siapkan juga rencana operasional untuk hari puncak.
- Bekukan perubahan kode beberapa hari sebelum puncak, kecuali perbaikan darurat
- Tetapkan pemantauan langsung dengan ambang peringatan dan siapa yang dihubungi
- Siapkan tim siaga dengan peran jelas: yang memantau, yang memperbaiki, yang berkomunikasi dengan pelanggan
- Siapkan tindakan darurat yang sudah diuji, seperti menonaktifkan fitur berat, mengaktifkan halaman antrean, atau menaikkan kapasitas
- Siapkan komunikasi ke pelanggan bila terjadi gangguan, dan rencana pemulihan sesuai [rencana pemulihan bencana dan kesinambungan bisnis](/blog/rencana-pemulihan-bencana-dan-kesinambungan-bisnis)
- Evaluasi sesudahnya: bandingkan beban nyata dengan perkiraan, catat yang terjadi, dan perbarui target untuk puncak berikutnya
Kesalahan yang sering terjadi
- Menguji terlalu dekat dengan hari promo sehingga tidak ada waktu memperbaiki
- Menguji hanya beranda, bukan alur yang menghasilkan pendapatan
- Memakai lingkungan uji yang jauh lebih kecil dari produksi lalu menyimpulkan kapasitas dari sana
- Hanya melihat rata-rata waktu respons
- Melupakan layanan pihak ketiga yang punya batas laju sendiri
- Memperbaiki satu leher botol dan tidak mengulang uji untuk menemukan leher botol berikutnya
- Tidak menguji ulang setelah perubahan besar pada kode atau infrastruktur
Langkah memulai
Mulailah kecil. Pilih satu alur paling penting, biasanya dari produk ke checkout. Tentukan target realistis dari data puncak sebelumnya, jalankan uji pertama pada lingkungan uji, dan catat hasilnya sebagai garis dasar. Perbaiki leher botol terbesar, ulangi, dan perbesar cakupan bertahap. Jadwalkan uji sekitar empat sampai enam minggu sebelum kampanye besar agar waktu perbaikan cukup. Setelah itu jadikan uji beban ringan bagian dari rilis rutin. Pengujian ini melengkapi UAT, pengujian sebelum aplikasi diluncurkan yang memastikan fungsi benar, sedangkan uji beban memastikan fungsi itu bertahan saat ramai. Untuk arsitektur yang menopang skala, lihat juga monolit atau microservices.
Pertanyaan yang sering diajukan
Seberapa sering uji beban perlu dilakukan?
Minimal sebelum setiap kampanye besar dan setelah perubahan signifikan pada kode, database, atau infrastruktur. Untuk sistem kritis, uji ringan otomatis pada setiap rilis membantu mendeteksi penurunan kinerja sedini mungkin.
Apakah uji beban mahal?
Alat dan lingkungan uji bisa dimulai dari biaya sangat rendah, terutama dengan alat sumber terbuka dan infrastruktur yang disewa per jam. Biaya utama adalah waktu tim untuk merancang skenario dan memperbaiki temuan. Bandingkan dengan potensi penjualan yang hilang selama satu jam gangguan di hari puncak.
Bisakah saya menguji langsung di produksi?
Bisa pada kondisi tertentu, misalnya beban kecil di luar jam sibuk dengan data uji yang terisolasi, tetapi risikonya lebih tinggi. Untuk beban besar, gunakan lingkungan yang menyerupai produksi dan koordinasikan dengan penyedia hosting serta pihak ketiga.
Apakah memakai layanan cloud berarti saya tidak perlu uji beban?
Tidak. Penskalaan otomatis membantu, tetapi tidak menyelesaikan kueri lambat, batas koneksi database, batas laju pihak ketiga, atau kode yang tidak dapat berjalan paralel. Uji beban justru menunjukkan apakah penskalaan benar-benar bekerja.
Kesimpulan
Uji beban mengubah ketidakpastian menjadi angka: berapa pengguna yang sanggup dilayani, di mana sistem pertama kali menyerah, dan apa yang perlu diperbaiki. Dengan target dari data nyata, skenario yang menyerupai perilaku pelanggan, pengukuran pada persentil tinggi, serta waktu cukup untuk memperbaiki dan mengulang, hari puncak berubah dari pertaruhan menjadi peristiwa yang sudah dilatih. Investasinya kecil dibandingkan penjualan yang terselamatkan.
Ingin memastikan toko online dan aplikasi Anda siap menghadapi lonjakan trafik saat promo besar?
Tim AG·SORA membantu menguji kapasitas, mengoptimalkan performa, dan menyiapkan arsitektur yang tahan beban. Konsultasi awal gratis dan tanpa kewajiban.
Konsultasi GratisRekomendasi untuk Anda
Bacaan yang berkaitan dengan topik ini
Feature Flag dan Rilis Bertahap: Cara Merilis Fitur Baru Aplikasi Bisnis dengan Risiko Lebih Rendah
Konsep feature flag, empat jenisnya, pola rilis bertahap, indikator pemantauan, hubungan dengan pengujian dan aplikasi mobile, risiko, serta langkah memulai.
Desain API untuk Bisnis: Konsistensi, Versioning, Dokumentasi, dan Pembatasan Laju agar Integrasi Tahan Lama
API sebagai produk: prinsip desain yang konsisten, versioning dan kebijakan deprecation, dokumentasi yang hidup, pembatasan laju, keamanan, dan pemantauan.
SPF, DKIM, dan DMARC: Menjaga Email Bisnis Tetap Sampai ke Pelanggan dan Aman dari Pemalsuan Domain
Cara kerja SPF, DKIM, dan DMARC, inventaris sumber email, langkah penerapan bertahap, pemisahan email transaksional dan pemasaran, serta indikator deliverability yang dipantau.
Checklist gratis: memilih software house
24 poin untuk menilai calon vendor sebelum menandatangani kontrak. Bisa disimpan sebagai PDF.
Siap membangun sistem yang tumbuh bersama bisnis Anda?
Diskusikan kebutuhan Anda dengan tim AG·SORA, tanpa biaya, tanpa komitmen.