Data-Processer 模拟数据生成器开源项目

我要开发同款
匿名用户2016年12月14日
192阅读

技术信息

开源地址
https://gitee.com/CloudWise/Data-Processer
授权协议
GPLv3

作品详情

Data-Processer简介1、是什么?

它是一个模拟数据生成器。我们在测试过程中,产生完整、全面的真实数据可能比较困难。我们可以根据需求,创建对应的模版和词典,利用数据模拟生成器生成我们需要的模拟数据。

2、能做什么?

他能够根据构建的模版和词典,生成我们需要的数据。

三个应用场景:

测试场景

:测试过程中,我们需要验证数据后端的功能或性能,此时,需要降低与数据产生端的耦合,那么需要一个稳定优秀的数据生成器,来持续的不间断的产生正确的数据,和特殊情况下的异常数据。

持续集成场景:

  在整个持续集成场景中,一个或多个模块组成一个平台,需要有源源不断的数据进入持续集成环境,用以自动化地完成测试和迭代工作,使用Data-Processer则可以通过数据样本的指定和简单的编码,非常简单地完成这个需求。

生产场景

:在一个项目完成测试和迭代,发布到生产环境之后,通常也需要进行持续的功能或可用性监测,那么则需要有各种正常或异常数据按照某种规则和定义,持续稳定地生产并送回平台,此时将持续集成场景中的case,只需通过简单配置,则可以进行生产的验证,以满足这个需求。

3、架构

数据生成器包括:模版变量提取,模版变量执行,模版变量替换组成,三部分组成

4、术语:

函数变量:模版和词典中以"$Fuc{"开头,以"}"结尾的字符串是一个函数变量。形如:$Fuc{itRad()},其中,itRad()为内置函数。不支持函数嵌套

词典变量:模版中以"$Dic{"开头,以"}"结尾的字符串是一个词典变量。形如:$Dic{ame},其中,ame为词典文件中的一个词典名。

自定义变量:模版中以"$Var{"开头,以"}"结尾的字符串是一个自定义变量。形如:$Var{tmp},其中,tmp是自定义变量名。自定义变量需要与函数变量或者词典变量联合使用,中间以"="隔开,且无空格。定义方式:$Var{tmp}=$Fuc{doubleRad(0,10,2)}。引用方式是;$Var{tmp}

5、内置函数

logtimestamp()生成当前13位时间戳(ms)。

ititRad()生成it正随机整数。

ititRad(Iteger)生成0~的随机整数。

ititRad(Itegers,Itegere)生成s~e的随机整数。

loglogRad()生成log正随机整数。

doubledoubleRad()生成0~1.0的随机双精度浮点数。

doubleRad(Itegers,Itegere,Iteger)生成s~e的保留位有效数字的浮点数。

Striguuid()生成一个uuid。

StrigumRad(Iteger)生成位随机数。

StrigstrRad(Iteger)生成位字符串,包括数字,大小写字母。

6、怎么用?

使用之前,需要引入simulatedata-geerator的jar包。

(1)编译:在simulatedata-geerator目录下执行:

$ mv clea package

在target目录下可以看到生成了simulatedata-geerator-0.0.1-SNAPSHOT.jar文件。应用中引入此文件作为依赖即可。

(2)编辑词典

词典中含有模版中需要的常量以及函数,词典文件以dic为后缀名,test.dic词典文件形如:    ame=xiaomig|||hameimei|||lilei    reqUrl=https://www.abc.com/a/b/c|||https://www.def.com/d/e/f    tmp=$Fuc{itRad(1000000000, 1999999999)}    b=testVar    ot=$Fuc{itRad(2)}

等号前面是词典名,等号后面是词典值,值可以是字符串,也可以是函数变量,多个值用"|||"隔开。如果有多个值,取值时,会随机取其中一个值作为词典变量值。 注意:词典文件放置在应用跟目录下的dictioaries目录下。

(3)编辑模版

模版文件以tpl后缀名,test.tpl模版文件形如: {    "ifos":{        "d_id": $Fuc{itRad()},        "versio": $Var{tmp}=$Fuc{doubleRad(0,10,2)},        "os_type": "$Dic{ot}",        "os": "$Var{tmp}",        "test": "$Dic{b}"        } }

 在模版文件中,在需要的地方放置变量(函数,词典,或者自定义),变量定义方式如第三点(术语)所述。在上面的模版中,versio取值是$Fuc{doubleRad(0,10,2)}的值,然后将$Fuc{doubleRad(0,10,2)}的值赋给$Var{tmp},在下面os处,以$Var{tmp}方式引用。这样,versio和os的取值就一样了。

(4)调用Api执行

//加载词典 DicIitializer.iit(); //创建模版分析器 TemplateAalyzer testTplAalyzer = ew TemplateAalyzer(tplName, tpl); //分析模版生成模拟数据 testTplAalyzer.aalyse();使用示例//加载词典(只需执行一次即可) DicIitializer.iit(); //编辑模版 Strig tplName = "abc.tpl"; Strig tpl = "My ame is $Dic{ame}, my age is $Fuc{itRad(1,5)}"; //创建模版分析器(一个模版ew一个TemplateAalyzer对象即可) TemplateAalyzer testTplAalyzer = ew TemplateAalyzer(tplName, tpl); //分析模版生成模拟数据 Strig abc = testTplAalyzer.aalyse(); //打印分析结果 System.out.pritl(abc);

功能介绍

Data-Processer 简介 1、是什么? 它是一个模拟数据生成器。我们在测试过程中,产生完整、全面的真实数据可能比较困难。我们可以根据需求,创建对应的模版和词典,利用数据模拟生成器生成我...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论