📌 Project Overview
Performance testing bukan hanya menjalankan ribuan request ke sebuah API. Tantangan utamanya adalah membangun framework yang mudah digunakan kembali, mudah dikembangkan, serta mampu memberikan insight yang jelas mengenai performa sistem.
Project ini merupakan implementasi Performance Testing Framework menggunakan k6 dengan dukungan Docker, InfluxDB, dan Grafana untuk melakukan monitoring secara realtime serta menghasilkan laporan pengujian yang lebih informatif.
Framework ini dibuat sebagai bagian dari pengembangan kompetensi saya di bidang QA Automation & Performance Engineering.
🎯 Project Objectives
Framework ini dirancang dengan beberapa tujuan utama:
- Membangun framework Performance Testing yang reusable
- Mempermudah proses eksekusi berbagai skenario pengujian API
- Menyediakan monitoring performa secara realtime
- Menghasilkan laporan hasil pengujian secara otomatis
- Menyediakan struktur project yang mudah dikembangkan
⚙ Technical Challenges
Selama pengembangan framework terdapat beberapa tantangan teknis yang perlu diselesaikan, antara lain:
- Menyusun struktur project agar mudah dipelihara.
- Mendesain konfigurasi yang fleksibel untuk berbagai skenario pengujian.
- Mengintegrasikan monitoring realtime dengan Grafana.
- Menghasilkan laporan otomatis setelah proses pengujian selesai.
- Menjaga framework tetap modular sehingga mudah dikembangkan di masa mendatang.
🏗 Solution Architecture
- Load Generation
- Metrics Collection
- Visualization
- Reporting
sehingga masing-masing komponen dapat dikembangkan secara independen.
📊 Performance Dashboard
Framework menghasilkan dashboard monitoring realtime menggunakan Grafana untuk memantau berbagai metrik penting seperti:
- Response Time
- Request Rate
- Virtual Users
- Error Rate
- Throughput
- Request Duration
📈 Performance Report
Selain monitoring realtime, framework juga menghasilkan laporan HTML yang merangkum hasil pengujian sehingga lebih mudah dianalisis setelah proses testing selesai.
Laporan mencakup:
- Total Requests
- Success Rate
- Failed Requests
- Average Response Time
- Maximum Response Time
- Percentile Response Time
- Test Duration
Project ini mengintegrasikan beberapa teknologi utama untuk mencapai hasil pengujian yang akurat:
- k6: Alat pengujian beban berbasis JavaScript untuk scripting skenario pengujian.
- InfluxDB (v1.8): Database deret waktu (Time Series) untuk menyimpan metrik hasil pengujian secara persisten.
- Grafana: Platform visualisasi untuk menampilkan metrik melalui dashboard interaktif secara real-time.
- Docker Compose: Untuk orkestrasi container InfluxDB dan Grafana dalam satu perintah.
Framework ini mencakup skenario positif, negatif, dan pengujian alur kerja lengkap (End-to-End):
| No. | Fitur | Objective | Target (VUs) |
|---|---|---|---|
| 1 | Authentication | Token Validation | 20 |
| 2 | Create Booking | Create New Booking | 20 |
| 3 | Update Booking | Update Existing Booking | 20 |
| 4 | Partial Update | Patch Existing Data | 20 |
| 5 | Get Booking | Retrieve Booking | 20 |
| 6 | Delete Booking | Remove Booking | 20 |
- Link Repository GitHub: Click Here




No comments:
Post a Comment