FakerJsを使ったモックデータ生成
FakerJsとは?
FakerJsはEメールアドレス、電話番号、住所、パスワード、画像といった、多種多様なランダムデータを生成するJavaScriptライブラリーです。
デモ: https://rawgit.com/Marak/faker.js/master/examples/browser/index.html
何時に使われるか
- APIからのデータの返却が未実装の場合にフロントエンド側でデータ処理を実装する必要がある時
- データベース、サービス、ホスト等の接続先に問題があった場合に、APIから返却されるダミーデータを生成する時
- APIの検証のためjson形式のサンプルデータを生成する時
NodeJsでのFakerJs使い方
まずnpmで以下のコマンドでインストールします。
npm i faker
つぎ、以下のようにインポートします。
TypeScriptプロジェクトの場合:
import faker = require("faker")
JavaScriptプロジェクトの場合:
var faker = require("faker");
例えば、FakerJsを使って3オブジェクトのEmployeeを作成します。
const generateEmployee = () => { return { id: faker.random.uuid(), first_name: faker.name.firstName(), last_name: faker.name.lastName(), email: faker.internet.email(), }; }; //Return 3 object users =>> Array.from({ length: 3 }, generateEmployee)
結果:
[ { "id": "653551ca-29dc-458d-90dd-1c7a04004350", "first_name": "Yadira", "last_name": "Zieme", "email": "Russel_Will88@yahoo.com" }, { "id": "14243402-a6f9-4005-bc61-bb1d25f23183", "first_name": "Nyah", "last_name": "Hermiston", "email": "Sigrid77@gmail.com" }, { "id": "60dbec10-2898-4571-8187-31072f849ed9", "first_name": "Reed", "last_name": "Towne", "email": "Alejandrin.Simonis@hotmail.com" } ]
現在FakerJsは多言語をサポートしてくれます。
例えば、employeeオブジェクトを作成する前にロケールを予め指定しておきます。
faker.locale = 'ja';
結果:
[ { "id": "c0a9b596-ade2-4d9e-bddc-3a6e6ed43fcb", "first_name": "結菜", "last_name": "加藤", "email": "海翔_井上@gmail.com" }, { "id": "12381746-bb9e-479c-adf0-ba7887392a06", "first_name": "杏", "last_name": "渡辺", "email": "結菜_清水11@gmail.com" }, { "id": "264a8702-3318-43d1-9518-748046ff6ac5", "first_name": "心愛", "last_name": "清水", "email": "結衣_山田57@gmail.com" } ]
FakerJsのサポートしてくれるデータ種類と言語についてhttp://marak.github.io/faker.js/を参照してください。
FakerJsにおけるSeed
FakerJsではランダムデータを生成できますが、異なる処理にて同じデータを生成する必要がある場合があります。その対応策としては、以下のようなSeedを利用できます。
faker.seed(1); var number1st = faker.random.number(); // name1st = 123 // Setting the seed again resets the sequence. faker.seed(1); var number2nd = faker.random.number(); // number2nd = 123 // => number1st === number2nd
FakerJsの他のサービス
FakerJs API
APIからはリクエストパラメーターにより、単一のデータ項目を返却します。
http://faker.hook.io/?property=internet.email&locale=en
結果:
"Ted37@hotmail.com"
Faker Cloud
単一または複数のダミーデータを素早く作成でるので、API検証のため大量データ生成に役立ちます。データのDBへの一括登録コマンドの他に、CSV形式やJson形式、MySQLやMSSQLをもサポートしてくれます。
まとめ
Faker Jsはバックエンド・フロントエンド両方に適用できる、便利かつ簡潔なライブラリーです。特にFakerCloudはテスターにふさわしいです。Faker Jsでは時間にかなりかかりそうなDBへのデータ一括登録やAPIへ送信するJsonリスト作成を簡単化することができ、多言語等をもサポートしてくれます。
参考元: