k6
現代化開發者負載測試工具
軟體分類 程式開發 / 測試工具
軟體標籤
TRPC純文字KVM影音編輯
開發廠商 Grafana Labs
產品說明
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)設計得非常精美且資訊豐富。執行結束後,會顯示詳細的聚合報告。




![]()