performance-testing について
負荷時のシステム動作を測定する性能テストのガイドです。API、データベース、アルゴリズムの測定と、複数のテストツールの解説を含みます。
主な機能
- 01APIの負荷・レイテンシテスト
- 02データベースクエリ性能の分析
- 03k6、JMeter、pytest-benchmark、JMHのガイド
- 04モニタリングとボトルネック分析
活用シーン
- 01応答時間とスループット要件の確認
- 02同時ユーザー数に対する処理能力の検証
- 03最適化前後の性能比較
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill performance-testingインストール後、Claude Code で/performance-testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/apache-jmeter.mddatabase-query-performance.mdjmh-for-java-benchmarking.mdk6-for-api-load-testing.mdpytest-benchmark-for-python.mdreal-time-monitoring.mdscripts/validate-api.shtemplates/api-scaffold.yaml詳細
パフォーマンステスト
目次
概要
パフォーマンステストでは、応答時間、スループット、リソース使用率、スケーラビリティなど、さまざまな負荷条件下でのシステムの動作を測定します。ボトルネックの特定、パフォーマンス要件の検証、システムが想定される負荷に対応できることの確認に役立ちます。
使用する場面
- 応答時間の要件を検証する
- API のスループットとレイテンシを測定する
- データベースクエリのパフォーマンスをテストする
- パフォーマンスのボトルネックを特定する
- アルゴリズムの効率を比較する
- 最適化の前後でベンチマークを実施する
- キャッシュの有効性を検証する
- 同時ユーザー数の上限をテストする
クイックスタート
最小限の実行可能な例:
// load-test.js
import http from "k6/http";
import { check, sleep } from "k6";
import { Rate, Trend } from "k6/metrics";
// Custom metrics
const errorRate = new Rate("errors");
const orderDuration = new Trend("order_duration");
// Test configuration
export const options = {
stages: [
{ duration: "2m", target: 10 }, // Ramp up to 10 users
{ duration: "5m", target: 10 }, // Stay at 10 users
{ duration: "2m", target: 50 }, // Ramp up to 50 users
{ duration: "5m", target: 50 }, // Stay at 50 users
{ duration: "2m", target: 0 }, // Ramp down to 0
],
thresholds: {
http_req_duration: ["p(95)<500"], // 95% of requests under 500ms
http_req_failed: ["rate<0.01"], // Error rate under 1%
errors: ["rate<0.1"], // Custom error rate under 10%
},
};
// ... (see reference guides for full implementation)
リファレンスガイド
references/ ディレクトリにある詳細な実装:
| ガイド | 内容 |
|---|---|
| k6 による API 負荷テスト | k6 による API 負荷テスト |
| Apache JMeter | Apache JMeter |
| Python 用 pytest-benchmark | Python 用 pytest-benchmark |
| Java ベンチマーク用 JMH | Java ベンチマーク用 JMH |
| データベースクエリのパフォーマンス | データベースクエリのパフォーマンス |
| リアルタイムモニタリング | リアルタイムモニタリング |
ベストプラクティス
✅ 推奨事項
- 明確なパフォーマンス要件(SLA)を定義する
- 実際の運用に即したデータ量でテストする
- リソース使用率を監視する
- キャッシュの有効性をテストする
- 平均値ではなくパーセンタイル(P95、P99)を使用する
- 測定前にウォームアップする
- 本番環境に近い環境でテストを実行する
- N+1 クエリの問題を特定して修正する
❌ 避けるべきこと
- 小さなデータセットだけでテストする
- メモリリークを無視する
- 現実的でない環境でテストする
- 平均応答時間だけに注目する
- データベースのインデックス分析を省略する
- 正常系のパスだけをテストする
- ネットワークレイテンシを無視する
- 統計的有意性を考慮せずに比較する
コメント
Markdown 対応