Skip to content

k6

現代化開發者負載測試工具

軟體分類 程式開發 / 測試工具
軟體標籤
TRPC純文字KVM影音編輯
開發廠商 Grafana Labs
Stars
30.1k
Forks
1.5k
License
AGPL-3.0
Version
v0.62.0
Update
2026-03-10
OS

產品說明

k6 是一款專為現代開發流程設計的開源負載測試(Load Testing)工具。與傳統測試工具(如 JMeter)相比,k6 強調「開發者體驗(Developer Experience)」,讓工程師能夠使用熟悉的 JavaScript (ES6) 來撰寫測試腳本,並將效能測試無縫整合進 CI/CD 自動化流程中。

k6 的核心引擎採用 Go 語言編寫,這賦予了它極高的執行效能,單一實例即可輕鬆模擬數千個虛擬使用者(Virtual Users, VUs)。它不提供複雜的 GUI 介面,而是專注於簡潔有力的 CLI 操作與清晰的終端機輸出結果。透過 Check(檢查點)與 Threshold(門檻值)機制,k6 能自動判斷測試是否通過,是實踐「效能即程式碼(Performance as Code)」的最佳選擇。

核心特色:

  • 以程式碼定義測試:使用 JavaScript 撰寫測試場景,具備版控友善與高重用性特性。
  • 高效能執行:底層為 Go 語言,資源消耗低,單機可產生驚人的負載量。
  • 自動化友善:專為自動化設計,透過 Pass/Fail 門檻值(Thresholds)直接整合至 CI Pipeline。
  • 豐富生態系:原生支援輸出數據至 InfluxDB、Prometheus、Datadog 或 Grafana 進行視覺化分析。

常用指令

k6 的操作完全基於命令列,使用 k6 指令即可完成腳本建立、執行與雲端同步。

基礎操作

# 執行測試腳本
k6 run script.js

# 執行測試並指定 10 個虛擬使用者,持續 30 秒
k6 run --vus 10 --duration 30s script.js
指令功能說明範例
run執行測試k6 run script.js
new建立腳本產生一個基本的測試腳本範本
pause暫停測試暫停正在執行的測試(需在控制台操作)
resume恢復測試恢復被暫停的測試
scale調整負載動態調整執行中的虛擬使用者 (VUs) 數量
stats檢視狀態顯示目前的測試聚合數據

進階技巧

  • 門檻值檢查 (Thresholds)
    在腳本中設定 thresholds,例如要求 95% 的請求必須在 200ms 內完成,若未達標則指令回傳非 0 狀態碼(即測試失敗)。

  • 錄製腳本
    雖然 k6 鼓勵手寫腳本,但也可透過瀏覽器的 HAR 檔案轉換器(har-to-k6)快速將使用者操作錄製並轉為 k6 腳本。

    # 需先安裝 har-to-k6 工具
    har-to-k6 browser-session.har -o script.js
    
  • 輸出至 Grafana
    將測試數據即時串流至 InfluxDB,並搭配 Grafana 面板進行即時監控。

    k6 run --out influxdb=http://localhost:8086/k6 script.js
    

操作介面

k6 主要為 CLI 工具,其標準輸出(Standard Output)設計得非常精美且資訊豐富。執行結束後,會顯示詳細的聚合報告。