[Project] Performance Test Framework: Restful Booker with k6

📌 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


Framework ini memisahkan proses:
  • 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


🛠️ Tech Stack & Architecture

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.

📋 Cakupan Pengujian (Test Cases)

Framework ini mencakup skenario positif, negatif, dan pengujian alur kerja lengkap (End-to-End):

No.FiturObjectiveTarget (VUs)
1AuthenticationToken Validation20
2Create BookingCreate New Booking20
3Update BookingUpdate Existing Booking20
4Partial UpdatePatch Existing Data20
5Get BookingRetrieve Booking20
6Delete BookingRemove Booking20




No comments:

Post a Comment

Pages