原创日志转载请标明出处与连接! 大家的支持是我的动力!_______卢晨之 (luchenzhi@21cn.com/@hotmail.com)

【关于如何解决QTP后期运行速度】

上一篇 / 下一篇  2008-09-11 12:41:13 / 个人分类:QTP

查看( 3971 ) / 评论( 38 )
51Testing软件测试网 `E[,jg{l ?-G

【关于如何解决QTP后期运行速度】     51Testing软件测试网D\-Z#]`8`m.W
        目前项目中的QTP脚本运行速度,会随着时间的增长而脚本的速度降低,特别是跑了7,8个小时后这种情况越是明显。脚本主要偏向描述的使用,对象库为辅。导致了其中的原因个人分析大概有一下几点:
?S.C!j0Q,Q qH'A_ b0        1,PC机本身的问题。有时候更糟糕的是提示虚拟内存不足(2G物理内存3G虚拟内存)。大家都有这样的感觉,就算不跑QTP,PC机在自己运行一段时间后,操作响应速度会很明显下降,这个和机器性能有很大关系,一台服务器与一台PC机器跑一个晚上的脚本第2天会发现PC机的程序已经跑不动了,即使有做脚本错误恢复处理,包括重启IE,设置标签等方法再跑,但还是跑不动。51Testing软件测试网v!Q cY-N:P.g

#MH/h$s5NEJ^4Y~ Us&k0        2,系统庞大,如果大概有2100个不同web页面,当脚本跑不到一半时候速度也会明显下降,系统的临时文件,cookies等的增多,所导致的响应速度降低,会出现IE呈现白色page不无法操作的情况。
Q&r7N%O/S4p3z:C0
4N ?%C%f.L~2M7U0        3,脚本在编写过程,忽略对对象的释放操作,这个或者是非程序员的一个通病吧,因为在小的程序或者脚本中,对象释放与否看不出什么效果,但小数怕长计,也会导致QTP本身所占用的系统资源增多。
!R IjJ,Gjj T8z9R051Testing软件测试网#W;GJ Ee#Vb lu
        4,脚本编写思想。脚本中过度偏向递归使用,深度越大,函数调用与递归增多,对象增多等,会导致QTP到后期时候速度会有所回落,有时也会让QTP出现假死状态,有可能是内存溢出的情况发生。51Testing软件测试网4kg f|A
51Testing软件测试网2ky0qN"j$TwT
        5,过分依赖错误处理与智能对象识别。或者很多人说,智能识别不推荐使用,但是,当一个脚本和滚雪球一样,递归也多了,程序的可控性就降低,跟踪难度增大,脚本的维护成本就增多,所以选择维护与开启智能识别时候,后者有更大的优势。由于依靠了智能识别,有时候一些结果报告中会看到很多对象识别不到而懒得去找原因。积累多了问题也会慢慢浮现出来。
Q6y!ObO!|+h i0        
;_(U6z+U&o*g2X0        所以如何在QTP的运行过程中,及时的释放系统资源有着很重大和深远的意义。51Testing软件测试网o ?{uE.g"N+H

51Testing软件测试网%B$K;f] k6f9`D

