Код 2026-05-13

Mockyard відкритий генератор тестових даних для розробників — 🛠️

Mockyard відкритий генератор тестових даних для розробників — 🛠️

Створення великих обсягів докиданих (mock data) є критично важливим етапом у розробці програмного забезпечення, особливо при тестуванні конвеєрів для імпорту даних. Однак традиційні онлайн-інструменти часто мають суттєві обмеження: вони можуть бути платними, не відкритими або ж не дозволяють генерувати достатньо записів для реальних сценаріїв використання.

Для розв'язання цієї проблеми розроблено Mockyard — безплатний, open source та повністю самостійно розміщуваний (self-hostable) альтернативний інструмент до відомого Mockaroo. Цей інструмент працює як Docker-контейнер і дозволяє користувачам генерувати величезні масиви даних у форматах CSV, JSON та SQL.

Mockyard був створений для того, щоб забезпечити розробникам можливість тестування конвеєрів імпорту з сотень тисяч до мільйонів записів без необхідності підключення до інтернету чи встановлення складних пакетів. Сьогодні генерація до 10 мільйонів рядків коштує користувачеві $0.

Проблема обмежень та переваги Mockyard

Багато онлайн-генераторів даних, як-от Mockaroo, мають чіткі комерційні обмеження. Наприклад, у безплатний рівні вони обмежуються лише 1K рядками на файл. Якщо ж потрібна генерація до 100K рядків, це вимагає платного підпису за $60 на рік. Крім того, такі інструменти не є open source і не можуть бути розміщені локально.

Mockyard розв'язувати ці проблеми, пропонуючи повну свободу:
* Безплатність: Генерація до 10 мільйонів рядків щодня безплатний.
* Відкритий код: Проєкт є open source, що забезпечує прозорість та можливість спільноти вносити покращення.
* Самостійне розміщення: Інструмент працює локально через Docker-контейнер, гарантуючи повну незалежність від зовнішніх сервісів.

Реалізм даних: розширені можливості генерації

Ключовою перевагою Mockyard є можливість створювати не просто випадкові дані, а логічно зв'язаний та реалістичний набір інформації. Це досягається завдяки двом потужним функціям:

Вагові перерахування (Weighted Enums)

Замість того щоб присвоювати значення рівномірно, Mockyard дозволяє вказати розподіл значень для певного поля. Наприклад, можна задати такий розподіл ролей:
* 20% записів мають role = Admin
* 30% записів мають role = Manager
* Решта 50% записів мають role = Viewer

Таблиці пошуку (Lookup Tables)

Ця функція гарантує реалізм даних, запобігаючи "безглуздям". Якщо ви обираєте місто, система автоматично підбирає відповідний штат та країну. Це дозволяє полям залишатися логічно пов'язаними, на відміну від незалежно згенерованих елементів.

Продуктивність: тестування великих обсягів даних

Проведені бенчмарки демонструють високу продуктивність Mockyard навіть при роботі з мільйонами записів. Нижче представлені результати генерації CSV-файлів для набору із 4 стовпцями:

Рядки Формат Час Пропускна здатність (рядків/сек)
1,000 CSV 0.02s ~50,000
10,000 CSV 0.09s ~111,111
100,000 CSV 0.53s ~188,679
1,000,000 CSV 4.89s ~204,499
10,000,000 CSV 53.61s ~186,532

Наразі максимальна кількість рядків у Mockyard становить 10 мільйонів. Цього достатньо для покриття більшості реальних сценаріїв тестування, адже навіть Excel не зможе завантажити цілі файли з кількістю записів понад 1 мільйон.

Доступ та вихідні дані

Для тих розробників, які потребують генерації даних у про граматичного середовищі, Mockyard також надає API endpoint. Веб-інтерфейс користувача фактично використовує той самий API під капотом.

Наразі підтримка форматів виведення обмежена CSV та JSON. Розробники запрошують спільноту відкривати питання у репозиторії, якщо їм потрібна підтримка додаткових форматів даних.

Telegram Logo Читайте нас у Telegram: @procodeandevenmore