1. 聚能聊>
  2. 话题详情

如何快速帮测试妹子造1个亿的业务数据?

拥有与生产环境一致的测试环境是所有测试MM的梦想,其中最头疼的事情就是造测试数据。
手工UI逐条插入过,效率太低,短时间内无法生成足够多的测试数据;写脚本,每次用时东改改西改改,造出来的数据长得都差不多。

大批量、多类型、随机数据、边界值在哪里?

开发GG你不懂测试妹子们的痛啊!

阿里云数据管理DMS新推出测试数据构建,并且,免费使用。目前支持MySQL数据库,提供随机、自定义、逻辑依赖、枚举4种生成方式,如姓名、手机号、邮箱等常用数据类型都可以直接生成,全程UI点击完成,测试数据直接入库,每分钟生成百万行数据。
入口:DMS登录数据库-数据方案-测试数据构建
image
image

另外,DMS还在不断打磨测试数据的构造,大家对日常测试造数据的吐槽就是产品努力的方向!

所以,欢迎大牛来聊聊:

1.哪些测试工作需要造数据,一般需要造多少条数据?

2.造数据占整个测试时间的比例有多少?

3.你都造过什么样数据?姓名?手机号?

有奖品哦,欢迎专业提需求的你!

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    阿里云代金券 x 4

  • 奖品二

    王坚新著《在线》 x 1

  • 奖品三

    云栖定制鼠标垫 x 2

45个回答

5

shawn.ss

1.哪些测试工作需要造数据,一般需要造多少条数据?

1.压力测试,基本上要求模拟真实环境的压测都是坑,数据的分布要求及其严苛,通常压测的数据量都是10w起,最多的造过一个2kw的大数据库,来测试某业务一年后不分库分表系统能不能扛住
2.数据可视化的功能测试,这类测试也是大坑,为了效果好看不惜血本去注水清洗拟合,无所不用其极就是为了一条曲线看起来科学优美,数据量不多,几百到几千的量级,脑细胞要死不少,至少是压测的一倍。。。。

2.造数据占整个测试时间的比例有多少?

说实话,某些需求本身就是造数据,基本上开发和测试时间可以忽略。
但大部分的开发任务,造数据其实特别简单,手工写3-5条数据验证正确性就完事

3.你都造过什么样数据?姓名?手机号?

装个X,
要求:
1.时间在5点到7点之间,符合期望为6点的泊松分布的页面访问数据50w条
2.金额符合N(2000,150)正太分布的用户充值金额数据10w条
3.符合幂律分布的针对类帖子的用户投诉记录10w条
4.符合某个奇葩概率密度公式的100个金融产品的8年净值,最后一周按小时给,其余按天给,(为了让画出来的净值曲线好看。。。。)

lyrewu 回复

亲是专业测试100年吗,要求真的不低,开发gg们来接需求吧。。哈哈

数据管理dms 回复

感谢亲的热心回复,数据分布这部分需求我们是有规划开发的,

  1. 压力测试目前主攻单域性能测试,也就是对单独模块做性能压测,验证其在大数量请求时的业务性能问题及数据空间增长情况,后面也会支持多表关联测试数据构建
  2. 除了数据分布的需求外,亲,还对常用数据类型有哪些需求呢?比如ip地址、用户等级、生肖星座等
shawn.ss 回复

说实话,财务类的数据压测和正确性测试要求最多,包括订单,充值,消费记录都是重点要伪造的记录,而且真实性要求很高,其他的注册和登录测试会用到用户数据,这块随机字符串做姓名,随机星座出生年龄都ok,记得有一次出现一个bug,测试数据用了2099年作为出生年(笑)

shawn.ss 回复

对了,想起来了,某些接口对userAgent有区分,我们还要处理浏览器的UserAgent的随机,一般是找几百个UserAgent来随机挑,ip的貌似没有怎么遇到过,大部分是胡编的ip,公司还没有达到需要通过ip取集群的地步,-_-!

俊杰杰 回复

水军推广

俊杰杰 回复

水军推广

knocking 回复

正太分布...是什么分布

评论
2

浮生递归 已获得阿里云代金券 复制链接去分享

代金券~~代金券~

