1  为什么开发ZenData
2  ZenData数据生成工具简介
3  如何获得支持
4. 快速入门
4.1  安装部署
4.2  将ZenData加入$PATH系统环境变量中
4.3  命令行参数说明
4.4  命令行调用示例
4.5  內置数据定义示例
4.6  YAML定义语法总览
5. 用户指南
5.1. 数据定义语法
5.1.1  区间
5.1.2  步长
5.1.3  随机
5.1.4  重复
5.1.5  循环
5.1.6  循环支持区间
5.1.7  格式化
5.1.8  字面常量
5.1.9  前后缀
5.1.10  宽度
5.1.11  嵌套
5.1.12  嵌套字段递归
5.1.13  字段结果随机
5.1.14  文本文件数据
5.1.15  Excel数据查询
5.2. 內置数据定义
5.2.1  系列定义
5.2.2  实例定义
5.2.3  实例间无限级嵌套
5.3. 用户数据自定义
5.3.1  自定义Config
5.3.2  扩展现有定义
5.4. 数据定义引用
5.4.1  引用ranges系列
5.4.2  引用instances实例
5.4.3  多use&from联合引用
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.6. ZenData命令详细介绍
5.6.1  Default配置覆盖
5.6.2  列出內置数据
5.6.3  查看內置数据
5.6.4  从SQL生成数据定义
5.6.5  清除数据前后缀
5.6.6  数据反向解析
5.7. ZenData文章生成器
5.7.1  中文词语基础数据
5.7.2  撰写文章
5.7.3  转换文章到YAML配置
5.7.4  从YAML配置生成新文章
5.8. ZenData服务接口
5.8.1  HTTP服务启动
5.8.2  HTTP服务调用
6. 内置数据一览
6.1  使用命令查看內置数据
6.2. 预置Excel数据
6.2.1  国家
6.2.2  地址
6.2.3  人名
6.2.4  颜色
6.2.5  中文词语
6.3  內置数据定义

为什么开发ZenData

2020-08-20 09:21:59
王春生
1725
最后编辑:陈琦 于 2020-09-21 14:55:50
分享链接
摘要:DevOps时代下面对自动化测试的要求越来越高,但如何能够将自动化测试规模化、工程化是每一个团队都会面临的巨大挑战。在这个挑战中,测试数据的生成、维护、解析又是重中之重。

一、时代背景

最近几年DevOps概念越来越火,各种DevOps平台也如雨后春笋一样涌现。但大家往往把重点放在在工具链的搭建上,而忽略软件研发最重要的本质。工具链搭建是容易的,有各种的开源软件可以满足需求。但工具链搭建起来之后应该怎么应用呢?DevOps是希望可以通过持续集成和持续交付来实现快速的响应,但这里面有一个前提,就是质量必须要保障。如果没有质量,持续集成和交付都是空谈。如何保证质量呢?就必须要上自动化测试。

二、存在问题

自动化测试无论单元测试、接口测试、功能测试都会面临一个挑战,即如何能够做到大规模、工程化的自动化测试。这里面会牵扯到很多方面的技术:测试环境、测试手段、测试资源、测试管理等等,但这里面最最重要的一环是测试数据的管理。

如果测试数据无法做到灵活、大规模的管理,那么自动化测试就始终无法做到规模化,无法起到快速验证、快速集成、快速交付的目的。

三、目前解决方案

目前测试数据是如何来维护的呢?绝大部分的团队还是停留在手工维护阶段。手工造数据,手工维护,成本之高,可想而知。个别有能力的测试人员,会自己写点脚本来生成数据。个别有开发资源的大厂,则自己组建团队来做专门的数据工厂。这些方案都不具备通用性,成本也极其高昂。

四、为什么来开发ZenData

业内研究理论方法的专家老师有很多,但提供落地工具的不多。我们经过讨论之后,觉得来开发一款所有人都可以使用的通用的测试数据生成工具,于是就有了ZenData这样一款测试数据生成工具。

ZenData则通过YAML文件,定义了一种简单的数据类型描述语法。使用者不需要对技术有过多了解,通过定义简单的字段取值列表、前缀后缀等配置,即可实现测试数据维护的目的。简洁、高效、灵活,是做单元测试、接口测试、功能自动化测试、性能测试、压力测试、打桩mock的有力帮手。

ZenData通过简单的range定义实现了区间、步长、随机、引用、重复、SQL查询等方式,通过简单的规则可应对各种变化。ZenData只有一个可执行文件,支持HTTP模式,还可以对数据进行反向解析,可以输出txt、json、xml、sql等多种格式。