PCYO 评测夜鸥 六度计算世界

少年强 则 中国强

千万级测试数据生成方法

 在性能测试中,我们经常会涉及到测试数据,对于测试数据我们可以为两种:一种是执行测试用例中使用的测试数据;另一种是在大数据量下测试时需要的测试基础数据。两者的主要区别是在于是否会在测试中直接用于测试执行。测试基础数据可以转化为测试数据。在这里主要说明测试基础数据。

  一个系统经常会规划多年的业务规模,并对其性能提出要求。在测试设计时就需要测试在系统运行了多年时的性能,此时数据库中会有大量的历史数据,我们在测试时需要首先构造这些历史数据,我们称之为基础数据,这种情况的测试称为大数据量测试。由于构造数据的量级不同,我们会考虑采用不同的构造数据的方法。

  常用构造基础数据的方法有:

  1、使用自动化测试工具;

  2、使用专用的测试数据产生工具;

  3、使用数据库脚本语言直编写存储过程等产生;

  4、使用其他的辅助工具产生;

  下面讲解一下各种数据产生方法的优缺点。

  1、使用自动化测试工具

  使用自动化测试工具如QTP、WinRunner、Robot等录制脚本,参数化需要构造的业务数据,然后运行脚本,通过反复运行业务场景在后台数据库中产生业务数据。

  该方法的使用场合:不熟悉后台数据库结构,业务数据量需求不是很大。

  优点:测试脚本录制一遍,可以反复运行。

  缺点:参数化数据,需要对业务规则或数据库表有一定了解,否则会导致运行失败。

  2、使用专用的测试数据产生工具

  常用的数据构造数据有Quest公司的DataFactory、开源DBMonster。

  DataFactory 是一种快速的、易于产生测试数据工具,它能建模复杂数据关系,且有带有GUI界面。DataFactory是一个功能强大的数据产生器,它允许测试人员毫不费力地产生百万行有意义的测试数据。在使用中首先读取数据库中表的schema,即表的定义之类的内容,以列表的形式显示;然后由用户定制要产生数据的具体内容,如数字范围、字符串长度、要产生数据记录的个数等等,最后运行工程,生成数据。

  DBMonster (http://dbmonster.kernelpanic.pl)是一个Java的开源项目,通过JDBC方式连接数据库,因此可以在任何支持Java和JDBC的平台上运行。DBMonster开发的原意是为数据库开发者服务,可以协助产生大量的规则或不规则数据,便于数据库开发者基于这些数据进行数据库的调优。DBMonster通过两个XML文件(配置文件和 schema文件)控制数据产生的行为,配置文件指明需要连接的数据库、连接使用的用户名和口令、需要操作的sheme、重试次数等全局设置,而 scheme文件则指明针对每张数据表的每个字段产生数据的规则。

  3、使用数据库脚本语言直编写存储过程等产生

  要利用该方法构造基础数据,需要对后台数据库的表结构有一定的了解,例如表之间的关联关系、表的自增长主键如何实现的、表中的特殊字段的代码如何产生等。在熟悉表结构的基础上编写存储过程。对于复杂业务系统其数据库结构往往也相当复杂,可编写多个存储过程去分别产生各个表中的数据,然后由一个总的存储过程控制产生数据的规则和数量等。

  该方法的适用场合:对数据库表结构非常熟悉,并且熟悉相应的存储过程编写。

  优点:在数据库后台执行,效率非常高。

  缺点:需要花大量的时间熟悉表结构和存储过程的调试。

  4、使用其他辅助工具

  使用PowerDesigner工具。

  首先从数据库中Reverse Engineering出来数据库的Schema,然后设置测试数据所需要的Profile,以及各个表所需要的测试数据量,再生成Insert脚本,最后通过数据库的命令行程序执行这个SQL脚本将数据Insert到数据库中。对于不同的数据库命令行程序不同,比如对MS SQL Server是osql,对Sybase ASE是isql,对Oracle是sqlplus等。

  该方法的使用场合:对数据库结构不熟悉,同时需要产生大量业务数据(如千万级)。

  优点是:做了相应设置之后,Insert脚本自动生成,产生数据时不需要有业务数据。

  缺点是:对于千万级的测试数据可能要分成若干个SQL脚本,分别产生,并行运行。对Oracle之类的数据库尤其要考虑时间日期以及时间戳类型的字段的值得处理问题。

  使用PL/SQL Developer工具

  在该工具中【Tools】菜单栏下有【Data Generator】菜单,利用该工具可以针对具体的表构造利用其构造规则,设置需要产生的数据。

  TOAD工具:

  TOAD工具与PL/SQL Developer工具类似,也是数据库客户端管理工具。TOAD套件中集成了数据生成测试工具和压力测试工具。数据生成测试工具有助于开发人员快速生成大量有实际意义且引用关系正确的测试数据,简化应用的测试过程。

  使用Informatica工具:

  Informatica是数据挖掘工具。可利用该工具构造海量数据。在现有的业务数据的基础上,使用Informatica工具,将现有的业务数据(平面文件数据或数据库表中的数据)多次重复装载到数据库中,可以快速构造出千万级的大数据量数据,且生成的大数据量数据在质量和可用性方面有保障。

  优点:生成速度很快。

  缺点:使用这种方法数据库相应的表中必须有相应的数据,且数据重复利用时也要考虑字段值重复问题。

Thanks 4 http://www.uplook.cn/index-Index-show-view12397.html

本原创文章未经允许不得转载 | 当前页面:PCYO 评测夜鸥 六度计算世界 » 千万级测试数据生成方法

评论 1

  1. 赞!!!

    wangqh08 2012-07-24    回复