1.哪些测试工作需要造数据,一般需要造多少条数据?
UI测试,0到大于一百条(假设每页10条)。测试列表页面无数据到大于10页的具体效果。测试信息显示页面,有具体数据时的真实效果。
dataV的各种图表组件测试。也需要各种不同量级的数据来测试实际效果。
压力测试。数据大于100万条时,进行各种数据库操作,测试响应速度。

2.造数据占整个测试时间的比例有多少?
看通过什么方式吧。用代码产生比较快,用手工当然会慢很多。但是肯定会控制所占的比例。不过为了控制时间占比,往往测试数据的质量就会下降。

3.你都造过什么样数据?姓名?手机号?
既然都造了,自然就是所有的数据啦。编号、姓名、手机、信箱、地址、籍贯、介绍、金额、来源、类型、Ip、时间、标记.....一般是造两条不同的,然后复制复制复制,看上去也会有点不一样的。。。我怎么觉得我回答的不在点上,是因为我在开会,不能集中精神思考吗?

lyrewu 回复

我怎么觉得你这么可爱,是因为我在集中精神思考吗?
哈哈,我在另一个话题已经打赏亲一张代金券啦,多多益善吗

浮生递归 回复
回复@lyrewu:

30块的代金券真不嫌多。我有几十个域名在外面,每个转入一次就能用掉一张。所以现在多一张代金券,我就多转一个域名到阿里云来

lyrewu 回复

收!

数据管理dms 回复

亲提到的数据类型(编号、姓名、手机、信箱、地址、籍贯、介绍、金额、来源、类型、Ip、时间、标记)我们这面会逐步支持到,测试数据构建功能目前只是试用版,后面会逐步增强,敬请亲使用~

评论
2

雷侠 已获得王坚新著《在线》 复制链接去分享

1.哪些测试工作需要造数据,一般需要造多少条数据?

因为我是学生,学习一门sql的时候,比较喜欢优化sql,执行效率提高。
就像我写代码的时候,我就喜欢钻研,如何让代码执行效率更高。
一般来说,我觉得几十条,几百条都测试不出来效率高不高,我觉得应该要上万条数据的时候,再去查询sql效率就会低了。
因为,我要实现分页,自然数据就不能少。


然后,看到了这个主题,发现还有这种操作。非常喜欢,而且操作起来也很方便,插入的数据还不是重复的。
非常赞,终于不用再为数据而发愁了。

但是,插入的有些数据为什么是 ???

TIM_20171104233926

难道是我操作不当?

2.造数据占整个测试时间的比例有多少?

因为,我要测试分页,那么我就要插入很多数据。
一开始的时候,我只有一张user表 id ,user_name,password。
然后,用java写循环生成一千条sql语句,再插入到数据库,首次插入大概花了1s-2s左右,不是很久。
但是数据大部分都是相同的,而且列还比较少,不是我想要的。

3.你都造过什么样数据?姓名?手机号?

编号,用户名,手机号,邮箱,居住地址,性别,出生日期。
描述,订单编号,订单日期,消费金额,收货地址....反正很多。

雷侠 回复

如果,可以的话我想要书😁

斩空 回复

亲,我们这面后台验证未出现中文乱码问题,能发下您的建表语句我们模拟下么?遇到问题我们一定会第一时间修复,感谢您的支持~

lyrewu 回复
回复@雷侠:

亲,你提到的问题,有时间的话可以帮忙复现一下哦~我们验证是没有问题的呢

雷侠 回复
回复@斩空:

发在这里吗?

雷侠 回复
回复@斩空:
如果没问题我就发这里了

