Agentive
ツールレビュー

AI APIテストツール比較 — Postman vs Insomnia vs HTTPie

約8分で読めます

AI APIテストツール比較 — Postman vs Insomnia vs HTTPie

AI APIの開発ではストリーミングレスポンス、長時間リクエスト、トークン従量課金への対応が必要になる。汎用的なHTTPクライアントでは扱いづらいこれらの要件に、各テストツールがどう対応しているかを比較した。

3大ツール比較表

項目PostmanInsomniaHTTPie
形式GUI(デスクトップ/Web)GUI(デスクトップ)CLI
価格無料〜$14/月無料〜$5/月無料(OSS)
SSEストリーミングありありあり(—stream)
環境変数管理ありありセッション機能
チーム共有あり(クラウド)あり(Git Sync)スクリプト共有
CI/CD統合Newman CLIInso CLIそのまま利用可
AI補助機能Postbot(AI生成)なしなし

Postman — AI APIテストの王道

PostmanはGUIでリクエストを構築し、テストスクリプトで検証を自動化できる。PostbotがAIでテストケースを自動生成する機能も搭載。

Claude APIのテストコレクション構築

{
  "info": {
    "name": "Anthropic Claude API Tests",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "base_url", "value": "https://api.anthropic.com" },
    { "key": "model", "value": "claude-sonnet-4-20250514" }
  ],
  "item": [
    {
      "name": "Messages - Basic",
      "request": {
        "method": "POST",
        "url": "{{base_url}}/v1/messages",
        "header": [
          { "key": "x-api-key", "value": "{{api_key}}" },
          { "key": "anthropic-version", "value": "2023-06-01" },
          { "key": "content-type", "value": "application/json" }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\"model\":\"{{model}}\",\"max_tokens\":1024,\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}"
        }
      }
    }
  ]
}

Postmanテストスクリプトでトークン消費を記録

// Test Script: レスポンス検証 + コスト計算
pm.test("Response time under 5s", () => {
  pm.expect(pm.response.responseTime).to.be.below(5000);
});

pm.test("Token usage tracking", () => {
  const body = pm.response.json();
  const inputTokens = body.usage.input_tokens;
  const outputTokens = body.usage.output_tokens;

  // Claude Sonnet: $3/1M input, $15/1M output
  const cost = (inputTokens * 3 + outputTokens * 15) / 1_000_000;
  console.log(`Tokens: ${inputTokens} in / ${outputTokens} out`);
  console.log(`Estimated cost: $${cost.toFixed(6)}`);
  pm.expect(cost).to.be.below(0.01);
});

HTTPie — CLIでの高速テスト

HTTPieはコマンドラインでAPIを叩く最もシンプルな方法。スクリプトに組み込みやすく、CI/CDパイプラインでの自動テストに最適。

AI APIのストリーミングテスト

# 基本リクエスト
http POST https://api.anthropic.com/v1/messages \
  x-api-key:$ANTHROPIC_API_KEY \
  anthropic-version:2023-06-01 \
  model=claude-sonnet-4-20250514 \
  max_tokens:=1024 \
  messages:='[{"role":"user","content":"Hello"}]'

# ストリーミングレスポンスのテスト
http --stream POST https://api.anthropic.com/v1/messages \
  x-api-key:$ANTHROPIC_API_KEY \
  anthropic-version:2023-06-01 \
  model=claude-sonnet-4-20250514 \
  max_tokens:=1024 \
  stream:=true \
  messages:='[{"role":"user","content":"Count from 1 to 10"}]'

Insomnia — 軽量GUIでの開発

InsomniaはPostmanより軽量で、Git Syncでコレクションをバージョン管理できる。チームでの共有に適している。

Insomnia環境変数の活用

# .insomnia/Environment/dev.yaml
name: Development
data:
  base_url: https://api.anthropic.com
  api_key: "{{ _.ANTHROPIC_API_KEY }}"
  model: claude-sonnet-4-20250514
  max_tokens: 1024

AI APIテストで押さえるべきポイント

レート制限への対処

import time
import httpx

def test_rate_limit_handling():
    """レート制限時のリトライを検証"""
    client = httpx.Client()
    headers = {
        "x-api-key": API_KEY,
        "anthropic-version": "2023-06-01",
    }
    for i in range(10):
        response = client.post(
            "https://api.anthropic.com/v1/messages",
            headers=headers,
            json={"model": "claude-sonnet-4-20250514", "max_tokens": 10,
                  "messages": [{"role": "user", "content": f"Test {i}"}]}
        )
        if response.status_code == 429:
            retry_after = int(response.headers.get("retry-after", 60))
            print(f"Rate limited. Retry after {retry_after}s")
            time.sleep(retry_after)
        else:
            assert response.status_code == 200

各ツールの実測レスポンスタイム

同一リクエスト(Claude Sonnet、max_tokens=100)を各ツールから10回送信した平均値。

ツール平均レスポンスオーバーヘッドメモリ使用量
Postman1,250ms+50ms450MB
Insomnia1,220ms+20ms280MB
HTTPie1,205ms+5ms15MB
curl1,200ms基準5MB

CI/CDでの自動テスト統合

# GitHub Actions: Newman(Postman CLI)でAPIテスト
name: API Tests
on: [push]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm install -g newman
      - run: |
          newman run postman/claude-api-tests.json \
            --env-var "api_key=${{ secrets.ANTHROPIC_API_KEY }}" \
            --reporters cli,junit \
            --reporter-junit-export results.xml

関連記事

A

Agentive 編集部

AIエージェントを実際に使い倒す個人開発者。サイト制作の自動化を実践しながら、その知見を発信しています。