すべてのAPIテストには、実行するためのデータが必要です。ログインテストにはユーザーが必要です。チェックアウトテストには注文、住所、支払い記録が必要です。検索テストには、ページネーションが実際に機能するように数千行のデータが必要です。このデータを手作業で入力するのは時間がかかり、手作業で入力したバージョンは、実際のバグを見つけるには常にきれいすぎます。
テストデータジェネレーターはこれを解決します。それは、要求に応じて現実的で多様な記録を生成し、実際の運用データがいずれ引き起こすであろうエッジケースをテストがカバーできるようにします。このガイドでは、テストデータジェネレーターとは何か、選択できる主なタイプ、そして別のツールを追加することなくApidog内で直接テストデータを生成する方法について説明します。
APIレスポンスを完全にモックするのが初めての方は、まずはモックAPIとは何かから始め、その後にデータの問題についてここに戻ってきてください。
テストデータジェネレーターとは?
テストデータジェネレーターは、実際の運用データのように見える合成記録を作成するツールまたはライブラリです。「{"name": "test", "email": "test@test.com"}」を100回入力する代わりに、必要な形式(名前、有効なメールアドレス、10から500の間の価格)を記述すると、ジェネレーターがそれらしい値を埋めてくれます。
良いテストデータには3つの特性があります。
- 現実的。名前は名前らしく、メールアドレスは検証を通過し、日付は妥当な範囲内です。
- 多様性がある。2つの記録が同一でないため、アサーションはオフバイワンエラーや境界エラーを捕捉します。
- 安全。合成データであるため、実際の顧客記録(およびそのPII)をテストスイートにコピーすることはありません。
目標はきれいなデータではありません。網羅性です。ジェネレーターを使用すると、手動で作成した整然としたフィクスチャでは決して見つけることのできない方法でコードを破壊する、入力のロングテール(空の文字列、ユニコード名、巨大な数値、期限切れの日付)を生成できます。
APIテストにおいて現実的なテストデータが重要な理由
APIは入力を検証します。不正な形式のメールアドレスを拒否し、範囲外の数値をクランプし、オプションのフィールドで分岐します。すべてのテスト記録が「John Doe / john@example.com / quantity 1」である場合、ハッピーパスしかテストしていません。
現実的で生成されたデータを使用すると、手動ではできない3つのことができます。
- 大量のテスト。5,000個の製品を生成すると、ページネーション、ソート、フィルタリングが本格的に機能します。
- 意図的に境界を打つ。正確に0の価格、負の数量、または256文字の名前を要求して、検証が保持されていることを確認します。
- データ駆動型テストの実行。入力のテーブルを1つのテストに通し、各行について正しい結果をアサートします。
最後の点はジェネレーターが最も役立つ部分であり、Apidogがデータ生成をテスト実行に直接結びつける部分です。これについては以下で詳しく説明します。
テストデータジェネレーターの主なタイプ
テストデータジェネレーターは4つのカテゴリに分類されます。ほとんどのチームは複数のタイプを使用することになります。
1. コードライブラリ
Faker.js(JavaScript)やFaker(Python)のようなライブラリは、faker.person.fullName()、faker.internet.email()、faker.commerce.price() のようなプログラマティックAPIを提供します。これらは、コード内でデータを生成し、再現性のためにシードし、スクリプトに組み込むことができるため、最も柔軟なオプションです。
トレードオフは、コードを記述し、保守する必要があることです。JavaScriptをお使いの場合、Faker.jsとApidogでの使用方法に関する詳細な解説では、ライブラリを詳しく説明し、同じFakerルールがApidogのモックエンジンにどのように組み込まれるかを示しています。
2. スタンドアロンおよびオンラインジェネレーター
Mockarooのようなツールでは、Web UIで列を定義し、CSV、JSON、またはSQLをダウンロードできます。これらは、コードを書く必要なく、一度限りのシードファイルや迅速なデータセットに便利です。欠点は、データが静的なエクスポートであることです。データを再生成したり、変更されるスキーマと同期させたりするには、毎回UIに戻る必要があります。
3. スキーマベースのジェネレーター
OpenAPI仕様またはJSON Schemaが既にある場合、スキーマベースのジェネレーターはフィールドの型と制約を読み取り、それに応じたデータを自動的に生成します。これにより、テストデータが契約と整合します。OpenAPIスキーマからモックデータを生成する方法でOpenAPIのフローをカバーしています。JSON Schema標準がこれを可能にしています。型、形式、範囲はすべて機械可読です。
4. AIベースのジェネレーター
最新のオプションでは、モデルに文脈に応じた記録を発明させます。例えば、現実的なサポートチケット、もっともらしい製品の説明、一貫性のあるユーザープロファイルなどです。これは、ランダムなフィールド値ではなく、データが「理にかなっている」必要がある場合に威力を発揮します。Claude Codeを使用してモックデータを生成するで実践的な例をご覧ください。
Apidogでテストデータを生成する方法
「テストデータジェネレーター」のほとんどのまとめ記事が見逃している部分がこれです。ApidogでAPIをテストする場合、別のジェネレーターはまったく必要ありません。データ生成はワークフロー内の3つの場所に組み込まれています。
フィールドルールによるスマートモック。 Apidogがエンドポイントをモックする際、各フィールド名と型を読み取り、それらしい値を自動的に生成します。emailフィールドは有効なメールアドレスを返し、createdAtフィールドは日付を返し、priceフィールドは数値を返します。出力制御のためにフィールドごとにFakerスタイルのルールを添付できるため、モックは実際のAPIと同じ形式を返します。Apidogをダウンロードすると、定義したエンドポイントはdb.jsonを保守することなく、すぐに現実的なデータを返し始めます。

