k6
https://gyazo.com/007ea2ea20d1f6246a15e6ec428c3086
https://k6.io/
https://grafana.com/docs/k6/latest/
概要
アプリケーションや インフラ の 信頼性 と パフォーマンス をテストするためのツール
Grafana Labs が開発
チームがエラーや SLO 違反を防ぎ、スケーリング し、回復力のある高性能なアプリケーションの構築を支援することを目的とする
シングルバイナリ で動作するため、クラウドネイティブ
Go で実装されている
が、テストコード(シナリオ)は JavaScript / TypeScript で記述する
k6 Studio を使えば、コードを記述することなくコードを生成可能
SaaS も提供されている: Grafana Cloud k6
主な用途
負荷テスト: Web サイトやアプリに大量のアクセスを模擬して、どれだけの負荷に耐えられるかテスト
ブラウザテスト: 実際のブラウザでのページの表示速度や操作性をテスト
CI/CD 統合: 開発・デプロイの自動化プロセスに組み込み
障害テスト: システム障害を意図的に発生させて、システムの 回復力 をテスト(カオスエンジニアリング)
インフラテスト: データベースや API など、個別のシステムコンポーネントの性能をテスト
監視: テスト結果を Prometheus に送信することで、Grafana のダッシュボードで可視化
New Relic や Datadog などの SaaS との連携も可能
OpenTelemetry との組み合わせも
セットアップ(macOS): https://grafana.com/docs/k6/latest/set-up/
とりあえずローカルで動かすために、macOS にインストールする
インストール: brew install k6
VSCode 拡張機能: https://marketplace.visualstudio.com/items?itemName=k6.k6
型定義インストール: npm install --save-dev @types/k6
コマンド
$k6 new [file] [flags]: スクリプトファイル作成
k6 run [flags]: スクリプト実行
VU(仮想ユーザ: 並列度)の追加: k6 run --vus ...
参考
https://www.ren510.dev/blog/k6-load-testing
https://zenn.dev/pharmax/articles/98ed49994cdaf2
https://qiita.com/ta-okazawa/items/b6de1d7c8c05484f7fac
学習リソース
https://grafana.com/docs/k6/latest/get-started/resources/
公式チュートリアル
https://grafana.com/docs/k6/latest/examples/get-started-with-k6/
#負荷テスト