Tạo mock data với FakerJs

Tạo mock data với FakerJs

FakerJs là gì ?

Là một thư viện JavaScript giúp tạo các dữ liệu ngẫu nhiên theo từng loại dữ liệu khác nhau như email, số điện thoại , địa chỉ , password , image ..v..v..

Demo: https://rawgit.com/Marak/faker.js/master/examples/browser/index.html

Khi nào nên sử dụng ?

  • Rất cần thiết khi làm việc với Front End. Chúng ta cần dữ liệu để xử lý trên giao diện khi dữ liệu thật từ API chưa hoàn thiện.
  • Tạo dữ liệu giả gửi về từ API khi các thành phần kết nối với database gặp vấn đề (database, service , host…)
  • Tạo dữ liệu mẫu json để kiểm thử API.

Cách sử dụng trong NodeJs

Cài đặt qua npm

npm i faker

Import (TypeScript project):

 import faker = require("faker")

HOẶC JavaScript project:

var faker = require("faker");

Ví dụ tạo 3 đối tượng Employee bằng FakerJs:

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)

Kết quả :

[
  {
    "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"
  }
]

Hiện tại FakerJs đã hỗ trợ đa ngôn ngữ. Ví dụ:

Xác định locale trước khi tạo ra đối tượng employee:

faker.locale = 'ja';

Kết quả:

[ 
  { 
    "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" 
  } 
]

Các mẫu dữ liệu FakerJs hỗ trợ và ngôn ngữ hiện có tham khảo: http://marak.github.io/faker.js/

Seed trong FakerJs

FakerJs giúp chúng ta tạo dữ liệu ngẫu nhiên. Nhưng trong một số trường hợp ta cần dữ liệu tạo ra phải giống nhau ở các xử lý khác nhau. Seed giúp chúng ta giải quyết điều này:

    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

Các service khác của FakerJs

FakerJs API

API sẽ trả về một trường kiểu dữ liệu đơn tùy theo tham số khi request

http://faker.hook.io/?property=internet.email&locale=en

Kết quả :

 "Ted37@hotmail.com"

Faker Cloud

Tạo nhanh một hoặc nhiều dữ liệu giả, rất có ích cho việc khi ta cần nhiều data để test API , lệnh insert vào database hàng loạt v..v.. Hỗ trợ nhiều định dạng CSV , JSON , MySQL , MSSQL v…v.

https://fakercloud.com/

Kết luận:

Faker Js là một thư viện tiện ích và nhỏ gọn. Nó phù hợp cho cả back-end , front-end và đặc biệt FakerCloud khá phù hợp cho các tester. Nó đơn giản hóa nhiều việc gần như tốn thời gian để làm như insert hàng loạt records vào database, tạo list JSON để gửi lên API , hỗ trợ dữ liệu đa ngôn ngữ..v…v..

Nguồn tham khảo:

  1. http://marak.github.io/faker.js/
  2. https://zetcode.com/javascript/fakerjs/