AI生成テストデータ。Apidogは、エンドポイントのスキーマからテストレコードのバッチを生成できるため、すべてのフィールドに手動でルールを記述することなく、多様なデータセットを取得できます。

データ駆動型テスト。これは最終的な部分です。テストステップにCSVまたはJSONデータセットを添付すると、Apidogは行ごとにステップを1回実行し、値を変数として代入します。1つのテスト、多くの入力、1つのアサーションパターンです。メカニズムはCSVおよびJSONからのパラメーター化APIテストの実行方法でカバーされており、この特定のジョブのツールを検討している場合は、データ駆動型APIテストにどのツールを使用するかでオプションが比較されています。CIで実行していますか?同じデータセットはApidog CLIでのデータ駆動型テストでターミナルから機能します。
ステップバイステップ:エンドポイントのテストデータを生成する
- Apidogでプロジェクトを開き、テストデータが必要なエンドポイントを選択します。
- レスポンススキーマを定義します(またはOpenAPIファイルからインポートします)。フィールド名と型が生成を駆動します。
- モックをオンにします。Apidogはすぐに各フィールドに生成された値を返します。
- 特定のフィールドを制御するには、モックルールを追加します(例:
statusをactive、pending、closedのいずれかに設定)。 - テスト実行の場合、データセット(CSVまたはJSON)を作成し、テストステップに添付すると、ステップはすべての行を反復処理します。
これで、開発用の現実的なレスポンスと、テスト用の反復可能な入力テーブルを、テストを作成して実行するのと同じ場所から手に入れることができます。
テストデータジェネレーターの選び方
| 必要な場合… | 使用する | 理由 |
|---|---|---|
| JS/Pythonで完全なプログラム制御 | Fakerライブラリ | 柔軟、スクリプト可能、シードで再現可能 |
| 迅速な静的シードファイル | Mockarooまたは類似ツール | コード不要、エクスポートして使用 |
| API契約に一致するデータ | スキーマベース(OpenAPI/JSON Schema) | 仕様と同期を保つ |
| 文脈に応じた「理にかなった」記録 | AIジェネレーター | 一貫性のある複数フィールドデータ |
| モックとテストに組み込まれた生成データ | Apidog | モック、生成、実行が1つのツールで完結 |
唯一の正解はありません。スクリプトを多用するチームはFakerに頼り、ApidogでAPIを設計しているチームは、ワークスペースを離れることなく、生成、モック、データ駆動型実行を利用できます。
APIテストデータのベストプラクティス
- 再現性のためのシード。失敗したテストは、その原因となった正確なデータを再生成できる場合にのみ役立ちます。繰り返す必要がある実行には固定シードを使用します。
- 不正なデータも生成する。空のフィールド、間違った型、過大なペイロード、期限切れのトークンは、有効な行だけでなく、データセットに含めるべきです。
- データとスキーマを同期させる。契約が変更されたら、再生成します。スキーマベースの生成はこれを自動的に行います。
- 実際のPIIを絶対に使用しない。合成データはプライバシー規制と顧客記録がリポジトリに漏洩するリスクを回避します。
- テストのボリュームに合わせる。ページネーションとパフォーマンスのテストには数千行が必要ですが、単一の検証チェックにはほんの数行で十分です。
FAQ
テストデータジェネレーターとモックサーバーの違いは何ですか?ジェネレーターはデータを生成し、モックサーバーはそれをHTTP経由で偽のAPIレスポンスとして提供します。両方必要な場合が多く、Apidogがそれらを組み合わせているのはそのためです。モックはジェネレーターが作成したデータを返します。スタンドアロンのジェネレーターは単にファイルを渡すだけです。
OpenAPI仕様からテストデータを生成できますか?はい。スキーマベースのツールは、仕様の型と制約を読み取り、それに応じた記録を生成します。OpenAPIスキーマからモックデータを生成するを参照してください。
生成されたテストデータをリポジトリにコミットしても安全ですか?合成データは、実際の個人情報を含まないため安全です。運用データのエクスポートをコミットすることは絶対に避けてください。
生成された多くの入力に対して1つのテストを実行するにはどうすればよいですか?データ駆動型テストを使用します。CSVまたはJSONデータセットを添付すると、テストは行ごとに反復処理されます。パラメーター化されたテストガイドで設定方法が示されています。
テストデータを使用するために偽のサーバーを立ち上げる必要がありますか?必ずしもそうではありません。フラットファイルによってバックアップされた使い捨てのREST APIが必要な場合は、json-serverとJSONPlaceholderに関するガイドを参照してください。スキーマ認識型でチームで共有可能なモックには、Apidogの内蔵モックを使用してください。
要するに
テストデータジェネレーターは、記録を作成するという時間のかかるエラーの多い作業を、必要な形式を1行で記述するだけで解決します。スクリプト制御にはコードライブラリを、契約との整合性を保つにはスキーマベースのツールを、一貫性のある記録にはAIジェネレーターを選択してください。すでにApidogでAPIをテストしている場合、生成、スマートモック、データ駆動型実行をすべて1か所で利用できるため、生成したデータがそのまま使用するテストに流用されます。Apidogをダウンロードし、エンドポイントを指すことで、最初のリクエストから現実的なテストデータを確認できます。
