[Open Source] A General-Purpose Data Generation Tool for Generating Massive Amounts of Data with One Click for Performance and Stress Testing

Open SourceProcess Management
2026-06-28 03:52 3 次浏览 • 0 次下载 0KB
[Open Source] A General-Purpose Data Generation Tool for Generating Massive Amounts of Data with One Click for Performance and Stress Testing

1. Project Overview

ZenDataIt is a general-purpose data generation tool. You can use a YAML file to define your data format and then pass it toZenDatafor generation.

2. Open Source License

Licensed under GPL-3.0

3. Screenshots

My Data

Load Existing Data Files

Manage My Data

Manage Built-in Data

Data Design Page

Data Range Editor

Data Reference Editor

ZenData Auto Upgrade

4. Feature Overview

ZenData 3.0 Official Release: Supports parsing database table column types, names, and records to generate corresponding field configurations.

1. Why ZenData Was Developed

1.1. Background

In recent years, the concept of DevOps has gained increasing popularity, and various DevOps platforms have emerged rapidly. However, people often focus on building toolchains while overlooking the most important aspect of software development itself. Building a toolchain is relatively easy, as various open-source software solutions are available to meet different needs. But how should these toolchains be used once they are in place? DevOps aims to enable rapid responses through continuous integration and continuous delivery. However, this relies on one prerequisite: quality must be guaranteed. Without quality, continuous integration and delivery are nothing more than empty promises. How can quality be ensured? Automated testing is essential.

1.2. Existing Problems

Automated testing, whether unit testing, API testing, or functional testing, faces a common challenge: how to achieve large-scale, industrialized automated testing. This involves many technical aspects, including test environments, testing methods, testing resources, and test management. However, the most critical component is test data management.

If test data cannot be managed flexibly and at scale, automated testing will never achieve large-scale adoption or fulfill its goals of rapid validation, rapid integration, and rapid delivery.

1.3. Current Solutions

How is test data currently maintained? Most teams are still stuck at the stage of manual maintenance. Manually creating and maintaining data comes at an enormous cost, as you can imagine. Some experienced testers write their own scripts to generate data. A few large companies with sufficient development resources even build dedicated teams to create data factories. However, none of these solutions are universally applicable, and their costs are extremely high.

1.4. Why We Developed ZenData

There are many experts and professionals in the industry who study theoretical methods, but few provide practical tools for implementing them. After discussion, we decided to develop a general-purpose test data generation tool that everyone could use. This is how ZenData, a test data generation tool, came into existence.

ZenData uses YAML files to define a simple syntax for describing data types. Users do not need extensive technical knowledge. By simply defining field value lists, prefixes, suffixes, and other configurations, they can manage test data efficiently. Simple, efficient, and flexible, ZenData is a powerful assistant for unit testing, API testing, functional automated testing, performance testing, stress testing, and mock testing.

ZenData implements ranges, step intervals, random values, references, repetitions, SQL queries, and other methods through simple range definitions. Its straightforward rules can handle various changing requirements. ZenData consists of a single executable file, supports HTTP mode, and can also reverse-parse data. It supports multiple output formats, including txt, json, xml, and sql.

2. Introduction to the ZenData Data Generation Tool

2.1. How ZenData Works

ZenData uses YAML as its data type configuration file. Each data type can be broken down into several fields. For example, when testing a user order table, fields may include the order ID, user ID or account name, order name, order amount, order time, order status, and so on. We can configure the value range for each field individually. For example, the order ID can be defined as a range from 1 to 10000, while the user ID can range from 1 to 100. In this way, each field has its own list of possible values. When ZenData generates data, it takes one value from each field in sequence and combines them to form a record. You can imagine each field as a spinning wheel rotating at its own speed. Each time it rotates, one value is selected and combined with values from other fields.

The above describes the basic working principle. ZenData also provides various definition methods, including step intervals, random values, loops, and references. We will explain these in detail in the following sections of the manual.

2.2. Uses of ZenData

ZenData provides two main functions: data generation and data parsing. Using a configuration file, you can generate various types of data with ZenData. Similarly, you can specify a data type definition file for a data file to parse it into structured data. ZenData can be used to prepare test data for manual testing, generate and parse data in automated testing scripts, and generate massive amounts of data with a single click for performance and stress testing.

ZenData Features

  1. Simple and dependency-free. A single executable file provides both command-line data generation and HTTP API data generation services;
  2. Generates data using configuration files, allowing users to get started quickly without any programming knowledge;
  3. Provides a concise yet powerful data definition syntax, including groups, ranges, step intervals, loops, random values, formatting, prefixes, suffixes, functions, and expressions. Configurations are flexible and easy to extend;
  4. Supports reading data from text files, allowing users to precisely control field values;
  5. Provides a standard SQL query interface for Excel spreadsheet data, making data maintenance and extraction more flexible;
  6. Supports reusing definitions through predefined sequences (ranges), instances (instances), and configurations (config) to handle complex data definitions;
  7. Supports syntax inheritance and extensions, making it easier to reuse definitions across data files;
  8. Supports generating data field configurations from database table column types, names, and records;
  9. Supports multiple output formats, including text, JSON, XML, CSV, SQL, Excel, and ProtoBuf;
  10. Can reverse-parse text to generate YAML configuration templates. Includes a built-in Chinese internet slang vocabulary for convenient and entertaining content creation;
  11. The distribution package includes predefined files for common basic business data definitions.
  12. Provides a data generation service API through HTTP interfaces, allowing easy integration from applications written in any programming language;
  13. Includes a built-in data design client that reduces the learning curve for the data definition syntax, making data management and creation more efficient.
Source: ZenData Official Documentation

5. Tech Stack

  • Go 69.3%
  • Vue 17.4%
  • JavaScript 10.4%
  • Makefile 1.3%
  • PHP 0.9%
  • Less 0.6%
  • HTML 0.1%

#1
资源直链https://github.com/easysoft/zendata/archive/refs/heads/master.zip
去下载
星河码客

发现和分享优质开源项目,传承互联网精神,为开发者服务。

关于本站

联系我们

微信/广告合作:ITcloub (备注星河码客)

免责声明:本站资源版权归原作者所有,仅供学习与交流。如有侵权,请通过「关于我们 - 侵权投诉」联系删除。

Powered by Nuxt · Deployed on Cloudflare