Как бесплатно генерировать реалистичные тестовые данные (JSON и CSV)
Наполняйте базы данных, прототипируйте интерфейсы и пишите тесты с реалистичными вымышленными именами, e-mail, адресами, телефонами и не только — экспорт в JSON или CSV, всё в браузере.
Каждый разработчик рано или поздно упирается в одну и ту же стену: вам нужны данные для тестирования, но использование реальных пользовательских данных — это риск, Lorem Ipsum бесполезен для чего-либо сверх заполнения абзацев, а создание вручную 500 тестовых записей в JSON — способ загубить полдня. Генераторы вымышленных данных существуют, чтобы решить именно эту проблему — и генератор вымышленных данных BrowseryTools делает это бесплатно, локально, без аккаунта, без лимитов строк и без подписки.
Это руководство охватывает, почему важны реалистичные вымышленные данные, что производит генератор, как эффективно использовать его в разных рабочих процессах и как импортировать вывод в каждую распространённую базу данных и инструментарий.
Почему нельзя использовать реальные пользовательские данные для тестирования
Использование продакшен-данных в средах разработки или тестирования — это комплаенс- и юридический риск в рамках нескольких нормативных систем:
- GDPR (Европа): статья 25 требует минимизации данных по умолчанию. Копирование реальных пользовательских записей — имён, e-mail, адресов — в staging-базу нарушает этот принцип, если данные не были должным образом анонимизированы. Взлом этой staging-среды раскрывает данные реальных людей.
- HIPAA (здравоохранение США): защищённую медицинскую информацию (PHI) нельзя использовать в тестовых средах без либо Business Associate Agreement, либо надлежащей деидентификации по методам Safe Harbor или Expert Determination. Использование реальных записей пациентов в dev-базе — прямое нарушение HIPAA.
- CCPA (Калифорния): персональная информация жителей Калифорнии несёт особые права и ограничения. Использование реальных записей клиентов в любом непродакшен-контексте без соответствующих мер контроля создаёт ненужный риск.
Помимо комплаенса есть практические инженерные причины избегать реальных данных в тестах: реальные данные грязны непредсказуемым образом (у них есть пустые поля, спецсимволы и Unicode, которые тесты могут быть не написаны обрабатывать), они меняются со временем (делая тесты недетерминированными) и содержат значения, которые могут случайно вызвать реальные побочные эффекты (отправку писем на реальные адреса, списание с реальных платёжных средств).
Почему Lorem Ipsum — неправильный инструмент для данных
Lorem ipsum хорош для заполнения текстовых блоков в макете. Он совершенно неправилен для тестирования управляемых данными интерфейсов и API, потому что:
- Он не нагружает реальные длины полей. У e-mail, телефонов и почтовых индексов есть конкретные форматы и максимальные длины. «Lorem ipsum dolor sit amet» в поле e-mail не выявит, что ваша валидация ввода неверна, а вот
very.long.name.that.pushes.limits@subdomain.example.comвыявит. - Он не вскрывает крайние случаи в вашем интерфейсе. Имя вроде «José García-López» проверяет ваше кодирование символов. Название компании вроде «O'Brien & Associates, LLC» проверяет ваше экранирование SQL. «Lorem ipsum» не проверяет ни то ни другое.
- Он делает ваши макеты и прототипы фальшивыми так, что это имеет значение. Заинтересованные лица, просматривающие прототип с реалистичными именами, реалистичными городами и реалистичными e-mail, могут правильно оценить дизайн. Текст-заглушка ломает иллюзию и затрудняет обнаружение реальных проблем юзабилити.
Что производит генератор вымышленных данных BrowseryTools
Генератор поддерживает широкий диапазон типов полей в нескольких категориях. Вы выбираете, какие поля включить, и каждая сгенерированная запись содержит реалистичные, правильно отформатированные значения для каждого выбранного поля:
Личная информация
- Полное имя — культурно реалистичные сочетания имени и фамилии
- Имя и фамилия по отдельности (полезно, когда ваша схема хранит их в разных столбцах)
- E-mail — правильно отформатированный, использующий сгенерированное имя как локальную часть
- Номер телефона — формат США с кодом региона
- Дата рождения — генерирует взрослых от 18 до 80 лет
- Пол — мужской / женский / небинарный
Адрес
- Адрес улицы — реалистичный номер дома и название улицы
- Город — реальные названия городов США и других стран
- Штат — штаты США и международные эквиваленты
- Страна
- Почтовый индекс — формат соответствует выбранной стране
Интернет и идентичность
- Имя пользователя — сгенерировано из имени с добавлением цифр для реалистичности
- URL — реалистичные URL личных или корпоративных сайтов
- IP-адрес — валидные IPv4-адреса в публичных диапазонах
- User agent — реальные строки user-agent распространённых браузеров
Финансы
- Номер кредитной карты — проходит проверку по алгоритму Луна, поэтому не будет отвергнут валидаторами формата; использует реалистичные префиксы номеров карт (Visa 4xxx, Mastercard 5xxx), но не является реальным номером карты
- IBAN — валидный формат европейских номеров банковских счетов
Идентификаторы и системные поля
- UUID — UUID v4 для первичных ключей БД и идентификаторов корреляции
- SSN — формат номера социального страхования США (XXX-XX-XXXX)
- Даты и случайные числа в настраиваемых диапазонах
Как пользоваться генератором
Откройте /tools/fake-data. Интерфейс даёт вам три элемента управления:
- Выберите поля: отметьте флажки для каждого типа поля, которое хотите в выводе. Вы можете выбрать как одно поле (только e-mail, например), так и полный набор для всеобъемлющих записей пользователей.
- Задайте количество записей: введите число от 1 до 1000. Для seed-данных нагрузочного тестирования используйте 1000. Для истории Storybook или дизайн-макета обычно достаточно 5–10 записей.
- Выберите формат вывода: выберите JSON или CSV. JSON лучше для тестирования API и JavaScript-инструментария. CSV лучше для импорта в БД, просмотра в таблицах или инструментов вроде Postman.
Нажмите «Generate». Вывод появляется в текстовой области ниже. Используйте кнопку «Copy», чтобы скопировать его в буфер обмена, или «Download», чтобы сохранить файл локально. Генерация мгновенна для до 1000 записей — все вычисления происходят в вашем браузере.
Пример вывода в JSON
Вот показательный фрагмент из 3 записей вывода JSON с выбранными личными, адресными и интернет-полями:
[
{
"id": "a3f7c2e1-8b4d-4f6a-9c1e-2d5b8f3a0c7e",
"firstName": "Meredith",
"lastName": "Okafor",
"email": "meredith.okafor47@mailbox.net",
"phone": "(312) 554-8821",
"dateOfBirth": "1988-03-14",
"gender": "female",
"street": "2841 Birchwood Drive",
"city": "Columbus",
"state": "OH",
"zipCode": "43215",
"country": "United States",
"username": "meredith_okafor88",
"ipAddress": "74.125.224.18"
},
{
"id": "b8e2d5f1-3a9c-4e7b-8d2f-1c6a4e9b0d3f",
"firstName": "Derek",
"lastName": "Nascimento",
"email": "d.nascimento@webfrontier.io",
"phone": "(415) 703-2294",
"dateOfBirth": "1995-11-02",
"gender": "male",
"street": "509 Elmwood Court",
"city": "Portland",
"state": "OR",
"zipCode": "97201",
"country": "United States",
"username": "derek_n95",
"ipAddress": "192.0.2.147"
},
{
"id": "c1d4f9a2-7e3b-4c8d-a5f2-0b9e6c1d4f8a",
"firstName": "Simone",
"lastName": "Bertrand",
"email": "simone.bertrand@alphamail.com",
"phone": "(617) 889-4471",
"dateOfBirth": "1979-07-28",
"gender": "female",
"street": "77 Harborview Terrace",
"city": "Boston",
"state": "MA",
"zipCode": "02101",
"country": "United States",
"username": "simone_b79",
"ipAddress": "203.0.113.42"
}
]Пример вывода в CSV
Те же данные в формате CSV, готовые к импорту в таблицу, базу данных или любой инструмент, принимающий файлы с разделителями:
id,firstName,lastName,email,phone,dateOfBirth,gender,street,city,state,zipCode,country,username,ipAddress
a3f7c2e1-8b4d-4f6a-9c1e-2d5b8f3a0c7e,Meredith,Okafor,meredith.okafor47@mailbox.net,(312) 554-8821,1988-03-14,female,2841 Birchwood Drive,Columbus,OH,43215,United States,meredith_okafor88,74.125.224.18
b8e2d5f1-3a9c-4e7b-8d2f-1c6a4e9b0d3f,Derek,Nascimento,d.nascimento@webfrontier.io,(415) 703-2294,1995-11-02,male,509 Elmwood Court,Portland,OR,97201,United States,derek_n95,192.0.2.147
c1d4f9a2-7e3b-4c8d-a5f2-0b9e6c1d4f8a,Simone,Bertrand,simone.bertrand@alphamail.com,(617) 889-4471,1979-07-28,female,77 Harborview Terrace,Boston,MA,02101,United States,simone_b79,203.0.113.42Реальный пример 1: наполнение базы пользователей для нагрузочного тестирования
Нагрузочное тестирование пользовательского API требует наполненной базы данных. Вам нужно достаточно записей, чтобы смоделировать реалистичную производительность запросов, поведение пагинации и индексацию поиска — но вы не можете использовать реальные пользовательские данные, а создание тысяч SQL-вставок вручную непрактично.
С генератором вымышленных данных сгенерируйте 1000 записей со всеми релевантными для пользователя полями, скачайте как CSV, затем импортируйте напрямую в вашу базу данных:
-- PostgreSQL: import CSV directly into users table
COPY users (id, first_name, last_name, email, phone, date_of_birth, city, state, zip_code)
FROM '/path/to/fake_users.csv'
DELIMITER ','
CSV HEADER;
-- MySQL equivalent:
LOAD DATA LOCAL INFILE '/path/to/fake_users.csv'
INTO TABLE users
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
-- MongoDB (using mongoimport):
mongoimport --db myapp --collection users --type csv --headerline --file fake_users.csvРеальный пример 2: наполнение истории Storybook или дизайн-макета
При создании UI-компонента — таблицы пользователей, карточки контакта, списка результатов поиска — данные, на которых вы тестируете, определяют, поймаете ли вы реальные проблемы. Таблица из 10 пользователей, где у одного очень длинное имя, у другого международный символ в e-mail, а у третьего город переносится на две строки, вскроет баги вёрстки, которые таблица из одинаковых строк-заглушек никогда бы не показала.
Сгенерируйте 10–20 записей как JSON, вставьте вывод прямо в вашу историю Storybook или файл фикстуры компонента:
// UserTable.stories.ts
import type { Meta, StoryObj } from '@storybook/react';
import { UserTable } from './UserTable';
// Paste generated JSON directly from BrowseryTools:
const fakeUsers = [
{ id: "a3f7c2e1...", firstName: "Meredith", lastName: "Okafor", email: "meredith.okafor47@mailbox.net", city: "Columbus" },
{ id: "b8e2d5f1...", firstName: "Derek", lastName: "Nascimento", email: "d.nascimento@webfrontier.io", city: "Portland" },
// ... more records
];
const meta: Meta<typeof UserTable> = { component: UserTable };
export default meta;
export const WithData: StoryObj<typeof UserTable> = {
args: { users: fakeUsers },
};Реальный пример 3: фикстуры интеграционных тестов API
Интеграционным тестам конечной точки API, создающей или обновляющей записи пользователей, нужен надёжный, детерминированный набор входных данных. Вместо написания объектов-фикстур вручную сгенерируйте набор записей один раз, сохраните JSON-файл в каталог тестовых фикстур и импортируйте его в тестах:
// tests/fixtures/users.json — generated by BrowseryTools, committed to version control
// tests/api/users.test.ts
import users from '../fixtures/users.json';
import { createUser } from '../../src/api/users';
describe('POST /api/users', () => {
it.each(users.slice(0, 10))('creates user with valid data (%s)', async (user) => {
const response = await createUser(user);
expect(response.status).toBe(201);
expect(response.body.email).toBe(user.email);
});
});Импорт в коллекции Postman
Для тестирования API в Postman сгенерируйте свои тестовые записи как JSON и используйте функцию файла данных Postman, чтобы выполнить запрос по одному разу на запись. Сохраните вывод JSON как файл, затем в Postman: откройте бегунок коллекции, выберите запрос и прикрепите JSON-файл в качестве источника «Data». Postman будет проходить по каждой записи, подставляя значения в тело запроса с помощью синтаксиса переменных вроде {{firstName}}, {{email}} и подобных.
Это превращает написанный вручную POST-запрос в автоматизированный тест, который выполняется на 100 разных реалистичных записях пользователей за секунды — не требуя настройки какого-либо тестового фреймворка.
BrowseryTools против Mockaroo
Mockaroo — самый известный онлайн-генератор вымышленных данных. Это солидный инструмент, но у него есть трение, которое BrowseryTools устраняет полностью:
| Параметр | BrowseryTools | Mockaroo (бесплатно) |
|---|---|---|
| Нужен аккаунт | Нет | Да |
| Лимит строк (бесплатно) | 1000 за генерацию | 1000/день всего |
| Нужна подписка для большего | Нет | Да (50 $/год) |
| Данные загружаются на сервер | Никогда | Да (схема + данные) |
| Доступ к API | Н/Д | Только платные планы |
| Работает офлайн | Да (после загрузки страницы) | Нет |
| Форматы вывода | JSON, CSV | JSON, CSV, SQL, Excel и другие |
| Разнообразие типов полей | Покрыты распространённые типы | Очень обширное |
Если вам нужны узкоспециализированные типы полей или вывод в SQL, Mockaroo остаётся ценным. Для распространённого случая — генерации реалистичного JSON или CSV для записей пользователей — BrowseryTools не требует настройки аккаунта, управления дневным лимитом и беспокойства о том, что схема ваших данных отправляется на сторонний сервер.
Приватность: вся генерация происходит локально
Каждое имя, e-mail, адрес и UUID, которые производит генератор, создаются JavaScript, работающим во вкладке вашего браузера. Типы полей, которые вы выбираете, число запрашиваемых записей и сами выходные данные никогда не передаются ни на один сервер. У BrowseryTools нет бэкенд-компонента, участвующего в генерации данных.
Это менее важно при генерации именно вымышленных данных (поскольку всё вымышлено по определению), но это важно для схемы, на которой вы их тестируете. Если ваш выбор полей раскрывает структуру чувствительной внутренней системы, эта информация тоже остаётся локальной.
Сгенерируйте свой первый набор данных прямо сейчас
Наполняете ли вы базу для нагрузочного теста, заполняете историю Storybook, пишете фикстуры для тестов API или просто демонстрируете функцию с чем-то, что выглядит реальным — реалистичные вымышленные данные являются правильной основой, и их генерация должна занимать 30 секунд.
Откройте генератор вымышленных данных BrowseryTools, выберите поля, задайте число записей, выберите JSON или CSV и нажмите «Generate». Без аккаунта, без лимита строк, бесплатно, ничего никуда не загружается.
Генерируйте реалистичные тестовые данные за секунды
До 1000 записей. JSON или CSV. Имена, e-mail, адреса, UUID, кредитные карты и не только. Бесплатно, локально, без аккаунта.
Открыть генератор вымышленных данных →Связанные инструменты: Форматировщик JSON · Генератор UUID · Тестер регулярных выражений · CSV в JSON · Все инструменты BrowseryTools
Try the Tools — 100% Free, No Sign-Up
Everything runs in your browser. No uploads. No accounts. No ads.
Explore All Tools →