跳转到内容

模拟数据任务

AngusTester 高效生成多种格式测试数据,满足各类测试场景需求。
模拟数据功能支持 7 种主流数据格式,帮助您:

  • 批量生成海量测试数据
  • 灵活配置数据结构与存储方式
  • 无缝集成数据库与文件系统
  • 参数化支持在测试中直接引用生成数据

主参数清单

参数类型必填限制说明
namestring<=200 字符数据名称(自动设为脚本名)
descriptionstring<=800 字符详细描述(自动设为脚本描述)
fieldsarray[object]1-200 个数据字段定义(见下方详情)
settingsobject-数据生成设置(见下方详情)

一个完整的配置示例:

yaml
mockData:
  name: 用户数据
  description: CSV格式的用户账号密码数据
  fields:
    - name: username
      type: string
      value: "@String(3,20)"
    - name: password
      type: string
      value: "@String(6,32)"
  settings:
    format: CSV
    rows: 100000
    batchRows: 200
    location: LOCAL
    lineEnding: UNIT_LF
    includeHeader: true

字段定义(fields)

参数类型必填限制说明
namestring<=200 字符字段名称
typeenum-字段类型:string,integer,boolean,
number,object,array
注意:objectarray仅JSON格式支持
valuestring<=8192 字符字段值(常量或 Mock 函数)

示例配置:

yaml
fields:
  - name: username
    type: string
    value: "@String(3,20)"
  - name: age
    type: integer
    value: "@Number(18,60)"

生成设置(settings)

参数类型必填限制说明
formatstring<=40 字符数据格式:CSV,CUSTOM,EXCEL,
JSON,SQL,TAB,XML
rowsinteger1-1000 亿生成总行数
batchRowsinteger1-10000批量生成行数
locationenum-存储位置:DATASPACE,DATASOURCE,
LOCAL,PUSH_THIRD
storeRequestobject/Http 请求配置,当存储数据到空间
推送到三方接口时是必须的。

注意:只支持 POST 请求方法
具体参数请查看“脚本规范”中 Http 请求配置。
Plugin Parametersobject/模拟数据插件独有配置参数,
具体请查看下面“插件参数”。

存储位置(location)

  • DATASPACE · 数据空间存储

    • 存储位置:AngusTester应用空间:数据文件数据空间
    • 适用场景
      • 团队协作共享数据
      • 长期保存测试数据集
      • 跨测试复用数据
    • 访问方式:通过AngusTester应用在线管理
  • DATASOURCE · 数据源存储

    • 存储位置:AngusTester内置数据源:数据数据源数据数据源
    • 适用场景
      • 数据库压测初始化
      • 生产环境数据预填充
      • 数据驱动测试支持
    • 访问方式:数据库客户端直连或通过应用查看
  • LOCAL · 本地文件存储

    • 存储位置:执行节点文件系统
    • 默认路径${AGENT_HOME}/data/exec/[执行ID]/data.[格式]
    • 适用场景
      • 临时测试数据生成
      • 快速获取原始数据文件
      • 大文件处理场景
    • 访问方式:执行完成页直接下载
  • PUSH_THIRD · HTTP接口推送

    • 传输模式
    • 智能判断依据
      • ContentType=application/octet-stream
      • FormData包含文件类型
    • 性能优化建议:文本流传输时设置batchRows=1000
    • 适用场景
      • 数据集成流水线
      • 第三方系统对接
      • 实时数据管道

格式插件专属参数(Plugin Parameters)

各数据格式的特殊配置参数:

CSV 格式参数

参数类型必填说明
lineEndingenum换行符:UNIT_LF/WINDOWS_CRLF
includeHeaderboolean是否包含表头

自定义格式参数

参数类型必填说明
escapeCharchar转义符(默认\u0000)
quoteCharchar引用符(默认\u0000)
separatorCharchar分隔符(默认,)

Excel 格式参数

参数类型必填说明
includeHeaderboolean是否包含表头

JSON 格式参数

参数类型必填说明
includeNullboolean是否包含空值字段
rowsToArrayboolean是否转换为数组

SQL 格式参数

参数类型必填说明
tableNamestring数据库表名
batchInsertboolean是否批量插入
storeDatasourceobject数据库配置(见下方)

数据库连接配置:

yaml
storeDatasource:
  type: MYSQL
  driverClassName: com.mysql.cj.jdbc.Driver
  jdbcUrl: jdbc:mysql://localhost:3306/db
  username: user
  password: pass

TAB 格式参数

参数类型必填说明
includeHeaderboolean是否包含表头

XML 格式参数

参数类型必填说明
rootElementstring根元素名称
recordElementstring记录元素名称

最佳实践场景

场景 1:CSV 用户数据生成

yaml
settings:
  format: CSV
  rows: 50000
  location: LOCAL
  lineEnding: WINDOWS_CRLF
  includeHeader: true

场景 2:JSON 测试数据

yaml
settings:
  format: JSON
  rows: 20000
  location: DATASPACE
  includeNull: false
  rowsToArray: true

场景 3:数据库直连写入

yaml
settings:
  format: SQL
  location: DATASOURCE
  batchInsert: true
  storeDatasource:
    type: POSTGRES
    jdbcUrl: jdbc:postgresql://dbserver:5432/testdb
    username: admin
    password: securePass123

场景 4:推送到第三方系统

yaml
settings:
  format: XML
  location: PUSH_THIRD
  rootElement: Users
  recordElement: User
  storeRequest:
    url: https://api.example.com/upload
    parameters:
      - name: Content-Type
        in: header
        enabled: true
        type: string
        value: multipart/form-data
      - name: Authorization
        in: header
        enabled: true
        type: string
        value: "Bearer {token}"

基于 GPL-3.0 许可发布