大数据量测试之我见

一个对公软件系统没经过大数据的检验,那么在正式使用时就可能出现各种各样的瓶颈问题。但无来由的要求要支撑多大天方夜谭数据量级的考验,那也是一种资源的浪费。那什么系统需要做大数据量测试?需要怎么做大数据量测试?怎么生产出尽可能真实的大数据量?这些都是本文希望给出的答案。

大数据量测试

什么软件系统需要做大数据量测试呢?

只要做的软件系统不是孤芳自赏,需要提供给一定数量的用户使用的,就应该做数量级测试。比如一个商场系统,一个论坛,一个培训教育网站,这样需要提供给大量用户使用的,就需要在发布之前做好这方便的设计考虑,并做好一定数量级的测试。一个系统,有可能在单用户下能够非常良好的运行,但可能在多用户下就会发生资源挣用,从而使系统崩溃。

而大数据量测试主要是针对对数据库有特殊要求的系统进行的测试,主要分为三种:

1.实时大数据量:模拟用户工作时的实时大数据量,主要目的是测试用户较多或者某些业务产生较大数据量时,系统能否稳定地运行。

2.极限状态下的测试:主要是测试系统使用一段时间即系统累积一定量的数据时,能否正常地运行业务

3.前面两种的结合:测试系统已经累积较大数据量时,一些实时产生较大数据量的模块能否稳定地工作。

需要怎么做大数据量测试呢?

大数据量不是越大的数据量越好,特别是资源有限的情况下。我曾经遇到过,一个近几年都可能只有几千上万用户使用的系统,领导要求支持10万级的并发量测试,这种情况往往在有百万级注册用户时进行。因为资源的制约,这个任务是令团队非常沮丧的。

我一直认为大数据量的量级不是随口说出来的,应该是根据已有的用户情况,以及市场未来的发展计划紧密结合分析出来的。如果是一个原有系统的升级,就应该根据当前所注册的用户量,市场运营计划,未来几年规划的用户发展规模,最终得出需要做的数量级测试。如果是一个新的系统,那就需要根据市场分析,在未来一年或几年可能发展的用户规模,确定测试的数量级。

确定了数量级就是怎么准备数据了,数据应该尽可能真实

我们都知道,现实中,人们所注册的账号,设置的密码等都是千奇百怪的。如果我们的测试数据都是简单的数字,或者字母组成,与实际情况肯定存在着较大的差异。所以我们做测试,有条原则就是测试数据尽可能真实。如果已有一定当量用户数据的积累,那直接利用当然是最理想的。

如果没有,就需要我们使用一些工具,按照用户的使用习惯去生成了。我推荐的工具是DataFactory,这款工具可以连接数据库,根据一些基础数据生成用户所想要的数据。基础数据可以在网上查找下载。

同时,现在系统越来越复杂,测试数据应该考虑的更为全面。比如一个分布式系统,除了考虑用户数据的真实性,可能还需要考虑用户IP的真实模拟。这样才能使负载均衡起到作用。

具体的测试工具就不多说了,Loadrunner,jmeter,tsung等都可以根据实际情况进行选择。



留言