モックデータ生成

簡潔なフィールド定義から、再現可能な JSON / CSV のモックデータを生成します。デモ、テスト、UI 開発に使えます。入力: `id: integer(1000,9999)` のような行を含むフィールド定義と、任意のシード値。出力: コピーまたはダウンロードできる再現可能な JSON / CSV データ。

ブラウザ内でローカルに実行
フィクスチャ定義

1行に1フィールド: fieldName: generator. Use a seed when you need the same example data again.

対応ジェネレーター

fullName, email, uuid, url, word, sentence(8), isoDate, boolean, integer(1,99), decimal(0,1), enum(red,blue), and array(word,3).

A seed makes output repeatable; leave it blank to use a one-time browser seed. This generator is intended for fixtures, demos, and test data—not production identities.

生成されたデータ
Generate fixtures to preview JSON or CSV here.

ダウンロードはブラウザ内の Blob から作成されます。生成データが KivTools にアップロードされることはありません。

API を呼ばずに使えるテストデータ

出力は UI の状態、API のサンプル、コントラクトテスト、あるいは「JSON → コード」ツールへの取り込みに使えます。実在する顧客名・メールアドレス・トークンはテストデータに含めないでください。

フィクスチャの作り方

1 行に 1 フィールドを fieldName: generator の形式で書きます。ページはその一覧をレコードに変換し、API のサンプルやリクエストボディ向けの JSON、表計算やデータベース取り込み向けの CSV として出力します。書き方が違う行は、中途半端なファイルを返さずにその行を指摘します。

シード値を決めると値の並び全体が固定されます。同じテンプレート・同じシード・同じ件数なら 1 バイトまで同じファイルになり、あとから件数を増やしても、すでにテストへ貼り付けたレコードは変わりません。

  1. 必要なフィールドを 1 行ずつ書きます(例: id: uuid、name: fullName、plan: enum(free,team,enterprise))。# で始まる行は無視されます。
  2. Records を 1〜5,000 の範囲で設定し、再現性が必要な場合はシード値を入力します。空のままにすると実行のたびに異なるデータになります。
  3. Generate fixtures を押します。見出しの横に生成されたレコード数とフィールド数が表示され、誤った生成器名はステータス行に表示され、直前の結果は破棄されます。
  4. Output を JSON と CSV の間で切り替えると、表示中のレコードがそのまま整形し直されます。Copy output か Download file(kivtools-mock-data.json / .csv)で取り出します。

各生成器が返す値と、その限界

13 個の生成器と、括弧の中のルール

テンプレートが受け付ける生成器は 13 個です。fullName、email、uuid、url、word、sentence、isoDate、boolean、integer、decimal、enum、array、ip。名前は大文字小文字を区別せず、引数を取らない生成器では括弧を省略できます(uuid() と uuid は同じ呼び出しです)。

ルールは括弧の中にあります。integer() は既定で 0〜100 で、最小値より小さい最大値は拒否します。decimal() も同じですが、値を必ず小数 2 桁に丸めるため、decimal(0,0.01) が返せるのは 0 か 0.01 だけです。sentence() は既定 8 語で、引数は 1〜40 に制限されます。array(生成器,件数) は引数がちょうど 2 つ必要で、最大 100 件です。enum() には空でない選択肢が最低 1 つ必要で、選択肢はカンマ区切りなので選択肢自体にカンマは使えません。

シードが固定するもの、壊すもの

シードは乱数列にハッシュ化されるため、同じシードは常に同じ値を再現します。今日生成した 8 件と、明日生成した 8 件は 1 文字まで一致します。シードを空にするとページは時計と Math.random を混ぜるので、一度きりのデモには向きますが、テストが照合するフィクスチャには向きません。

安定性を決めるのは 2 点です。フィールドの順序は乱数列の一部なので、フィールドを移動したり途中に挿入すると、それ以降の値がすべて変わります。新しいフィールドは末尾に追加してください。一方、レコード数は乱数列の一部ではありません。同じシードで 5 件から 50 件に増やしても、最初の 5 件はそのままです。

偽の人物・偽のアドレスと、データの行き先

email と url は予約済みドメイン example.test、demo.invalid、fixture.local しか使いません。生成されたアドレスは配信できないためです。ip は第 1 オクテットを 223 以下に保ち、末尾を 0 や 255 にしないので、パーサーがユニキャストのホストアドレスとして受け入れる範囲に収まります。

テンプレート・シード・生成結果はタブの中にとどまります。テンプレートとシードの両方に目印の文字列を入れて実行しても、それを含むリクエストは送信されません。ページが発生させる外部通信はサイト自身のアクセス解析ビーコンだけで、そこにフィクスチャは渡りません。ただし値はあくまでダミーです。本番の識別子や実在の顧客データは自社のデータを使ってください。

JSON 出力・CSV 出力・ファイルサイズ

JSON は 2 スペースで字下げした配列で、リクエストボディやフィクスチャ用モジュールにそのまま貼り付けられます。CSV はフィールド名のヘッダー行で始まり、すべてのセルを引用符で囲みます。array() フィールドはセルの中で JSON として書かれ、RFC 4180 に従って引用符が二重化されます。

Output を切り替えると、新しく生成するのではなく表示中の行を整形し直すので、読んでいた JSON が同じ値の CSV になります。量も問題ありません。5 フィールド × 5,000 件で 0.2 秒ほど、約 1 メガバイトです。ダウンロードはローカルの Blob から作成され、ファイル名は kivtools-mock-data.json または kivtools-mock-data.csv です。

最近使ったツール: