51Testing软件测试论坛

标题: 录制脚本的一个问题 [打印本页]

作者: Diablo    时间: 2006-10-15 11:33
标题: 录制脚本的一个问题
在录制一个跟数据库有关的应用软件的测试脚本时,loadrunner会把所有从数据库中读取的数据记录下来,就是这个函数:lrd_fetchx。由于数据量很大,所以导致在脚本还没有录制完的时候,就会提示out of memory。
请问有人知道怎么解决这个问题?能不能让loadrunner不记录这些数据呢?这些数据对测试来说一点用都没有
作者: xingcyx    时间: 2006-10-15 12:33
如果你确定这些数据在后续的脚本中无需用到的话,可以在录制的过程中,到了读取数据这一步的时候,点暂停按钮,等它读取完以后再继续录制。
不过建议你还是要多加分析,因为如果该应用软件要下载这么多无用的数据到客户端,那么可能在这个地方会导致一些性能上的问题,你可以多加关注。
作者: Diablo    时间: 2006-10-15 14:14
怎么说呢....所有的数据处理全部在客户端完成,服务器只是提供了数据存储的地方而已。软件是用VFP写的,实际上的测试就是软件读写数据库的操作,但是我并不关心读出和写入的数据究竟是什么,我只关心读写的动作对数据库服务器的影响而已.....所以到了读写数据的时候,肯定不能暂停的,否则就不用测了…………
作者: xingcyx    时间: 2006-10-15 14:26
读写动作对数据库服务器的影响?
这个操作本身就是和数据量的大小有关的吧?
大数据量和小数据量对服务器的影响肯定是不同的。
作者: Diablo    时间: 2006-10-15 14:34
是的,但是我并不需要对这些数据进行处理,所以读完就可以丢掉了...问题就在loadrunner在录制脚本的时候,会把所有读出来的数据全部保存下来....比如,软件执行了10条select语句,第一条执行完以后,执行第2条select时,第一条select筛选出来的数据已经没有用了,我并不会去处理这些数据,完全可以丢弃....但是loadrunner会保留下来…………这样在多次对数据库进行读操作以后,保留的数据占用了大量的内存空间,导致脚本无法继续录制......
作者: Diablo    时间: 2006-10-15 14:48
我看了lrd_fetchx这个函数在头文件里面的说明,里面有个参数是这么说的:
mpfjPrintRow        A pointer to a function for printing each fetched row, or NULL if printing not required. Note: The function is not called when "Data returned by server" is not selected in "Extended logging" of "Run-time settings".

这个后半部分说的应该是可以不记录从服务器返回的数据,但是这个是在Run-time setting里面的设置,不是录制脚本的设置。我就想有没有什么录制脚本的设置,可以让loadrunner不记录从服务器返回的数据呢?
作者: jackloo    时间: 2006-10-15 22:31
因为你是采用录制的方式做的,所以当数据量大的时候会有这样的问题,那你可以采用手工写脚本的方式来做啊。
如果是open后不需要了的recordset,那你用完后就把这个recordset给free掉就好了啊。
另外,修改一下你的SQL语句的条件,比如加个"top 10"或者"rownum=10"之类的,那在录制的时候就没有这样的问题了。
关键,测试是需要开发功底的,“不懂开发就去测试”是我们国内对测试最大的认识误区。
作者: Diablo    时间: 2006-10-16 10:00
手工写不是不可以,只是那样的话花的时间恐怕要很长很长了…………算了,只能把整个流程分成几部分来单独测试了.........




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2