51Testing软件测试论坛

标题: QTP存在内存泄露? [打印本页]

作者: higkoo    时间: 2007-8-31 09:04
标题: QTP存在内存泄露?
某个程序,本想用LoadRunner直接模拟数据,但脚本中关联太多,老有错误,搞不定!

  只好用QTP来慢慢加数据了


我长时间运行QTP,发现它很占用内存,运行一晚上QTP.exe占内存427M还是382的虚拟内存。

有这么夸张吗?只是很简单的一个脚本,加了个For循环 for i = 1 to 10000

用内存整理工具清理内存,QTP内存一下减到58M,清理完毕

不过几秒钟,QTP.exe占用内存马上又升上了419M。

  重启QTP,内存慢慢就升到了49M,然后变化不太大。


今天早上我关闭了QTP,当时没有看内存占用情况,就直接报错了,下图所示。


难道QTP也有内存泄露?或是脚本问题?系统问题?

谈谈你的看法……
作者: 51mobile    时间: 2007-8-31 09:09
QTP是什么版本的,我用8.2的好像没碰到过
作者: higkoo    时间: 2007-8-31 09:16
标题: Ver 8.2
原帖由 51mobile 于 2007-8-31 09:09 发表
QTP是什么版本的,我用8.2的好像没碰到过

我的也是 Ver 8.2 ,下附图。

有兴趣可以试一下,找个有弹出窗口的网站做试验:
for i=1 to 99999
systemutil.run "Iexplore.exe","http://testserver/site"
Brower("Windows").Page("Site").link(".....")
....set " "
....set " "
Brower("Windows").Page("Site").sync
Brower("Windows").close
next
让这个循环跑48个小时,你查看QTP开始的内存和若干小时后的内存比较吧。
而且,你会发现QTP运行时间久后,再就启动不起来了,点任何按钮或菜单都是一闪而过,关闭再打开就正常了……

