- 1 为什么开发ZenData
- 2 ZenData数据生成工具简介
- 3 如何获得支持
- 4. 快速入门
- 4.1 安装部署
- 4.2 将ZenData加入系统环境变量中(可选)
- 4.3 命令行参数说明
- 4.4 命令行调用示例
- 4.5 內置数据定义示例
- 4.6 YAML定义语法总览
- 5. 用户指南
- 5.1. 数据定义语法
- 5.2. 內置数据定义
- 5.3. 用户数据自定义
- 5.4. 数据定义引用
- 5.4.1 引用ranges系列
- 5.4.2 引用instances实例
- 5.4.3 多froms联合引用
- 5.4.4 引用Config配置
- 5.4.5 引用yaml文件内容
- 5.4.6 全局from语句
- 5.5. 数据输出
- 5.5.1 文本格式输出
- 5.5.2 JSON格式输出
- 5.5.3 XML格式输出
- 5.5.4 SQL格式输出
- 5.5.5 直接插入数据到MySQL
- 5.5.6 CSV格式输出
- 5.5.7 Excel格式输出
- 5.5.8 ProtoBuf格式输出
- 5.6. ZenData命令行详解
- 5.6.1 Default配置覆盖
- 5.6.2 多配置文件新语法
- 5.6.3 列出內置数据
- 5.6.4 查看內置数据
- 5.6.5 从SQL生成数据定义
- 5.6.6 从数据库表结构生成数据定义
- 5.6.7 清除数据前后缀
- 5.7. ZenData文章生成器
- 5.7.1 中文词语基础数据
- 5.7.2 转换文章到YAML配置
- 5.7.3 文章格式语法介绍
- 5.7.4 从YAML配置生成新文章
- 5.8. ZenData客户端
- 5.8.1 Web接口调用
- 5.8.2. 数据提供者示例
- 5.8.2.1 TestNG数据提供者示例
- 5.8.2.2 PHPUnit数据提供者示例
- 5.8.2.3 PyUnit数据提供者示例
- 5.8.3. Web数据管理工具
- 5.9 ZenData自动升级
- 6. 内置数据一览
YAML定义语法总览
- 2020-08-13 08:39:42
- 陈琦
- 14419
- 最后编辑:陈琦 于 2020-09-21 17:14:47
- 分享链接
以下为一个标准的YAML定义文件,各元素含义请见注释。更多详细说明,请参见本手册后续章节。
title: zendata数据配置语法说明 desc: # 文件组成 # zendata以yaml格式的文件来定义各个字段的格式。 # yaml文件整体由文件说明和字段定义两部分组成。 # 文件说明 # title: 标题,可以用简短的文字概要描述该文件定义的数据类型。 # desc: 描述,可以用多行文本来详细描述该文件定义的数据类型,非必选项。 # author: 作者,非必选项。 # version:版本号,非必选项。 # 字段列表 # 字段定义部分都放在fields这个定义里面。 # 一个yaml文件可以包含一个或者多个字段。 # 字段列表以-field定义开始。 # 一个字段可以通过fields属性定义它的子字段。 # 字段定义 # field: 字段名,仅支持英文、数字、下换线和. # range: 列表范围,最重要的定义。 # loop: 循环次数,可以定义某一字段循环多少次。 # loopfix: 每一次循环时的连接符。 # format: 支持格式化输出。 # prefix: 该字段的前缀。 # postfix: 该字段的后缀。 # length: 该字段的长度。如果不通过分隔符区分,则需要指定字段长度,单位是字节。 # leftpad: 左填充的字符。如果长度不够,可指定左填充的字符。默认是以空格左填充。 # rightpad: 右填充的字符。如果长度不够,可指定右填充的字符。 # config: 可以引用另外一个文件里面的定义。 # from: 引用某一个定义文件。 # use: 使用被引用文件中定义的若干实例。all代表使用所有。 # select: 如果引用的文件是excel表,可以查询里面的某一个字段。 # where: 如果引用的文件是excel表,可以使用查询条件。 # loop定义 # 可以使用一个数字来指定字段循环的次数,比如loop:2。 # 可以使用区间来定义字段循环的次数。比如loop:2-10。 # range定义 # 使用逗号连接不同的元素。比如 range: 1,2,3。 # 元素也可以是一个区间。比如 range:1-10, A-Z。 # 区间可以通过冒号:来指定步长。比如 range:1-10:2。 # 步长可以是小数。比如 range: 1-10:0.1。 # 步长可以是负数。比如 range:100-1:-1。 # 区间可以通过R来指定随机。比如 range: 1-10:R,随机和步长只能二选一。 # 可以通过一个文件来指定列表。比如range: list.txt。文件名是相对路径时,以配置文件为基准计算。 # 可以通过{n}的方式来重复某一个元素。比如 range: user1{100},user2{100} # 如果区间或者几个元素需要重复,需要用[]括起来。比如 range: [user1,user2,user3]{100} author: zentao version: 1.0 fields: - field: field_common # 默认的列表类型,通过逗号隔成若干区间。 range: 1-10, 20-25, 27, 29, 30 # 1,2,3...,10,20,21,22...,25,27,29.30 prefix: "" # 前缀 postfix: "\t" # 后缀,特殊字符加引号,否则无法解析。 - field: field_step # 区间指定步长。 range: 1-10:2, 1-2:0.1 # 1,3,5,7,9,1, 1.1,1.2...,2 postfix: "\t" - field: field_random # 区间指定随机。随机属性R同步长不能同时出现。 range: 1-10:R # 1,5,8... postfix: "\t" - field: field_loop # 自循环的字段。 range: a-z # a|b|c ... loop: 3 # 循环三次 loopfix: _ # 每次循环的连接符。 postfix: "\t" - field: field_repeat # 通过{}定义重复的元素。 range: user-1{3},[user2,user3]{2} # user-1,user-1,user-1,user2,user2,user3,user3 postfix: "\t" - field: field_format # 通过格式化字符串输出。 range: 1-10 # passwd 1,passwd 2,passwd 3 ... passwd10。 format: "passwd%02d" # 用%02d补零,使密码整体保持8位。 postfix: "\t" - field: field_length # 指定宽度。 range: 1-99 # 01\t,02\t,03\t..., 99\t length: 3 # 包含前后缀的宽度。 leftpad: 0 # 宽度不够时,补充的字符。 postfix: "\t" - field: field_text # 从一个文件中随机读取。 range: users.txt:R # 相对当前文件路径。 postfix: "\t" - field: field_yaml # 引用其他的定义文件整体内容。 range: test/test-nested2.yaml{3} # 相对当前文件路径。 postfix: "\t" - field: field_use_config # 引用其他的config定义文件。 config: number.yaml # 相对当前文件路径,config内包含单个字段。 postfix: "\t" - field: field_use_ranges # 引用內置的定义文件,该文件定义了多个range,他们共享了一些field层面的属性。 from: zentao.number.v1.yaml # 引用yaml/zentao/number/v1.yaml文件里面的ranges定义。 use: medium # 使用该文件中定义的medium分组。 postfix: "\t" - field: field_use_instance # 引用其他的定义文件,该文件定义了多个实例。 from: ip.v1.yaml # yaml/ip/v1.yaml use: privateC,privateB # 使用该文件中定义的privateC和privateB两个实例。 postfix: "\t" - field: field_use_excel # 从excel数据源里面取数据。 from: address.cn.v1.china # 从data/address/v1.xlsx文件中读取名为china的工作簿。 select: city # 查询city字段。 where: state like '%山东%' # 条件是省份包含山东。 rand: true # 随机取数据 postfix: "\t" - field: field_with_children # 字段多层嵌套 fields: - field: child1 range: a-z prefix: part1_ postfix: '|' - field: child2 range: A-Z prefix: part2_ postfix: '|' - field: child_with_child prefix: part3_ postfix: fields: - field: field_grandson prefix: int_ range: 10-20 postfix:
评论列表
发表评论
yaml下是zendata格式的定文文件;
自己需要复用的定义文件可放在users下;
ZenData会自动去查找这几个路径。