Apa itu Pengujian Beban? (Contoh)
⚡ Ringkasan Cerdas
Pengujian beban mengukur bagaimana kinerja aplikasi perangkat lunak ketika banyak pengguna mengaksesnya secara bersamaan, hingga mencapai beban puncak yang diharapkan. Pengujian ini mengidentifikasi kapasitas operasional maksimum, hambatan yang membatasinya, dan apakah infrastruktur yang ada sudah memadai.

Apa itu Pengujian Beban?
Pengujian beban adalah proses pengujian perangkat lunak non-fungsional di mana kinerja aplikasi perangkat lunak diuji di bawah beban tertentu yang diharapkan. Proses ini menentukan bagaimana aplikasi perangkat lunak berperilaku saat diakses oleh banyak pengguna secara bersamaan. Tujuan Pengujian Beban adalah untuk memperbaiki hambatan kinerja dan memastikan stabilitas dan kelancaran fungsi aplikasi perangkat lunak sebelum penerapan.
Pengujian ini biasanya mengidentifikasi –
- Kapasitas operasi maksimum suatu aplikasi
- Tentukan apakah infrastruktur saat ini memadai untuk menjalankan aplikasi
- Keberlanjutan aplikasi sehubungan dengan beban puncak pengguna
- Jumlah pengguna secara bersamaan yang dapat didukung oleh suatu aplikasi, dan skalabilitas untuk memungkinkan lebih banyak pengguna mengaksesnya.
Ini adalah jenis pengujian non-fungsional. Dalam Rekayasa Perangkat Lunak, Pengujian beban biasanya digunakan untuk Klien/Server, aplikasi berbasis Web – baik Intranet maupun Internet.
Mengapa Pengujian Beban Diperlukan?
Beberapa situs yang sangat populer mengalami downtime yang serius ketika mereka mendapatkan volume lalu lintas yang sangat besar. Situs web e-niaga banyak berinvestasi dalam kampanye periklanan, namun tidak pada Pengujian Beban untuk memastikan kinerja sistem yang optimal, ketika pemasaran tersebut mendatangkan lalu lintas.
Contoh pengujian beban
- Toysrus.com tidak mampu menangani lalu lintas yang dihasilkan oleh kampanye iklannya sendiri, sehingga kehilangan anggaran pemasaran dan penjualan yang seharusnya dihasilkan.
- Situs web Maskapai Penerbangan tidak mampu menangani 10000+ pengguna selama penawaran festival.
- Encyclopedia Britannica menyatakan akses gratis ke basis data daring mereka sebagai tawaran promosi. Mereka tidak mampu mengimbangi serbuan lalu lintas selama berminggu-minggu.
Banyak situs mengalami waktu muat yang tertunda ketika mengalami lalu lintas yang padat. Beberapa Fakta –
- Tingkat pengabaian meningkat tajam setelah sekitar 3 detik waktu pemuatan halaman, dan efeknya semakin parah pada koneksi seluler.
- Halaman yang lambat menyebabkan situs e-commerce kehilangan pendapatan yang signifikan setiap kali dikunjungi, itulah sebabnya kinerja diperlakukan sebagai metrik bisnis, bukan hanya metrik teknis.
Mengapa Pengujian Beban?
- Pengujian beban memberikan keyakinan pada sistem & keandalan serta kinerjanya.
- Pengujian Beban membantu mengidentifikasi kemacetan dalam sistem dalam skenario tekanan berat pada pengguna sebelum terjadi di lingkungan produksi.
- Pengujian beban memberikan perlindungan yang sangat baik terhadap kinerja buruk dan mengakomodasi strategi pelengkap untuk manajemen kinerja dan pemantauan lingkungan produksi.
Tujuan Pengujian Beban
Pengujian pemuatan mengidentifikasi masalah berikut sebelum memindahkan aplikasi ke pasar atau Produksi:
- Waktu respons untuk setiap transaksi
- Kinerja komponen Sistem di bawah berbagai beban
- Kinerja komponen Database di bawah beban yang berbeda
- Penundaan jaringan antara klien dan server
- Masalah desain perangkat lunak
- Masalah konfigurasi server seperti server Web, server aplikasi, server database, dll.
- Masalah batasan perangkat keras seperti maksimalisasi CPU, batasan memori, kemacetan jaringan, dll.
Pengujian beban akan menentukan apakah sistem perlu disempurnakan atau modifikasi perangkat keras dan perangkat lunak diperlukan untuk meningkatkan kinerja. Untuk melakukan pengujian beban secara efektif, Anda dapat menggunakan berbagai macam alat pengujian kinerja yang tersedia untuk membantu Anda mengidentifikasi area yang perlu ditingkatkan.
Prasyarat Pengujian Beban
Metrik utama untuk pengujian beban adalah waktu respons. Sebelum Anda memulai pengujian beban, Anda harus menentukan –
- Apakah waktu respons sudah diukur dan dibandingkan – Kuantitatif
- Apakah waktu respons dapat diterapkan pada proses bisnis – Relevan
- Apakah waktu respons dapat dibenarkan – Realistis
- Apakah waktu respons dapat dicapai – Dapat dicapai
- Apakah waktu respon dapat diukur menggunakan alat atau stopwatch – Dapat diukur
Penyiapan lingkungan sebelum pengujian beban
| hardware platform | Konfigurasi Perangkat Lunak |
|---|---|
|
|
Strategi Pengujian Beban
Ada banyak cara untuk melakukan pengujian beban. Berikut ini adalah beberapa strategi pengujian beban:
- Pengujian Beban Manual: Ini adalah salah satu strategi untuk menjalankan pengujian beban, namun tidak menghasilkan hasil yang dapat diulang, tidak dapat memberikan tingkat tekanan yang dapat diukur pada suatu aplikasi dan merupakan proses yang mustahil untuk dikoordinasikan.
- Alat pengujian beban yang dikembangkan sendiri: Sebuah organisasi, yang menyadari pentingnya pengujian beban, dapat membuat alatnya sendiri untuk melaksanakan pengujian beban.
- Alat pengujian beban sumber terbuka: Ada beberapa alat pengujian beban yang tersedia sebagai sumber terbuka dan gratis. Mereka mungkin tidak secanggih rekan-rekan mereka yang berbayar, tetapi jika anggaran Anda terbatas, mereka adalah pilihan terbaik.
- Alat pengujian beban kelas perusahaan: Biasanya dilengkapi dengan fasilitas capture/playback. Mereka mendukung sejumlah besar protokol. Mereka dapat mensimulasikan sejumlah besar pengguna.
Bagaimana melakukan Pengujian Beban
Proses pengujian beban dapat dijelaskan secara singkat seperti di bawah ini –
- Buat yang berdedikasi Lingkungan Uji untuk pengujian beban
- Tentukan skenario uji beban.
- Menentukan transaksi pengujian beban untuk suatu aplikasi
- Siapkan Data untuk setiap transaksi
- Jumlah Pengguna yang mengakses sistem perlu diprediksi
- Tentukan kecepatan koneksi. Beberapa pengguna mungkin terhubung melalui jalur sewaan sementara yang lain mungkin menggunakan dial-up
- Tentukan berbagai browser dan sistem operasi yang digunakan oleh pengguna
- Konfigurasi semua server seperti web, aplikasi, dan Server DB
- Eksekusi dan pemantauan Skenario Uji. Mengumpulkan berbagai metrik
- Analisis hasilnya. Membuat rekomendasi
- Sempurnakan Sistem
- Tes ulang
Pedoman Pengujian Beban
- Pengujian beban harus direncanakan setelah aplikasi menjadi stabil secara fungsional.
- Sejumlah besar data unik harus siap di kumpulan data
- Jumlah pengguna harus ditentukan untuk setiap skenario atau skrip
- Hindari pembuatan log terperinci untuk menghemat ruang IO disk
- Cobalah untuk menghindari pengunduhan gambar di situs
- Dalam proses pelaksanaan kasus pengujian pengujian beban, konsistensi waktu respons selama periode yang telah berlalu harus dicatat dan hal yang sama harus dibandingkan dengan berbagai pengujian yang dijalankan.
Perbedaan antara pengujian Beban dan Stres
| Pengujian beban | Pengujian Tegangan |
|---|---|
| Pengujian beban mengidentifikasi hambatan dalam sistem pada berbagai beban kerja dan memeriksa bagaimana sistem bereaksi ketika beban ditingkatkan secara bertahap | Pengujian Tegangan menentukan titik puncak sistem untuk menunjukkan titik maksimum setelah sistem rusak. |
| Untuk mengenali batas atas sistem, tetapkan SLA aplikasi dan periksa bagaimana sistem dapat menangani beban berat. | Untuk memeriksa bagaimana sistem berperilaku di bawah beban ekstrim dan bagaimana sistem pulih dari kegagalan. |
| Menghasilkan peningkatan beban pada aplikasi web adalah tujuan utama pengujian beban. | Stress test bertujuan untuk memastikan bahwa ketika terjadi beban tinggi yang tiba-tiba dalam jangka waktu yang cukup lama, server tidak mogok. |
| Atribut yang diperiksa dalam uji beban adalah kinerja puncak, kuantitas server, dan waktu respons. | Pengujian semacam ini memeriksa stabilitas waktu respons, dll. |
| Dalam pengujian beban, batas beban merupakan ambang batas putus. | Pada stress test batas beban berada diatas ambang batas putus. |
Perbedaan antara Pengujian Fungsional dan Beban
| Pengujian Fungsional | Pengujian beban |
|---|---|
| Hasil uji fungsional mudah diprediksi karena kami telah menentukan langkah dan prasyarat yang tepat | Hasil uji beban tidak dapat diprediksi |
| Hasil uji fungsional sedikit berbeda | Hasil uji beban sangat bervariasi |
| Frekuensi eksekusi Pengujian Fungsional akan tinggi | Frekuensi pelaksanaan pengujian beban akan rendah |
| Hasil uji fungsional bergantung pada data uji | Pengujian beban tergantung pada jumlah pengguna. |
Alat Pengujian Beban
LoadRunner
LoadRunner, yang awalnya dari HP dan sekarang menjadi bagian dari OpenText Setelah akuisisi Micro Focus, sistem ini menguji aplikasi dalam kondisi beban normal dan beban puncak. Sistem ini menghasilkan beban melalui pengguna virtual yang meniru lalu lintas jaringan nyata, dan melaporkan hasilnya secara grafis.
Baca lebih lanjut di Tutorial LoadRunner.
Apache JMeter
Sebuah sumber terbuka Java Alat ini merupakan pilihan gratis yang paling banyak digunakan. Ia mendukung HTTP, JDBC, JMS, FTP, dan banyak lagi, menyimpan rencana pengujian sebagai XML, dan terintegrasi ke dalam pipeline CI. Lihat JMeter tutorial untuk panduan langkah demi langkah.
Gatling
Sebuah alat sumber terbuka yang pengujiannya ditulis sebagai kode dalam Scala atau Java. Perangkat lunak ini mampu menangani konkurensi tinggi pada perangkat keras yang sederhana dan menghasilkan laporan HTML terperinci, yang cocok untuk tim yang lebih menyukai skrip pengujian yang dikontrol versinya.
k6
Alat sumber terbuka dengan pengujian yang ditulis dalam JavaSkrip ini dirancang untuk pengujian performa yang dikelola oleh pengembang di dalam pipeline CI, bukan sebagai aktivitas QA terpisah.
Memilih alat
Pick JMeter Untuk cakupan protokol terluas tanpa biaya, Gatling atau k6 dapat digunakan ketika tim menginginkan pengujian disimpan dalam kontrol sumber bersama dengan aplikasi, dan alat komersial seperti LoadRunner digunakan ketika dukungan protokol perusahaan dan bantuan vendor membenarkan lisensi tersebut.
Keuntungan dan Kerugian Pengujian Beban
Berikut ini adalah keuntungan dari pengujian beban:
- Identifikasi hambatan kinerja sebelum produksi
- Meningkatkan skalabilitas sistem
- Meminimalkan risiko terkait downtime sistem
- Mengurangi biaya kegagalan
- Tingkatkan kepuasan pelanggan
Kerugian dari pengujian beban:
- Sebagian besar alat memerlukan pengetahuan pemrograman untuk membuat skrip skenario realistis.
- Alat bisa mahal karena harganya bergantung pada jumlah pengguna virtual yang didukung.
Metrik Utama yang Perlu Dicatat Selama Uji Beban
Bagian prasyarat menetapkan waktu respons sebagai metrik utama. Dalam praktiknya, laporan uji beban membutuhkan enam angka, karena waktu respons saja tidak dapat memberi tahu Anda mengapa suatu sistem melambat.
| metrik | Apa yang dikatakannya padamu | Tanda peringatan |
|---|---|---|
| Waktu respons rata-rata | Pengalaman pengguna tipikal | Meningkat seiring bertambahnya beban |
| Waktu respons persentil ke-95 | Pengalaman pengguna paling lambat | Jauh di atas rata-rata |
| Throughput | Permintaan yang berhasil ditangani per detik | Mendatar atau jatuh saat beban naik |
| Tingkat kesalahan | Persentase permintaan yang gagal atau habis waktu | Kenaikan apa pun di atas ambang batas yang disepakati |
| Pengguna bersama | Sesi simultan aktual yang tercapai | Lebih rendah dari skenario yang direncanakan |
| Penggunaan sumber daya server | Kapasitas CPU, memori, disk, dan jaringan yang memadai. | Sumber daya apa pun di atas sekitar 80 persen |
Bacaan tersebut mencakup throughput dan waktu respons. Meningkatnya waktu respons seiring dengan meningkatnya throughput berarti sistem semakin sibuk. Meningkatnya waktu respons dengan jatuh Throughput berarti kapasitasnya telah terlampaui dan sekarang terjadi kehilangan pekerjaan, yang merupakan titik yang ingin ditemukan oleh pengujian ini.
Jangan pernah melaporkan angka rata-rata saja. Rata-rata 900 ms dengan persentil ke-95 sebesar 1.1 detik menggambarkan sistem yang konsisten. Rata-rata yang sama dengan persentil ke-95 sebesar 11 detik berarti satu dari dua puluh pengguna mengalami pengalaman yang tidak dapat diterima yang disembunyikan oleh rata-rata tersebut.
Bagaimana Tes Ini Dibandingkan dengan Tes Kinerja Lainnya
Pengujian kinerja adalah serangkaian pengujian yang berbeda dalam bentuk beban yang diterapkan, itulah sebabnya pengujian ini sangat mudah membingungkan.
| Jenis pengujian | Apa yang ditingkatkan | Pertanyaan itu menjawab |
|---|---|---|
| Uji beban | Jumlah pengguna bersamaan, hingga puncak yang diharapkan. | Apakah target tercapai pada kondisi lalu lintas puncak normal? |
| Pengujian volume | Data yang tersimpan dalam basis data | Apakah sistem tersebut mampu menangani peningkatan ukuran data seiring berjalannya waktu? |
| Tes stres | Beban melebihi kapasitas, hingga terjadi kegagalan. | Di mana letak kerusakannya, dan bagaimana caranya? |
| Pengujian lonjakan | Muat, seketika dan sangat cepat. | Apakah ia mampu bertahan dan pulih dari guncangan? |
| Pengujian ketahanan | Durasi, pada beban normal | Apakah kinerja menurun seiring waktu? |
| Pengujian perendaman | Durasi, sumber daya menonton | Apakah ada kebocoran memori atau handle? |
| Pengujian stabilitas | Kondisi yang beragam | Apakah tetap dapat diandalkan seiring perubahan kondisi? |
Perbedaan yang paling penting di sini: Pengujian volume mengukur skala data, pengujian beban mengukur skala pengguna. Laporan yang berjalan dalam dua detik terhadap sepuluh ribu baris dan dua menit terhadap sepuluh juta baris memiliki masalah volume, bukan masalah beban, dan penambahan kapasitas server sebesar apa pun tidak akan memperbaikinya.