[ 本帖最后由 higkoo 于 2007-9-1 09:32 编辑 ]
作者: Jimmyshao    时间: 2007-8-31 10:02
Maybe D版:)
作者: yuandjing    时间: 2007-8-31 10:39
唉,本来想用purify测试一下QTP是否存在内存泄漏的,后来purify卡死了,重启了 :(
作者: milan330330    时间: 2007-8-31 11:00
我用的也是8.2,发现长时间运行QTP后,然后在开其他程序会变得很慢,例如:打开WORD ,EXCEL之类的~~
作者: higkoo    时间: 2007-8-31 11:45
标题: 有问题
原帖由 yuandjing 发表
唉,本来想用purify测试一下QTP是否存在内存泄漏的,后来purify卡死了,重启了


测试内存我就没试过了,这方面没什么经验。看表面现象确是有问题的。

原帖由 milan330330 发表
我用的也是8.2,发现长时间运行QTP后,然后在开其他程序会变得很慢,例如:打开WORD ,EXCEL之类的~~


  我这边使用QTP录制和回放过程中在IE中不能切换输入法,一切换IE就死掉了,重装QTP或重装系统都没用。

我在之前Company里用也是这样的,换虚拟机试过,有的是正常有的不正常,尚未知规律。


反正挺郁闷的,只能输入英文后,在脚本里改……sdlkfj7

[ 本帖最后由 higkoo 于 2007-9-3 08:58 编辑 ]
作者: 51mobile    时间: 2007-8-31 13:01
原帖由 higkoo 于 2007-8-31 11:45 发表


测试内存我就没试过了,这方面没什么经验。看表面现象确是有问题的。



  我这边使用QTP录制和回放过程中在IE中不能切换输入法,一切换IE就死掉了,重装QTP或重装系统都没用。

我在之前Company里用 ...



嗯,切换输入法的问题,我倒是有碰到过,不过我记得使用微软拼音输入法就不会有问题, 或者你默认的输入法改为中文的.这样启动QTP后的输入法也是中文的
作者: higkoo    时间: 2007-8-31 13:08
原帖由 51mobile 于 2007-8-31 13:01 发表
嗯,切换输入法的问题,我倒是有碰到过,不过我记得使用微软拼音输入法就不会有问题, 或者你默认的输入法改为中文的.这样启动QTP后的输入法也是中文的


这确实是个办法!  (没有办法的情况下,我也是这么做)  

微软拼音我就没试过了,偶用五笔。

操作QTP时使用 五笔加加 中英文都可以输入  sdlkfj6
作者: anglix    时间: 2007-8-31 13:11
标题: QTP太占内存了
我的机器用了QTP,整个机器都变慢了.

我的内存总共才512  CPU 1.7

用起来很费力sdlkfj9
作者: milan330330    时间: 2007-8-31 13:57
标题: 回复 #7 higkoo 的帖子
嗯,切换输入法,我这里也会挂~呵呵~~
作者: kangaroo    时间: 2007-8-31 15:18
还有这事情?那跑QTP的机器不得多加些内存?
9.2也这样吗?
作者: yuandjing    时间: 2007-8-31 17:33
原帖由 yuandjing 于 2007-8-31 10:39 发表
唉,本来想用purify测试一下QTP是否存在内存泄漏的,后来purify卡死了,重启了 :(

哈哈,我测出内存泄漏了,不过QTP的内存泄漏属于可控的范围之内,并没有严重的内存泄漏
(见图)
[attach]32249[/attach]
作者: 看雪时节    时间: 2007-8-31 17:43
yuandjing 很强悍
作者: higkoo    时间: 2007-9-1 09:33
标题: 高人
原帖由 yuandjing 于 2007-8-31 17:33 发表

哈哈,我测出内存泄漏了,不过QTP的内存泄漏属于可控的范围之内,并没有严重的内存泄漏
32249



牛!    能做到这一步的朋友,已经快成为 孤独求败了 sdlkfj6
作者: yabest    时间: 2007-9-1 20:55
原帖由 yuandjing 于 2007-8-31 17:33 发表

哈哈,我测出内存泄漏了,不过QTP的内存泄漏属于可控的范围之内,并没有严重的内存泄漏
(见图)
32249


看来QTP也不能运行太久了,要隔段时间退出一次,不然测试环境就不正常了!
作者: hsjzfling    时间: 2007-9-1 21:30
本想测下QTP的运行效率,执行
Dim i = 0
Services.StartTransaction "Random"
Do
  i = i + 1
  Randomize
  Loop Until Rnd = 0.9999999
Services.EndTransaction "Random"
msgbox i
半个多小时后回来一看QTP已经一动不动僵在那了...
作者: walker1020    时间: 2007-9-1 23:24
用QTP去进行性能测试就有一定的创意了, 去测试QTP的性能问题 更是个大胆的创意了。这恐怕是开发QTP的开发者永远都没有想到的问题吧。呵呵!
作者: zlszls    时间: 2007-9-2 02:16
高手,佩服
作者: shanxi    时间: 2007-9-2 15:19
即使是打开windows notepad

purify也会抱内存泄露
作者: higkoo    时间: 2007-9-3 09:39
标题: 可能和IE也有关系:
事件查看中也有IE的错误:

事件类型:        错误
事件来源:        Application Error
事件种类:        (100)
事件 ID:        1000
日期:                2007-9-3
事件:                6:05:16
用户:                N/A
计算机:        TESTSERVER
描述:
错误应用程序 iexplore.exe,版本 6.0.3790.3959,错误模块 urlmon.dll,版本 6.0.3790.4073,错误地址 0x00049c3b。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 69 65 78   ure  iex
0018: 70 6c 6f 72 65 2e 65 78   plore.ex
0020: 65 20 36 2e 30 2e 33 37   e 6.0.37
0028: 39 30 2e 33 39 35 39 20   90.3959
0030: 69 6e 20 75 72 6c 6d 6f   in urlmo
0038: 6e 2e 64 6c 6c 20 36 2e   n.dll 6.
0040: 30 2e 33 37 39 30 2e 34   0.3790.4
0048: 30 37 33 20 61 74 20 6f   073 at o
0050: 66 66 73 65 74 20 30 30   ffset 00
0058: 30 34 39 63 33 62         049c3b
作者: anglix    时间: 2007-9-3 10:05
标题: 好玩
有意思……
作者: yuandjing    时间: 2007-9-3 15:53
原帖由 higkoo 于 2007-9-1 09:33 发表



牛!    能做到这一步的朋友,已经快成为 孤独求败了 sdlkfj6

过奖,我离独孤求败还差的相当远,共同学习中~
作者: jackymail    时间: 2007-9-4 09:58
很厉害,同时也感觉很可悲。
你用的全部是盗版软件,将来在大公司能用到你的技能的机会很小。。
我只是随便说说,别介意。
原帖由 yuandjing 于 2007-8-31 17:33 发表

哈哈,我测出内存泄漏了,不过QTP的内存泄漏属于可控的范围之内,并没有严重的内存泄漏
(见图)
32249

作者: yuandjing    时间: 2007-9-4 11:26
原帖由 jackymail 于 2007-9-4 09:58 发表
很厉害,同时也感觉很可悲。
你用的全部是盗版软件,将来在大公司能用到你的技能的机会很小。。
我只是随便说说,别介意。

呵呵,没关系,我觉得做测试的就要有测试的专业思维,这是最重要的
就算以后大公司不能用正版也没关系,我还年轻,有时间和精力再学习
天行健,君子以自强不息 :)
作者: higkoo    时间: 2007-9-4 13:19
标题: 这个话题已经讨论过了
原帖由 jackymail 于 2007-9-4 09:58 发表
很厉害,同时也感觉很可悲。
你用的全部是盗版软件,将来在大公司能用到你的技能的机会很小。。
我只是随便说说,别介意。



  软件D不D版,这个问题,其实很多地方也讨论过了

  这里一般只针对技术而言

别说是测试软件,我们自己开发的程序,在外面一样被别人盗版,你说怎么办?

    现阶段的国情就是这样的,也难怪那美告咱了
作者: C060706    时间: 2007-9-6 15:18
标题: QTP 8.2
公司电脑的配置是双核,3.3的CPU
原以为,这个电脑无敌!那知道跑跑,QTP在抓对象的时候,本来正确的是OracleApplication的,但是变成了JavaApplication了,恼火呀!只有重启电脑了

再有,在跑QTP时,久了,在点击按钮时候,就不动了!一点变灰色了,不动了!
作者: lsz7741    时间: 2007-9-6 22:08
我的768M的内存,循环个4次,电脑就自动重启了
作者: wtucel    时间: 2007-9-7 09:13
拜托,什么是内存泄露??搞清楚再说吧,内存泄露是指程序在执行结束之后没有释放内存吧,按你说的运行QTP的时候占了400多内存,关了QTP就只有40多M了,正说明QTP是释放了内存的啊。那里又泄露了??
任何程序运行之前,系统都要分配内存的吧,400M的内存只能说明QTP对内存要求比较高,512是最低要求。
作者: wtucel    时间: 2007-9-7 09:22
原帖由 C060706 于 2007-9-6 15:18 发表
公司电脑的配置是双核,3.3的CPU
原以为,这个电脑无敌!那知道跑跑,QTP在抓对象的时候,本来正确的是OracleApplication的,但是变成了JavaApplication了,恼火呀!只有重启电脑了

再有,在跑QTP时,久了, ...


这跟你的电脑配置和内存这些都没有关系吧,识别不了是插件中的异常或浏览器设置问题,重启电脑后又可以了的话正说明你插件里的某个dll异常而已。

QTP软件本身不可能会内存泄露的,说起人家一个专业作测试的大公司会犯这种低级的错误么??

我也出现过你说的那种情况,是因为我用MTM调QTP脚本的时候发生死锁而已。
作者: higkoo    时间: 2007-9-7 10:36
原帖由 wtucel 于 2007-9-7 09:22 发表

QTP软件本身不可能会内存泄露的,说起人家一个专业作测试 ...


程序与复杂,是难以预料的,和操作系统一起,N多可能性,复杂!
作者: jackymail    时间: 2007-9-7 12:14
不明白你说的什么。
我是提醒他有可能学无以致用,不如专心用一个盗版软件学到好,他用了很多,公司里面是不会花钱购买那么多软件的。。。。不多说了。。。别回复,我不再看这个帖子。
原帖由 higkoo 于 2007-9-4 13:19 发表



  软件D不D版,这个问题,其实很多地方也讨论过了

  这里一般只针对技术而言

别说是测试软件,我们自己开发的程序,在外面一样被别人盗版,你说怎么办?

    现阶段的国情就是这样的,也难怪那美告咱了

作者: ppent    时间: 2007-9-7 14:53
标题: 回复 #13 yuandjing 的帖子
这东东好像有点问题,我当时试了好几个应用程序,都有内存泄露。不知道为什么。
如果测试结果是真的的话,那泄露都挺可怕的了,这么多个地方,每处都有几十到几百K的泄露
作者: 测客    时间: 2007-9-8 21:54
标题: thanks
ding
作者: higkoo    时间: 2007-9-11 09:12
标题: 出错贴
事件类型:        错误
事件来源:        Application Error
事件种类:        (100)
事件 ID:        1000
日期:                2007-9-11
事件:                8:26:41
用户:                N/A
计算机:        TESTSERVER
描述:
错误应用程序 QTPro.exe,版本 8.0.3425.3,错误模块 mfc42u.dll,版本 6.6.8063.0,错误地址 0x00029168。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 51 54 50   ure  QTP
0018: 72 6f 2e 65 78 65 20 38   ro.exe 8
0020: 2e 30 2e 33 34 32 35 2e   .0.3425.
0028: 33 20 69 6e 20 6d 66 63   3 in mfc
0030: 34 32 75 2e 64 6c 6c 20   42u.dll
0038: 36 2e 36 2e 38 30 36 33   6.6.8063
0040: 2e 30 20 61 74 20 6f 66   .0 at of
0048: 66 73 65 74 20 30 30 30   fset 000
0050: 32 39 31 36 38            29168
作者: xsheep    时间: 2008-5-6 00:00
顶起,此话题可继续引申
作者: liangjz    时间: 2008-5-6 00:52
purify这个工具曾经用过,也存在误报的可能。

可以结合微软的leaddiag 工具多看看。

我们现在用QTP 9.2 执行自动化场景1个多小时,一切运行正常




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