r/opensource 3d ago

Promotional Testing Files Generator - 100% offline test files generator for developers/QA, CLI/GUI, cross-platform

https://github.com/donislawdev/TestingFilesGenerator

Hello, I had created Testing Files Generator for QA/Developers

Want to create 5k log files? Do size boundary testing? Generate 2GB PNG file? Generate archive with 200 files? This tool can do it all. If you like the project, please ⭐it.

Why it's different from other generators?

- Exact size of files, if we ask for 314832 bytes, we get it, want 500kb? 5mb? 1GB? No problem. One file or 9000 files? No problem

- Generates files come with "manifest" which says how the files should behave + we can do easy cleanup

- "Recipe" system that we can store in a testing repo, create recipe that generates a 500-page PDF, a zip with 200 files and 50 csv files, no problem, same seed.

- 100% offline, no network connections, free for commercial and personal use. Windows/Linux/macOS. Min files sizes are based on the real formats, you can open generated files with software that open the format.

- Format got own values, so you can create xlsx with 4 rows and 4 collumns.

-Preset system, we can do "boundary testing" let's say we put 10mb, and we get file under 10mb, over 10mb, etc.

- More on GitHub :-)

This is V0.2 version, so there is a long way ahead, not all things are working, More format and presets will come soon. If you got any ideas feel free to drop them.

Supported formats:

πŸ“„ Documents: pdf, docx (Word), xlsx (Excel), pptx (PowerPoint)

πŸ–ΌοΈ Images: png, jpg, bmp, gif, ico, svg

πŸ“ Text: txt, md, csv, json, xml, html, log

πŸ—œοΈ Archives: zip, targz (.tar.gz)

πŸ”Š Audio: wav

What format's or features would you like to see in that project?

tiff, webp, avif, jpg xl are next formats. To keep the determinism of the generated files, I try to avoid external libraries, but for some formats it's just a bit more work (AVIF or JPG XL), so in those ones I'm heading towards external libraries. It may also change in the future, because I want to add more settigns to each file type.

PS: Why this name? it's simple, and I got no idea for other,

PS2: about ARM on Linux and Windows (GUI), there is CLI, GUI would be a extra work, but I will look into it in the future.

In the future I will need to think about supporting bigger files sizes, but in current implementation the memory is a problem, but some things could work better in the engine, so I will probably work on it first.

There is Linux build, Windows build is signed, macOS build is notarized. Separate file for CLI and separate for GUI. The language is Go (1.26.7, I will need to upgradr to 1.2.7), GUI is Fyne. (2.8.1), Testing Files Generator

25 Upvotes

8 comments sorted by

2

u/Decent-Decision-9028 2d ago edited 2d ago

can be useful to have it as an intellij plugin. The thing is without a differentiator I would probably go with https://github.com/mingrammer/flog

1

u/DonislawDev 2d ago

Hello, about the "intellij plugin.", not on my list right now, but I will check this as a option in the future.

Thanks for the link. The tool you linked is better than mine from the log perspective, Testing Files Generator offer less options for .log. I try to focus on various formats/presets from the QA perspective, because I work as QA, but I added it to my list, I will investigate more .log options (like different formats and other things, it could be a nice addition).

2

u/CommunicationFun2962 2d ago

Sounds like a good tool to generate a 4 TB log file to test my Giant Log Viewer.

1

u/DonislawDev 2d ago

Hello, my disk spacee is heading towards the end, so I didn't test the TB options :D.

Right now the program is accepting raw bytes, kb, mb, gb. TB is not accepted. But you can just use 4000GB, . [u/Decent-Decision-9028]() linked a other tool, which in case of logs is better than mine, but in the future updates I plan to expand the .log generation options.

2

u/Wow_SuchUsername_ 2d ago

This looks helpful, I'll be giving it a try! One note/request -- these are largely focused on happy-paths with file types and failures on size/counts (e.g., can I upload a 9MB PDF but not an 11MB PDF). It would be amazing if I could include restrictions and generate corrupted/problem types -- a corrupted PDF/png, a random log that must contain a certain pattern/string somewhere in it. I find myself testing validation/parsing logic far more often than size/count checks but maybe that's just me.

1

u/DonislawDev 2d ago

Thanks, yes I got a plan for whole "corruption" model, If you got any specific ideas or request feel free to drop them, and I will look into them :-)

There are many ways in which PDF can be broken, same with PNG and other format, so it will be a quite of the work. Same with names, like on Linux "a" is different than 'A" and we got names like "ΕΌΓ³Ε‚Δ‡" and other things. let's say in PNG we can hide data, same with SVG.

In next update I got plans for the "zip" bomb, and more .log customization, I work in QA, and yes, limit upload is just one phase, but there are tons of other things with the files, so It's not only you :-)