您的位置:首页 > 其它

【总结】大规模数据测试,数据准备时需要注意的问题(【保护已有数据】【大规模数据影响普通测试】【不要着急删除数据】)

2012-05-17 21:00 561 查看
有时我们要进行大规模的数据测试,要往DB中插入大量的数据。

一下有三点是我们要考虑的:

【保护已有数据】

这么做有两个目的

1.我们只想对我们插入的数据进行测试。

2.我们在测试结束之后,还要删除我们插入的数据。

如何做

(可以作为区分的条件:程序中抽出数据时的条件,作为我们用以区分的条件)

举例

比如:抽出数据的条件是 select * from user where updatetime = 当前系统时间之前的一个小时

现在时间是20120517

这样我们在做数据之前,把系统中已有的数据的 updatetime 都调整成将来很远的一个日子 比如 20120626

这样程序执行时,便不会对我们的寄存数据产生影响。

(备考:对于插入的数据,我们使用存储过程,定义一个比较早的时间,比如20120501)

这样便可以达到以上那两个目的了!

好处:

保护寄存数据不受影响。

------------------------------------------

【大规模数据影响普通测试】

这一点是今天下班回家

在车上时,突然想到的!

也正是因为这一点,才写了这个总结。这一点才是最重要的!!
之前总是觉得,大规模的数据做成之后,就无法再实行普通的测试了。

因为,一个select条件一下子抽出了上百万条数据。

但是并不是这样,因为我们忽略的一个问题,

就是我们可以通过更改抽出条件,使得这大规模的数据不被抽出。

还是上面提到的抽出条件 updatetime 现在时间是20120517

寄存数据是20120501

我们可以把这些数据都调整为 20120505

(大规模数据更改时间,虽然会慢,但怎么都比把数据删了,再做数据强)

这样,大规模的数据对于我们的普通测试便不会再产生影响。

(除此之外,如果工程允许debugdate,我们还可通过修改debugdate来实现,

不让百万条数据被抽出.我们的这个工程有这个功能,可以设置调试时间,

比如把调试时间设置成20120202,那么程序运行时,对应程序来说,

当前的系统时间便是20120202)

好处;

让我的测试能顺利进行,不受他会、规模数据的影响

---------------------------------------

【不要着急删除数据】

每次做数据都是一件非常麻烦的事情。

比如这次,做一次300万件的数据(postgre和oracle两端)大概需要6个小时。

删除这些数据,需要1个半小时左右的时间。

当我们在完成一次性能测试之后,发现性不好,还会进行性能测试时。

不要急着删除这些数据,就算在下一个性能测试之前,还有普通的机能测试。

我们也可以留着这些数据,通过上面的方法。

使大规模数据,不对我们的普通测试产生影响!

好处:

这样,我们便可不必每次都花费大量时间准备数据 删除数据。

准备一次即可!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