Dummy JSON でテストデータ作成

Dummy JSON を使って、様々なフォーマットのテストデータを作成する方法

Kunihiko Kido
VELTRA Engineering
6 min readAug 18, 2017

--

開発で一番大変なのはテストデータの準備ではないでしょうか?今回は、Dummy JSON を使ったテストデータの作成方法について紹介します。

Dummy JSON とは?

Handlebars テンプレートを使って、ランダムなJSONデータを作成するための Node ユティリティです。JSON データと書きましたが、CSVやテキストベースのデータであればなんでも作成できます。

Dummy JSON は、ランダムなデータを作成するためのヘルパーがたくさん用意されています。カスタムヘルパーも作ることができるので、独自のテストツールも作成できそうですね。

それでは、使い方を簡単に説明しましょう。

インストール手順

以下のコマンドを実行すると、Node.js のライブラリとして利用できるようになります。(Node.js は事前にインストールしてください)

npm install dummy-json

さらにコマンドラインで利用するには以下のコマンドを実行してください。

npm install -g dummy-json

JSON データの作成

それでは、ランダムな JSON データを作成してみましょう。まずは、テンプレートファイルを作成します。以下の内容をコピーして sample-json.hbs ファイルに保存してください。

sample-json.hbs:

[
{{#repeat 5}}
{
"id": {{@index}},
"name": "{{firstName}} {{lastName}}",
"work": "{{company}}",
"email": "{{email}}",
"dob": "{{date '1900' '2000' 'YYYY'}}",
"address": "{{int 1 100}} {{street}}",
"city": "{{city}}",
"optedin": {{boolean}}
}
{{/repeat}}
]

次に、このテンプレートを使ってランダムな JSON データを作成します。

dummyjson sample-json.hba > dummy.json

作成された、JSON データを見てみましょう。

[
{
"id": 0,
"name": "Erik Raymond",
"work": "ForeTrust",
"email": "erik.raymond@foretrust.net",
"dob": "1941",
"address": "31 Hill Street",
"city": "Fresno",
"optedin": true
},
{
"id": 1,
"name": "Cory Risley",
"work": "Zatheon",
"email": "cory.risley@zatheon.gov",
"dob": "1976",
"address": "54 Harvard Avenue",
"city": "Baltimore",
"optedin": false
},
{
"id": 2,
"name": "Lynetta Pullman",
"work": "DuoServe",
"email": "lynetta.pullman@duoserve.com",
"dob": "1911",
"address": "71 Windsor Avenue",
"city": "Canterbury",
"optedin": true
},
{
"id": 3,
"name": "Travis Magby",
"work": "Solexis",
"email": "travis.magby@solexis.club",
"dob": "1982",
"address": "93 Fuller Road",
"city": "Richmond",
"optedin": true
},
{
"id": 4,
"name": "Jamie White",
"work": "Dynalab",
"email": "jamie.white@dynalab.xyz",
"dob": "1901",
"address": "30 Haredale Road",
"city": "Chicago",
"optedin": true
}
]

素晴らしい!それっぽいサンプルデータが JSON フォーマットで作成できました。

CSV データの作成

次に CSV データです。これも基本的には、同じ手順です。テンプレートをCSV フォーマットに合わせて作成します。ポイントは、行の最後にカンマが出力されないように {{#repeat..}}comma=false を追加します。

sample-csv.hbs:

id,name,work,email,dob,address,city,optedin
{{#repeat 5 comma=false}}
{{@index}},{{firstName}} {{lastName}},{{company}},{{date '1900' '2000' 'YYYY'}},{{int 1 100}} {{street}},{{city}},{{boolean}}
{{/repeat}}

あとは、JSON データ作成と同じように dummyjson コマンドを実行します。

dummyjson sample-csv.hba > dummy.csv

結果は、以下のように出力されます。

id,name,work,email,dob,address,city,optedin
0,Theo Jensen,Anaplex,1947,51 Grosvenor Square,Denver,false
1,Austin Pace,Playtech,1909,23 Robinson Street,Oxford,true
2,Cecilia Luck,Polycore,1954,52 Chester Square,Perth,false
3,Rico Flinn,Iridimax,1980,48 Beechmont Parkway,Seattle,true
4,Rufus Neal,VTGrafix,1911,19 Hinton Road,Woodville,false

まとめ

いかがでしたでしょうか?意外と簡単にそれっぽいテストデータを作成できるのがわかっていただけたかと思います。Dummy JSON はヘルパーもたくさんありますし、カスタマイズもできます。何より Node で動作するのでいろんな OS でも使えるのが良いですね。ぜひ、Dummy JSON 使って楽しい開発ライフをエンジョイしてください。

--

--