51Testing软件测试网5f ds"?2?
经过和大家讨论的结果还有与实际的结合,反复测试等到:
-y4Tbt\ j%^{K01,引起问题的主要是QTP,IE的内存无法很有效的释放导致
)A&t(B-op$Z02,脚本问题51Testing软件测试网x Ylz'w
3,AJAX技术的使用51Testing软件测试网/d9aiA8t-|&IO
51Testing软件测试网BFA W4U&N(nP-s
51Testing软件测试网QrLBAb!e
解决方法:
wJ aG.zF'{0  1,使用工具是不可能的了,这个本人已经测试过了。QTP,IE都无法删除。只有在代码中实现内存的回收:
)l6c*i-\orPHZ0     大家可以参见
http://topic.csdn.net/u/20070501 ... 6-87a645e75cfd.html51Testing软件测试网|OG8g w-F4w
     自然,我们不是开发,无法做到在QTP运行过程中实现这样的效果51Testing软件测试网:T S/O4k#B;KX
  2,最小化IE!!这点绝对是可以用的,我刚才已经测试过,占用40M的,最小化后,成了2M,然后再做恢复,变成了21M左右,再做操作才慢慢在21M有序的增加。51Testing软件测试网XA#oa6_GOT Y"M l
     所以大家在写代码过程,如果有意识到脚本的IE内存可能没法很好的回收,可以写个最小化再做回复的操作函数。[/
size]

2@.]%Id9@ H&__0[本帖最后由 假装不在 于 2008-9-11 12:12 编辑]51Testing软件测试网!f*Hu9g)[.i


TAG:

假装不在 假装不在 发布于2008-09-11 12:11:45
在这里做下抛砖引玉,希望和大家讨论讨论,有很多不足处望大家指点指点
蓝天伟测试之家 lantianwei 发布于2008-09-11 14:38:05
写的非常不错,支持一下!
g9HqiW LJk软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具好像没提到解决办法啊
假装不在 假装不在 发布于2008-09-11 14:52:43

QUOTE:

原帖由 lantianwei 于 2008-9-11 14:38 发表 中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务4F,q cK/l7sqj5c3p
写的非常不错,支持一下!
V Su
z
r;?~vwww.51testing.com
好像没提到解决办法啊
H+Dl:|(yU:b
o软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
标题是讨论,嘿嘿。
6rl}\Y,Y+g;x"kn中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务目前解决的方法:1,重启服务器IIS,但是这个过程会让测试停止。软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具OAA;n-|H0k:R
2,清理本机的IE文件
O1hE&p:|1MN&[软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具3,利用外部程序实现间断清理(我记得超级兔子有个可以做到内存清理的工具)
逍遥客 xiaoyaoke 发布于2008-09-11 17:35:57
1.为什么要重启IIS呢?想不明白重启IIS和本机QTP执行脚本速度慢有什么直接的联系啊;
;\?7`'uQ/{G"^:_?www.51testing.com2.清理本机的IE文件有啥用呢?本机的IE文件只不过占用的磁盘空间,貌似也和QTP执行脚本速度没有直接联系吧;:a+V*N6v#GU\*B
3.利用外部程序实现间断清理:这个觉得的确会对提高运行速度有一定帮助,但问题是QTP这么娇嫩的软件,谁敢在它跑的时候频繁清理内存?谁又能保证不出错呢?呵呵
假装不在 假装不在 发布于2008-09-12 10:13:15

QUOTE:

原帖由 xiaoyaoke 于 2008-9-11 17:35 发表 软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具4xbWr9d,y@
1.为什么要重启IIS呢?想不明白重启IIS和本机QTP执行脚本速度慢有什么直接的联系啊;
A)]F4DTz D软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具2.清理本机的IE文件有啥用呢?本机的IE文件只不过占用的磁盘空间,貌似也和QTP执行脚本速度没有直接联系吧;www.51testing.comXl}jV*D$Jm
3.利用外部程序实 ...
`E9d        tywww.51testing.com0QWuh/xy)N:F6b
1,同个IE做的2000多次的页面跳转,如果IE没关闭,哪么IIS里的一些连接没有断开就资源没释放,导致了服务器响应时间增长。这个或者是程序写的不完善也有关系,应用程序很多资源没有释放导致。软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具lc8k:G4J1u        T`d
2,占磁盘控件确实是,但也不大,也就哪么几M,但同个IE经过2000次的页面跳转,到了后期页面变白,我能想到的就只有这点了,或者这个会和第三点有关系。o7|:wrc-\ZtSY^{
3,使用外部程序,这个对QTP是否有影响,还是要以后日子慢慢验证。
happychap的个人空间 happychap 发布于2008-09-12 11:55:06

QUOTE:

原帖由 假装不在 于 2008-9-12 10:13 发表
2pkFm
Y-\ H中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务

z        H&]D&f6B软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具
N
X7@yO?软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
1,同个IE做的2000多次的页面跳转,如果IE没关闭,哪么IIS里的一些连接没有断开就资源没释放,导致了服务器响应时间增长。这个或者是程序写的不完善也有关系,应用程序很多资源没有释放导致。
,g8}([:R
CHJ&dTwww.51testing.com
2,占磁盘控件确实 ...
&}8[3l k
x|o软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
这方面,应该与你自己编写的脚本有关吧,你可以把一个Test割成多个Test来做啊。
假装不在 假装不在 发布于2008-09-12 12:09:33

QUOTE:

原帖由 假装不在 于 2008-9-12 10:13 发表
)Sy G/RN1I8aCW51Testing软件测试网
s+m6QN2N/mC d
        P5~&M/CJ(V#yz |-Ywww.51testing.com1,同个IE做的2000多次的页面跳转,如果IE没关闭,哪么IIS里的一些连接没有断开就资源没释放,导致了服务器响应时间增长。这个或者是程序写的不完善也有关系,应用程序很多资源没有释放导致。中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务LtrQ mc+O3h*N
2,占磁盘控件确实 ...
        q%[Qu"D'Ry        x51Testing软件测试网脚本问题不大。早期运行速度相当的快,时间越长,脚本的速度越下降。
)^F(y D+K N!F!?x在找原因了,现在个人基本确定2个问题,1,浏览器占内存问题,这个下午2点后就有结果。2,服务器IIS问题。:QDi:|Wf!z%h!?        {
我只有一个TEST,理论上这个如果最快的速度跑完,也要10个小时。
假装不在 假装不在 发布于2008-09-12 13:43:03
中午测试时候发现,脚本在开跑,IE占的内存是:41004,跑了2个小时后,内存占的是143728
,G1il-]w'e9^g51Testing软件测试网使用内存整理工具无效。软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具V!wfl(oD        H\.o
刷新页面后让内存减少到38147
f5G'g/H)Y&YEE中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务这个可能是页面变白,假死的主要原因。
逍遥客 xiaoyaoke 发布于2008-09-12 16:50:59
建议LZ关注下被测试程序:
u*_pOV gC51Testing软件测试网软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具&xw/|/Q#wl2e-A'L
关于IIS和脚本,我感觉如何是这两者的原因都不应该引起IE进程占用内存量增加
heqingbluesky发布于2008-09-16 14:23:34
是否是临时文件过多,我们在测试C/S结构的程序也发现,系统会有莫名其妙的问题,是由于被测试的程序在系统安装盘下的Temp目录,放置了很多的文件,这些文件在被测试的软件关闭后也不会被清理掉。www.51testing.com%x2T-PQmi%T5be

&tk+VzV*Z%l;A51Testing软件测试网这个问题在测试安装/卸载的过程中,不同版本的临时文件过多,导致被测试程序的相应时间过久,磁盘空间占用过多的问题。
假装不在 假装不在 发布于2008-09-16 15:50:50

QUOTE:

原帖由 heqingbluesky 于 2008-9-16 14:23 发表
WN8S#nr*Wm|]'rB[软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具是否是临时文件过多,我们在测试C/S结构的程序也发现,系统会有莫名其妙的问题,是由于被测试的程序在系统安装盘下的Temp目录,放置了很多的文件,这些文件在被测试的软件关闭后也不会被清理掉。
TXC|2d7l:NHh0~        ?软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具
};_(VoT7g:g4p F51Testing软件测试网这个问题在测试安 ...
软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具o
\T)L*cl(P

这些都是不排除的因素。
测火燎原--态度决定质量 ppent 发布于2008-09-16 15:59:27
回复 9# 的帖子
个人估计:
7f'H|{:_8r%E d51Testing软件测试网1、由于长时间的运行,IE页面资源没有有效释放,从而页面上的对象很多,造成响应上的缓慢?0InW3lHU-T
2、楼主的脚本大量使用描述性编程,在页面对象众多时造成对象查找缓慢。楼主可从qtp的log中看运行效率慢在哪里。51Testing软件测试网0|aG fCi4lM
建议在测试执行一段时间后,关闭并重新打开IE,或许可以避开该问题。
假装不在 假装不在 发布于2008-09-16 16:08:49

QUOTE:

原帖由 ppent 于 2008-9-16 15:59 发表 www.51testing.com:x_y O&a[@Pr
个人估计:
-}1|d4Fi0O7X*B软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具1、由于长时间的运行,IE页面资源没有有效释放,从而页面上的对象很多,造成响应上的缓慢
-A{3}gkI软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具2、楼主的脚本大量使用描述性编程,在页面对象众多时造成对象查找缓慢。楼主可从qtp的log中看运行效率慢在哪里 ...
J#Vk&JE
%s:s(G"?)LB:W
软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具R%aC*vA.{e4q`
虽然关闭IE可以解决这个问题,因为业务逻辑的问题还有页面信息恢复难度大,重启IE是个下策。(我脚本的“恢复功能”中也有做到这点,但恢复到重启前数据,时间长,到头来页面的缓存信息还是少不了多少)
heqingbluesky发布于2008-09-17 10:20:02
我曾经记得在测试B/S结构的测试时候,在IE中有个设置:
jrZwV$Mwww.51testing.comTool-Temporary Internet File-Settings-Check for newer stored page选项,选择:Every visit to the page选项
Y&o(`(gZs软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具这样,每次访问页面的时候,可以进行自动的刷新,不知道这个办法是否可以加速?
7l1i"G5}}L}8c,{
U软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具

UUx"WVxi51Testing软件测试网重启IE是个下策,特别是当测试的页面的信息量比较大,页面的关联性比较强,这样会有一些其它的问题。
假装不在 假装不在 发布于2008-09-17 10:55:31
我试了下,不行,内存还是照样增加得厉害。
heqingbluesky发布于2008-09-17 11:20:44
还有一个方法:软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具Jf%LFCW1I;L4u8^
在每个Workflow工作完以后,也就是一个Case运行完毕后,清空被测试的程序,让程序回到Case运行前的状态,这个工作是通过调用一个Batch(VBS)文件来完成了。51Testing软件测试网
gI @BB'c9\`

不知道这样不是通过IE,而是通过脚本强制清空,是否可以解决?
假装不在 假装不在 发布于2008-09-17 12:15:19

QUOTE:

原帖由 heqingbluesky 于 2008-9-17 11:20 发表
*~@,Gd2Quwww.51testing.com还有一个方法::G&i(lnM5g~u8M
在每个Workflow工作完以后,也就是一个Case运行完毕后,清空被测试的程序,让程序回到Case运行前的状态,这个工作是通过调用一个Batch(VBS)文件来完成了。
XJYGY$h不知道这样不是通过IE,而是通过脚本强制 ...
51Testing软件测试网HfV1Y c QtnP

.H5|4^;dT2M51Testing软件测试网
]c        @}T我现在感觉,那些临时文件不是多大的问题,个人觉得内存才是主要的诱因。
nanice发布于2008-09-17 12:45:20
关注楼主,你遇到的问题,我这也正在发生…………
逍遥客 xiaoyaoke 发布于2008-09-17 14:57:24
1、由于长时间的运行,IE页面资源没有有效释放,从而页面上的对象很多,造成响应上的缓慢www.51testing.com)kKAG4mO%F4L-_
深表认同
逍遥客 xiaoyaoke 发布于2008-09-17 14:59:56
2、楼主的脚本大量使用描述性编程,在页面对象众多时造成对象查找缓慢。
Q{#qI cj.N软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具不认同,大量的描述性编程,在页面对象众多时造成对象查找缓慢,这个应该是造成QTP本身吃内存而不是造成IE。
我来说两句

(可选)

Open Toolbar