http://blog.csdn.net/lykangjia/article/details/53837070转载《IT冲浪者》mysql
上次在个人博客中讲述了sql
quest公司的spotlight系列软件,此次来扯淡一下quest公司的另外一测试辅助软件 datafactory(数据工厂),顾名思义,数据工厂是生产数据的,主要应用领域是性能测试中的大数据量测试, 也就是性能测试数据准备阶段。数据库
原理说明:多线程
经过和数据库进行链接后,对选定表的字段设定必定的插入规则,而后批量插入记录。Datafactory支持各类主流数据库(Oracle、DB二、MS SQL),甚至excel、access等。下面以以主流的oracle为例进行说明。并发
环境说明:oracle
Oracle10g,建立2个表,一个是testtable,一个testtable2。计划用datafactory往testtable中插入记录,其中须要读取testtable2中的部分字段信息。testtable表的字段类型以下(字段类型已经尽量覆盖多种状况):oop
Testtable表:性能
Testable2字段类型和testtable相似,里面记录状况以下:测试
编号大数据 |
姓名 |
性别 |
出生日期 |
毕业院校 |
分数 |
照片 |
考核状况 |
1 |
张三 |
1 |
2009-12-21 |
北京大学 |
85.5 |
<BLOB> |
<NCLOB> |
2 |
李四 |
0 |
2002-7-16 |
清华大学 |
78.2 |
<BLOB> |
<NCLOB> |
3 |
王五 |
1 |
1999-6-8 |
湖南大学 |
65.5 |
<BLOB> |
<NCLOB> |
详细操做描述:
安装完datafactory以后,进入file菜单下面点击new,而后选择oracle数据库类型。
而后会要求输入oracle的net服务,和链接的用户名和密码。
选择要插入记录的表。
进入设置插入表规则界面,对每一个字段的插入规则在右边界面进行设置。
设定规则,testtable表中编号字段为long integer类型,这里设定为插入顺序值(insert sequential values)。
设定规则,testtable表中姓名字段为vachar2类型,这里设定从testtable2表中查询结果随机取值。
设定规则,testtable表中出生日期为date类型,这里设定设定一个随机的时间,时间跨度为1982年-1988年的任何一天。
设定规则,testtable表中分数为为number类型,这里设定设定一个随机数值,数字跨度为50-85.5。
设定规则,testtable表中考核状况为NCLOB类型,这里设定随机从文件夹中的text文件得到内容。
设定规则,testtable表中照片为BLOB类型,这里设定随机从文件夹中的得到图片。
设定完毕后,点击上面的run按钮,成功执行插入。插入后的效果以下所示:
引起的另一个问题:
由于datafactory试用版只能每次插入100条数据,购买正版又没有钱,而大数据量的测试动不动就要100万级的数据,那要准备100万条数据但是要点10000次鼠标啊,那样的话,性能测试尚未开始,人就已经崩溃了。其实,有不少办法可以解决这个问题。如写一个多线程的程序,反复触发插入事件。固然最简单的办法,仍是用HP公司的Loadrunner录一段插入的脚本,而后设定几个虚拟用户(原理上也是多线程插入的方式)进行插入就能够轻松搞定了。
录制插入脚本,把整个插入操做看成一个事务。
设定场景,这里设定8个虚拟用户,并发插入,时限为5分钟。
场景运行状况,插入事务一共经过了2635个。
从上面的事务来看,一共有2635个事务经过,由于试用版每次插入100条数据,则应该插入的总记录数为:2635×100=263500条,进入数据库,执行查询,能够发现记录数正确。