CREATE TABLE test_user (
id int(11) NOT NULL AUTO_INCREMENT,
user_name varchar(50) DEFAULT NULL,
user_phone varchar(32) DEFAULT NULL,
user_email varchar(32) DEFAULT NULL,
user_createDate datetime DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

shawn.ss 回复

DEFAULT CHARSET=latin1,字符集选了英语字符集,自然中文会变成问号

评论
2

天涯有草 已获得云栖定制鼠标垫 复制链接去分享

1.哪些测试工作需要造数据,一般需要造多少条数据?
①如果是已经有的业务,更新版本的话可以从线上搬些数据下来测试对已有数据进行修改,加工,进行测试;
②新开发的业务,如果需求的数据量小就手动添加,量大的话用脚本生成一些数据用。
主要是要确保数据完整有效。

2.造数据占整个测试时间的比例有多少?

没太注意造数据的时间,一般有问题的时候及时补充...

3.你都造过什么样数据?姓名?手机号?

姓名手机号、身份证,URL、图片、地址、坐标等一些最基本的数据,还有部分业务上需要的
0

cofer 已获得阿里云代金券 复制链接去分享

  1. 压力测试目前主攻单域性能测试,也就是对单独模块做性能压测,验证其在大数量请求时的业务性能问题及数据空间增长情况,后面也会支持多表关联测试数据构建
  2. 除了数据分布的需求外,亲,还对常用数据类型有哪些需求呢?比如ip地址、用户等级、生肖星座等
钟隐 回复

压测的话,目前我们还未排入计划,后续会逐步纳入,也是吸纳大家观点的阶段,目前主要是希望生成的更加接近你需要的数据,通用数据类型,如果非敏感数据,我们会做常见的100种左右,更多的,我们会基于配置模板、样板数据等去处理。IP地址的话,我们还会再考虑下,这个会涉及法律问题;用户等级这个应该可以通过现有功能的枚举完成;生肖的话可以做,也可以通过现有功能中的:枚举或逻辑依赖来间接完成。

评论
0

夏之冰雪 已获得阿里云代金券 复制链接去分享

1.哪些测试工作需要造数据,一般需要造多少条数据?

很多业务都需要,举几个例子。

  1. 内容丰富度
    新项目往往需要,比如新闻模块,要造一堆假的新闻数据,填充产品页面,确保功能完善。
  2. 不同类型/特征数据
    银行贷款,不同阶段、不同贷款方式都是不一样的情况处理,为了让测试团队更快速进行测试,我们会针对每种类型造好多数据,以便让测试随便测。
  3. 列表功能
    一般涉及列表的地方,也要造数据,比如商品列表。

在做im时候,还造了大量的假用户,供测试妹子进行搜索功能、加好友功能等测试。

  1. 压力性能
    比如在开发某个笔记类app时候,针对一个用户,造上万的笔记。来测试,当一个用户自身数据量大的时候,会有什么bug,有没有服务器性能问题,app会不会崩。

2.造数据占整个测试时间的比例有多少?
主要根据业务来,不同业务造的数据难度、时间成本还是有差异的。
最简单粗暴的,批量创建注册用户,一般创造上万、最多百万就够了,上亿没试过。上万的话,十分钟内都能搞定。

比较难的、慢的情况也有,其实还是业务要求复杂的,比如造的数据要符合一定规则,时间要求啊(比如时间要按照规则进行分散)、类型要求啊,有的还要同时插入两个表里才能保证业务一致性,这种都比较慢。

3.你都造过什么样数据?姓名?手机号?
批量造用户、新闻内容
针对特定用户造大量的文档,测压

0

南阳风萧萧 已获得阿里云代金券 复制链接去分享

1.新系统开发出来之后进行逻辑流程测试、系统运行的的数据量进行压力测试、导出数据量等这些都需要造数据,至少上万条数据来估算负载;
2.针对开发出来的产品的功能复杂程度,造数据的时间不等,总体来说要占到整个测试的三分之一的时间吧;
3.订单号、姓名、手机号、Email、地址、交货日期、发货日期、商品订单号信息、图片、URL、金额、来源信息、类型、分类、店铺名。。。。。

0

王航 复制链接去分享

手机流量统计,天猫协同过滤,都要造大批量数据

lyrewu 回复

亲,能详细描述下么?

评论
2

北方的郎 复制链接去分享

1.哪些测试工作需要造数据,一般需要造多少条数据?
应该是新系统、新业务或者敏感数据吧。测试逻辑的话只要盖住大部分场景就行了。如果压测的话就要按照估算来做了。

2.造数据占整个测试时间的比例有多少?
如果要测特定逻辑就比较麻烦,时间也比较长。如果对逻辑要求不大,可以批量生成,就方便一些。

3.你都造过什么样数据?姓名?手机号?
除了姓名,手机等基础信息,还有商品信息以及订单,发货单什么很多啦。

1

uknow 复制链接去分享

1.哪些测试工作需要造数据,一般需要造多少条数据?
首先,我作为一个开发人员,在平开发过程中,为了程序的正常流程能跑通,我们需要自己做数据进行跑一遍流程,出现问题进行调试。
然后,开发转测试后,测试也需要做数据,有时候也会要求我们帮忙做数据,我们在做数据时一般是用在代码中用单元测试,for循环,一次性创建个百八十条数据,存入数据库中,供测试使用。

2.造数据占整个测试时间的比例有多少?
如果用程序执行来造数据,那么就不需要多长时间,但是如果表的字段特别多,而且对数据的要求或真实性很严格,那么得认真对待。如果不是很严格,那么就随便弄一些内容。
若是手动插入数据到数据库中,那么是相当费时的,效率低。

3.你都造过什么样数据?姓名?手机号?
造过的数据, 一般是 用户信息相关的,姓名、邮箱、手机号、出生日期、身份证号;
在平时做项目的过程中,造过的数据还有:
——机票相关的项目(真实性要求很高,不然无法测试成功的情况)
航班号、航空公司二字码、起飞时间、到达时间、起飞城市三字码、到达城市三字码、PNR、舱位、证件号码(身份证、护照等)、票价等

1

奥特曼超人 复制链接去分享

我不要工具,我要联系方式

0

平步清风 复制链接去分享

需要随机地名和自定义规则

钟隐 回复

随机地名会近期发布,不过会进行敏感词处理,不会生成真实地名;自定义规则已排入计划中。

评论
0

鸭题榜 复制链接去分享

真厉害,以前遭遇过cc攻击,分分钟几千次并发,直接把数据库搞死了,如果是写入的话,可以模仿一下这个

钟隐 回复

嗯嗯,数据库压测也是我们后续要去考虑的一个点,我们目前还主要考虑如何生成更为接近你需要的数据,压测会在这个基础上来做。

评论
0

绿色梦! 复制链接去分享

求人不如求己,回答0.0

钟隐 回复

可以的,云的思路更多是需要将更多共享能力抽象,将共享问题解决,达到集中,希望通过此一个点解决更多通用能力上的问题,也希望可以做得更好,大家可以更加专注于自身的业务背景。

评论
0

不忘初衷8 复制链接去分享

我要对我的系统进行压力测试,这是一个最麻烦的事情。

钟隐 回复

嗯,DMS去做数据库方面的数据构建,目的就是抽象出大部分公司都在造数据方面的时间花费非常麻烦,我们希望通过产品能提升大家的效率。

评论
0

不忘初衷8 复制链接去分享

我要对我的系统进行压力测试,这是一个最麻烦的事情。

钟隐 回复

DMS后续会提供类似的功能,让模拟数据更为接近真实应用,一次配置,多次测试

评论
0

gtysmoto 复制链接去分享

造假~!!!!!!!!

钟隐 回复

测试数据构建真实的目的,还是让生成的数据,尽量接近于真实的哦

评论
0

光光~ 复制链接去分享

java多线程,找台性能好点的多核机器,很快的

钟隐 回复

嗯,自己生成也是可以的,也可以更快,有些时候,就是看制造数据的时间成本和精力了,云本身上的事情,包括运维高可用优化等,都可以自己做,存在的目的不是替代,而是将精力较多而重复的内容的工作量以及能力抽象,每一个公司可能都需要去考虑的问题,我们就会去考虑一下,大家可以更加专注自身的业务本身,业务理论上可以发展更为迅速。

评论
0

zijiejiang 复制链接去分享

--- The error occurred in ibatis/mysql/data/generate.xml. --- The error occurred while applying a parameter map. --- Check the generate.addNewGenerateList-InlineParameterMap. --- Check the statement (update failed). --- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dms.generate_list' doesn't exist
今天早上使用的,什么原因?

斩空 回复

麻烦问下,报错时当前访问的域名是哪个,dms-rds.aliyun.com dms-app.aliyun.com 还是其他域名?

zijiejiang 回复

待我深入研究下哈😄

评论
0

1770805116548188 复制链接去分享

手工录入

钟隐 回复

少量数据,手工录入还是没问题的,可以尝试下,目前还是试用版,后续正式版会更为强大,目的是让你的工作更高效。

评论
3