Files
testing-tool/docs/test-data-generator

测试数据生成器 - 功能设计文档

版本: v1.0 创建时间: 2024-01-20 状态: 已实现(见 src/pages/TestDataGenerator/src/lib/generators/src/workers/generator.worker.ts

产品定位

轻量级可视化测试数据生成器

  • 纯前端工具,无需后端
  • 可视化配置,无需编码
  • 本地生成,数据安全

目录

当前实现入口

  • 页面入口:src/pages/TestDataGenerator/index.tsx
  • Workersrc/workers/generator.worker.ts
  • 生成器库:src/lib/generators/
  • 规则存储:src/utils/ruleStorage.ts
  • 导出工具:src/utils/dataExporter.ts

实现约束与任务完成状态记录在 TASKS.md

开发者注意事项(与源码同步)

以下行为以 src/ 源码为准;设计文档中的旧版 class API、metadata/options 嵌套结构已废弃。

Worker 任务 IDgenerationId

useGenerator 每次调用 generate() 递增 generationIdRef,经 start 消息传入 Worker。Worker 所有响应(progress / complete / error)均携带同一 generationId

  • 取消cancel() 先递增 ID 再发送 cancel,使进行中的 Worker 响应被主线程忽略;Worker 每生成 100 行让出事件循环以处理 cancel。
  • 快速重试:新任务 ID 大于旧响应时,旧消息被丢弃,避免 UI 状态错乱。

类型见 WorkerRequestMessage / WorkerResponseMessagesrc/types/testDataGenerator.ts)。

规则存储写入失败

ruleStorage.save() / update()localStorage.setItem 失败时返回 null(不部分提交)。页面层(如 FieldList.tsx)仅在返回值非空时 Toast 成功。详见 rule-management.md § 存储机制src/utils/README.md