Testing Files Generator:生成精确字节真实测试文件,自带测试断言清单

分类:开源软件 | 热度:2 ℃

Testing Files Generator(简称tfg)面向QA工程师与开发者,用来生成可正常打开、尺寸精确可控的真实文件,专门用于文件上传、内容解析、存储配额等场景的自动化测试,同时提供GUI图形界面与CLI命令行两种使用模式。

Testing Files Generator:生成精确字节真实测试文件,自带测试断言清单

核心能力

  • 精确到字节:指定任意字节数,输出文件严格匹配,不会自动四舍五入。例如请求10485761字节的PDF,生成结果字节完全一致,且阅读器可正常打开,不是仅改后缀的零填充假文件。
  • 支持24种真实文件格式:PNG、DOCX、ZIP等均可被对应软件正常打开;还可自定义参数,如图像分辨率、JPEG画质、PDF页数、表格行列数。
  • 附带测试清单 manifest.json:每次生成文件时同步输出清单,记录每个文件的预期测试结果,测试脚本可直接读取清单做断言,不用人工编写预期逻辑。
  • 确定性复现:相同配方与种子,在任意机器上生成完全一致的字节内容。版本管理只需保存简短配置,不用提交GB级二进制测试文件。
  • 边界测试一键生成:一条命令生成边界用例:限制值减1、等于限制值、限制值加1,专门捕捉差一(off-by-one)类Bug。
  • 批量生成:单条命令一次性产出上万个文件,大小自动从种子配置生成。
  • 完整归档文件:可以生成内部包含数百个文档的真实ZIP压缩包,不是空壳存根文件。
  • CI流水线友好:提供标准化退出码、机器可读输出;执行失败时标准输出干净无冗余信息。
  • 内置校验与清理verify校验文件完整性;cleanup精准删除本次生成的文件,不会误删其他内容。
  • 完全离线运行:无账号、无云端依赖、无遥测、不自动更新;CLI二进制不含网络相关代码。
  • 开源协议 GPL-3.0,生成的文件版权归使用者。

支持格式清单

分类 格式
文档 pdf、docx、xlsx、pptx
图像 png、jpg、bmp、gif、ico、svg、tiff、webp、avif、jxl
文本/标记 txt、md、csv、json、xml、html、log
归档 zip、targz(tar.gz)
音频 wav

规划新增:7z、mp3、mp4

解决的痛点

在开发文件上传、导入解析功能时,测试经常需要:

  1. 恰好10MB的PDF,验证上传大小限制是否生效
  2. 限制值上下临界文件,用来捕获边界错误
  3. 上万条日志文件,测试程序在海量文件目录下的性能
  4. 内含大量文档的压缩包,验证解压与批量解析逻辑
  5. GB级测试文件,又不想把大二进制文件提交到代码仓库
  6. 跨机器(本地电脑、CI构建服务器)获得完全一致的测试样本

手动制作这类文件繁琐且难以保证字节精度,Testing Files Generator就是用来替代这部分手工工作。

使用示例

一键生成上传边界测试集,以1MB为限制,生成临界PDF文件:

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges

生成目录内会包含manifest.json,测试代码可直接读取预期结果做自动化断言,示例Python代码:

import json
import os
directory = "edges"
manifest = json.load(open(os.path.join(directory, "manifest.json")))
for entry in manifest["files"]:
    response = upload(os.path.join(directory, entry["path"]))
    outcome = entry["expected"]["outcome"]
    if outcome == "accept":
        assert response.ok, entry["path"]
    elif outcome == "reject":
        assert not response.ok, entry["path"]

当业务规则比较特殊,工具无法判定预期结果时,清单会标记为unspecified,不会编造预期造成测试误报。

声明: 猎游人 每天为你带来最新的游戏和硬件打折情报,帮你精心挑选值得玩的游戏,让您的钱花的更值!本站信息大部分来自于网友爆料,如果您发现了优质的游戏或好的价格,不妨爆料给我们吧(谢绝任何商业爆料)! 点此爆料

0条评论

Hi,您需要填写昵称和邮箱!
姓名 (必填)
邮箱 (必填)
网站

暂时木有评论