API Test + DevOps Portfolio
最終更新: 2026年03月22日
概要
このプロジェクトは、APIテストとDevOps技術を統合した実践的なポートフォリオです。

Python/Docker/CI/CDを統合したAPIテスト自動化ポートフォリオ。1,338件のテスト(CI品質ゲート: 1,324件/95.83%)。
概要
- 1,338件のテストスイート: Unit(1,290) / Integration(39, うちExternal 5件含む) / Performance(7, 週次のみ) / Smoke(2) / E2E(実装予定)
- カバレッジ: 95.83%(unit+integration条件): 継続的な品質向上
- CI実行テスト: 1,324件(unit+integration条件, external・performance・smoke除外)
- 内訳: Unit 1,290件 + Integration 34件(39件のうちexternal 5件を除外)
- CI/CD自動化: GitHub Actions による多段階パイプライン
- セキュリティ: CI/CD品質ゲート(pytest + ruff + mypy + Trivy)
- GitHub API統合: 実務的なAPI統合スキルを証明(Rate Limit管理、ETag活用、非同期処理)
デモ
3つのGIFで主要機能を視覚的に確認できます(合計35秒)
1. テスト実行

📝 デモ内容: クイック実行例(基本テスト19件、デモ時間短縮のため抽出。全1,338件は約60秒)
🔍 全1,338件を今すぐ確認: GitHub Actions CI/CD でフルテスト結果+カバレッジレポートを閲覧
何がわかるか:
- pytest + pytest-covによる自動テスト実行
- カバレッジレポートによる品質可視化
- テスト実行: 基本19件 ~5秒、全1,338件 ~60秒
全テスト実行コマンド(1,338件、約60秒)
# 全テスト実行(1,338件)
uv run pytest --cov=utils --cov=config --cov=models --cov-report=term -q --color=yes
# クイック実行(unit tests)
uv run pytest tests/unit/test_api_client.py --cov=utils --cov=config --cov=models --cov-report=term -q --color=yes
2. Docker操作

📝 デモ内容: Docker Multi-stage buildによるコンテナビルド
✅ Docker Compose: 4環境(development / testing / staging / production)オーケストレーション
何がわかるか:
- Docker Multi-stage builds(4段階: base/dependencies/runtime/test)
- 非rootユーザーでのセキュアな実行
- 本番イメージサイズ最適化(< 200MB目標)
3. CI/CD自動化

📝 デモ内容: git push後GitHub Actionsで自動テスト・デプロイ
何がわかるか:
技術スタック
| カテゴリ | 技術 |
|---|
| 言語 | Python 3.14 |
| HTTP Client | httpx(同期/非同期対応) |
| 設定管理 | Pydantic Settings(型安全) |
| テスト | pytest + pytest-cov + pytest-asyncio |
| リンター | ruff(高速、Rust製) |
| 型チェック | mypy(strict mode) |
| パッケージ管理 | uv(高速、Rust製) |
| CI/CD | GitHub Actions(多段階パイプライン) |
| エラー監視 | Sentry SDK + MCP統合 |
| ログ | structlog(構造化ログ) |
ブランチ戦略(軽量Git Flow)
main ─────────────────────────────────────────→ (production)
│ ↑
├─→ develop ────────────────────────────┘ (integration)
│ │ ↑ ↑
│ └─→ feature/* ─┘ │
│ │
└─→ hotfix/* ───────────────────┘
※ hotfix/*: main + develop の両方にマージ
| ブランチ | 用途 | マージ先 |
|---|
main | 本番環境(タグ付きリリース) | - |
develop | 開発統合(次期リリース準備) | main |
feature/* | 新機能開発 | develop |
hotfix/* | 本番緊急修正 | main + develop |
クイックスタート
前提条件
| 要件 | バージョン | 確認コマンド |
|---|
| Python | 3.14 | uv run python --version |
| uv | 0.4+ | uv --version |
| Git | 2.0+ | git --version |
| Docker (任意) | 24.0+ | docker --version |
uvのインストール方法
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# pip経由
pip install uv
セットアップ
# 1. リポジトリクローン
git clone https://github.com/yuta158/api-test-portfolio.git
cd api-test-portfolio
# 2. 依存関係インストール(uv使用、約10秒)
uv sync
# 3. テスト実行(並列)
uv run pytest -n auto
# 4. カバレッジ付きテスト(並列)
uv run pytest -n auto --cov=utils --cov=config --cov=models --cov-report=term
# 5. 特定マーカーのテスト実行
uv run pytest -n auto -m unit # 単体テストのみ
uv run pytest -n auto -m integration # 統合テストのみ
# 6. 高速実行(並列、manual/external除外)
uv run pytest -n auto -m "not external and not manual" # CI/CD相当の自動実行可能テストのみ