FIRST CH TOOLS / 13 TEST DATA GENERATOR

テストデータ生成

フォーム入力テスト・CSV取り込みテスト・アップロードテスト用のダミーデータを生成します。氏名・フリガナ・住所・郵便番号・メール・電話番号などをCSV / TSV / JSON / Excel(.xlsx)で書き出し、文字コード(UTF-8・BOM付き・Shift_JIS)と改行コードも指定できます。指定文字数ちょうどの境界値テキスト(全角・半角カナ・絵文字・機種依存文字・ゼロ幅文字)と、指定バイト数ちょうどのダミーファイルも作れます。

ダミーレコード生成(CSV / TSV / JSON / Excel)

How to Use

  1. タブを選ぶダミーレコード(CSV/TSV/JSON/Excel)・境界値テキスト・指定サイズのダミーファイルの3種類から、必要なものを選びます。
  2. 条件を決める列と行数と文字コード(UTF-8/BOM付き/Shift_JIS・LF/CRLF)、文字種と文字数、サイズと拡張子——それぞれ取り込み先に合わせて指定します。
  3. コピーまたはダウンロードそのままフォームに貼るか、ファイルとして保存して取り込み・アップロードテストに使います。seedを控えておけば同じデータを再現できます。

About This Tool

お問い合わせフォームの入力テストやCSV取り込みの検収では、毎回その場しのぎのデータを作りがちです。このツールは実案件の検収で使う項目(氏名・フリガナ・住所・郵便番号・電話番号)をまとめて生成し、日本語環境で事故が起きやすい文字コード・改行コード・文字種の境界値までひと続きで確認できるようにしたものです。

生成されるデータはすべて架空です。姓名は一般的な姓名リストの組み合わせ、住所は実在する町名までと乱数の丁目・番地の組み合わせ、メールアドレスは example.com / example.net / example.org(RFC 2606で予約された、実在しないドメイン)を使うため、生成したアドレスへ誤送信する心配はありません。英語データの電話番号は架空番号用に予約された 555-0100〜555-0199 の範囲を使います。日本の電話番号には予約された架空番号の範囲がないため、乱数で生成した番号が実在の番号と偶然一致する可能性があります。表示・取り込みのテスト用途に留め、実際の発信やSMS送信には使わないでください。

自由記述テキストには、カンマ・引用符・改行を含む文を意図的に混ぜています(RFC 4180のクォート処理が正しく実装されているかの確認用)。Shift_JISでの書き出しは、ブラウザ標準の TextDecoder から逆引き表を組み立てて行います(変換表を同梱しないため追加のダウンロードは発生しません)。Shift_JISで表現できない文字(絵文字など)は ? に置換し、件数を警告として表示します。

Excel形式(.xlsx)を選ぶと、そのまま開けるブックとして書き出します。郵便番号・電話番号・ID以外の列は文字列セルで書き込むため、02108 のような先頭ゼロがExcelで消えたり、1-2-3 が日付に化けたりしません(CSVをExcelで開いたときに起きる事故を避けられます)。ヘッダー行は太字+ウィンドウ枠固定、列幅も内容に合わせて設定済みです。文字コード・BOM・改行コードの指定は、.xlsx では中身のXMLがUTF-8で固定のため適用されません(CSV/TSV向けの機能です)。

ファイルサイズタブは、アップロード上限の検収用に指定バイト数ちょうどのファイルを作ります。出力バッファを先に確保してから埋めるため、サイズは常に指定値と一致します。上限テストは「ちょうど」と「1バイト超過」を対で確認するものなので、N−1 / N / N+1 の3本をその場でダウンロードできるようにしました。MiB(1,048,576バイト)とMB(1,000,000バイト)の両方を選べます——サーバー設定に書く「10M」は前者、仕様書の「10MB」は後者を指すことがあり、この食い違いが上限テストの結果を左右するためです。0バイトのファイル(N−1)もそのまま空ファイルとして保存できます。

中身は選んだ拡張子として妥当な形式で作ります(.txt はプレーンテキスト、.csv はヘッダー付きの4列CSV、.json はオブジェクトの配列、.bin はバイナリ)。中身と異なる拡張子を付けたファイル=拡張子偽装ファイルは、悪用の懸念があるため生成しません。また、生成結果はサイズと拡張子だけで決まるため、同じ指定からは常にバイト単位で同一のファイルになります(テスト手順書にそのまま書けます)。上限は100 MiB——端末のメモリ内で組み立てる方式のため、それ以上は切り詰めます。

生成・エンコード・ファイル書き出しはすべてブラウザ内(WebAssemblyも外部APIも使わない素のJavaScript)で完結し、入力・出力ともにサーバーへ送信されません。.xlsx の書き出しも、SheetJS等のライブラリを読み込まず、ZIPコンテナとOOXMLを直接組み立てています。seedを指定すると同じデータを何度でも再現できるため、バグ報告や回帰テストの手順に書き残せます(.xlsx もタイムスタンプを固定しているため、同じseedからは同じファイルになります)。

From AI Agents

URLパラメータで条件を指定して開くと、生成結果がそのままページ内に表示されます。ブラウザを操作できるAIエージェントは、フォームを操作せずに1回のアクセスで結果を取得できます。

# 50行・CSV・列を指定・seed固定(再現可能)
/testdata/?rows=50&format=csv&fields=name,name_kana,email,tel,zip,address&seed=test-2026

# Excelファイル(.xlsx)を直接ダウンロード
/testdata/?rows=100&format=xlsx&fields=id,name,email,tel,zip,address

# Excelで開くCSV(Shift_JIS・CRLF)
/testdata/?rows=20&format=csv&encoding=shift_jis&newline=CRLF

# JSON・英語データ・ヘッダー行なし
/testdata/?rows=5&format=json&locale=en&header=0

# 境界値テキスト(100文字ちょうど・全角混在。99/100/101の3本を生成)
/testdata/?preset=mixed&len=100

# 10 MiB(10,485,760バイト)ちょうどのダミーCSV。N−1/N/N+1 の3本をダウンロードできる
/testdata/?size=10&unit=MiB&ext=csv

# 仕様書の「10MB」=10,000,000バイトちょうどのテキストファイル
/testdata/?size=10&unit=MB&ext=txt

パラメータ: rows(1-1000) / format(csv,tsv,json,xlsx) / fields(id, name, name_kana, name_romaji, gender, birthday, email, tel, zip, address, company, department, url, text) / locale(ja,en) / encoding(utf-8,shift_jis) / newline(LF,CRLF) / bom(1) / header(0) / seed / preset / len(1-10000) / size / unit(B,KB,KiB,MB,MiB) / ext(txt,csv,json,bin) / tab(records,text,size)。encoding / newline / bomformat=xlsx では無視されます。3タブ分の結果はどのタブを開いていてもDOMに入っています。

Other Tools