Генератор тестовых данных

Вымышленные люди для тестов и демонстраций: имя, фамилия, отчество, дата рождения, email, телефон, город, адрес, компания и должность. До 1000 строк, выгрузка в CSV, JSON и SQL, повторяемый набор по seed. Всё собирается в браузере.

Параметры

От 1 до 1000. Колонка id (1…N) есть всегда и идёт первой

Действует и на предпросмотр таблицы: файлом он отдаётся в CSV

Пусто — данные собирает системный генератор браузера, и повторить набор потом не выйдет. Впишите seed, чтобы набор воспроизводился

Поля
Пол
Имя
Фамилия
Отчество
Дата рождения
Email
Телефон
Город
Адрес (улица, дом, квартира)
Почтовый индекс
Компания
Должность
Сайт
Логин
UUID
Дата регистрации

Результат

Набор пуст. Заполните параметры и нажмите «Сгенерировать» — строки появятся здесь.

Зачем генерировать тестовые данные

Тестовые данные нужны раньше, чем появляется код, который их обработает: заполнить таблицу перед демонстрацией, проверить форму на значениях, которых в ней никто не набирал, посмотреть, как список из тысячи строк ведёт себя в интерфейсе, отдать коллеге пример выгрузки. Настоящие данные для этого не годятся — их нельзя показывать и нельзя выкладывать, — а выдумывать руками десять записей с ФИО, адресами и телефонами долго и скучно.

Инструмент собирает людей, а не строки: пол выбирается первым и определяет имя, отчество и форму фамилии, поэтому Иванов не может достаться женщине. Дата рождения всегда даёт возраст от 18 до 70 лет, дата регистрации идёт после неё и не заходит в будущее, а email и логин — транслит имени и фамилии, потому что кириллический адрес принимают не везде.

Набор выгружается в том виде, который нужен дальше: таблицей для просмотра, CSV для Excel и импорта, JSON для кода, готовыми INSERT для базы. Если нужно вернуться к тому же набору — впишите seed: та же строка даст те же строки, за исключением UUID, который всегда берётся из системного источника. Все вычисления идут в браузере, данные никуда не отправляются.

Частые вопросы

Можно ли использовать эти данные в продакшене?

Нет. Все записи вымышленные: имена, фамилии, отчества, адреса и телефоны собираются из встроенных в страницу списков случайным образом. Любое совпадение с реальным человеком случайно, а почтовые домены взяты из зарезервированных под примеры (example.*), так что письмо по такому адресу доставить некому. Рассылать по этим адресам и звонить по этим номерам нельзя: номер из набора может совпасть с настоящим, и тогда вы побеспокоите случайного человека. Для отладки, демонстраций и проверки форм данные годятся, для продакшена — нет.

Откуда берутся имена, фамилии и адреса?

Из списков, записанных прямо в странице: больше сорока мужских и сорока женских имён, тридцать фамилий, двадцать отчеств, сорок городов России, двадцать пять улиц, компаний и должностей. Ничего не подгружается из сети и не обновляется — списки часть страницы, поэтому инструмент работает офлайн. Согласованность обеспечивается порядком выбора: сначала определяется пол, а он уже задаёт имя, отчество и форму фамилии — Иванов или Иванова.

Данные уходят на сервер?

Нет. Набор собирается в браузере на JavaScript, ни один символ не отправляется по сети и не сохраняется: страница ничего не запоминает между визитами. Скачивается только то, что вы сохраните сами кнопкой «Скачать», и файл остаётся у вас на диске.

Можно ли получить тот же набор ещё раз?

Да, если вписать строку в поле «Seed». Она превращается в число хэшем FNV-1a и запускает детерминированный генератор: та же строка всегда даёт тот же набор, поэтому результат можно записать и получить заново — например, чтобы воспроизвести ошибку из отчёта тестировщика. Стойкости у такой последовательности нет и не заявляется: её повторит любой, кто знает seed, а подобрать его не составляет труда. Единственное поле, которое seed не повторяет, — UUID: он берётся из системного источника, потому что две «разные» выгрузки с одинаковыми идентификаторами были бы хуже, чем неполная воспроизводимость.

Чем CSV отличается от SQL-выгрузки и что выбрать?

CSV — для таблиц: первая строка это заголовки, дальше по строке на запись, разделитель — запятая или точка с запятой на выбор, внутри значений действует экранирование по RFC 4180. Такой файл открывают в Excel, Google Sheets и импортируют в CRM. JSON — для кода и API: массив объектов с английскими ключами и отступом в два пробела. SQL — для базы: готовые INSERT INTO users, по одному на строку, которые можно выполнить как есть; они идут по полной схеме таблицы, а невыбранные поля в них пишутся как NULL. В CSV и JSON попадают только отмеченные поля.

Почему email и логин латиницей?

Потому что адрес должен проходить там, где прошёл бы настоящий. Кириллические домены и адреса существуют, но их до сих пор принимают не все: старые валидаторы форм, CRM, рассыльщики и парсеры логов отбрасывают такие строки как «неверный адрес». Поэтому имя и фамилия переводятся в латиницу практической транслитерацией — той же, что у почтовых сервисов: «щ» даёт shch, «ж» — zh, «ё» — e, а «ь» и «ъ» не дают ничего, поэтому «Любовь» становится lyubov. Логин собирается из тех же частей, иногда с цифрами или подчёркиванием, как в живых базах.