不认同,大量的描述性编程,在页面对象众多时造成对象查找缓慢,这个应该是造成QTP本身吃内存而不是造成IE。 原帖由 xiaoyaoke 于 2008-9-17 14:59 发表 http://bbs.51testing.com/images/common/back.gif
2、楼主的脚本大量使用描述性编程,在页面对象众多时造成对象查找缓慢。
不认同,大量的描述性编程,在页面对象众多时造成对象查找缓慢,这个应该是造成QTP本身吃内存而不是造成IE。
这个问题有区别于IE页面变白的那个问题。
我现在发现很恐怖,哈哈,一个页面有同个webelement,基本信息,不确定,变动很大,而且考虑到通用的情况,我使用了INDEX,而正好,页面有1000个index的情况。
页面前300个INDEX查找速度很快,但慢慢速度下降,你说的是QTP占内存的原因,我也觉得这点我觉得应该是。
操作:
1,QTP对页面操作,从第300个开始操作,速度和第1个开始速度一样。
2,如果从第1个到300个时候,300个的操作速度明显没有1个快
3,在跑到第300个时候,做IE重启恢复的操作,QTP的页面出现了有点假死的情况
这个现象,很直观给我们的感觉是QTP的问题,但QTP查找对象的原理是否会涉及到IE的一些非直观因素,例如缓存之类的呢?
嘿嘿,中午写了个更会方便的恢复方法,可以很快恢复前面流程留下的场景而又不让IE的内存等提高。这个是业务方面的问题,和技术没多大关系,所以不便公开代码。 主题已经编辑了一次,现在写了解决办法,不过没有涉及到QTP的内存释放:lol 建议一本书《深入理解计算机系统》
现在高级语言风靡,接触底层的机会越来越少,但还是希望大家有时间的时候能够看看,个人感觉挺有帮助的 原帖由 xiaoyaoke 于 2008-9-18 09:09 发表 http://bbs.51testing.com/images/common/back.gif
建议一本书《深入理解计算机系统》
现在高级语言风靡,接触底层的机会越来越少,但还是希望大家有时间的时候能够看看,个人感觉挺有帮助的
我昨天后来再研究了下,估计QTP可以帮页面做内存释放(没用的变量之类),这个需要再研究下。 如果是内存释放的问题,多跟编程的习惯有关系。
是否存在过期的数据库连接没有释放
是否存在打开的文件没有关闭
是否变量在命名后并没有实际的使用
是否在使用Function的时候,递归调用的层次比较多
……………… “我昨天后来再研究了下,估计QTP可以帮页面做内存释放(没用的变量之类),这个需要再研究下。”
我不这么认为的:
首先QTP在我的理解就是封装了N多其它辅助功能的VBS脚本解释器,这里谈到帮助IE进行内存整理,问题是VBS中这种语言能够管理内存吗?所以如果要实现用QTP去整理IE内存,那么就要再写一个内存清理的工具(用支持内存管理的语言)然后VBS调用;
其次,进程的理念是现在操作系统的巨大进步,IE在运行中是独立的进程,而QTP虽然控制着IE的运行,但这种控制是应用级控制吧,这两个进程之间没有从属关系,既然如此,在进程的理念中独立的进程间资源是独占的吧,也就是除了进程本身有权限在运行中整理自己的内存空间,其它的程序有这个权限去管理它的资源吗?(操作系统除外) 原帖由 xiaoyaoke 于 2008-9-18 10:46 发表 http://bbs.51testing.com/images/common/back.gif
“我昨天后来再研究了下,估计QTP可以帮页面做内存释放(没用的变量之类),这个需要再研究下。”
我不这么认为的:
首先QTP在我的理解就是封装了N多其它辅助功能的VBS脚本解释器,这里谈到帮助IE进行内存整理,问 ...
我的理念是帮页面做变量释放。究竟意义会不会比做最小化操作来得更大些,要看它的成本了。
如果说帮IE做内存清理,我个人说这点不大可能。
因为这个是IE自己的机制问题,上一个页面,它的会保存一些类似表单的东西,““如果能实现这样的清理工作,哪么我们点后退后,会发现刚才的那些表单记录都没了””,好像这是不可能的。
所以要么就每个页面都做一次清理操作,要么就最小化。
“QTP在我的理解就是封装了N多其它辅助功能的VBS脚本解释器”这个就是我利用的地方,先尝试可以调用或者重定义web中的函数不。
置于用自定义函数实现页面元素增加,我已经做到了。:lol 可以拿开发员来开下玩笑。
回复 27# 的帖子
呵呵,忘记wmi了吧 原帖由 heqingbluesky 于 2008-9-18 10:45 发表 http://bbs.51testing.com/images/common/back.gif如果是内存释放的问题,多跟编程的习惯有关系。
是否存在过期的数据库连接没有释放
是否存在打开的文件没有关闭
是否变量在命名后并没有实际的使用
是否在使用Function的时候,递归调用的层次比较多
…………… ...
:lol :hug: 你总结的很好。
至于数据库连接释放这个我没考虑到,谢谢你的回复 。:lol 原帖由 rcpp 于 2008-9-18 11:30 发表 http://bbs.51testing.com/images/common/back.gif
呵呵,忘记wmi了吧
wmi不能忘:lol ,太销魂了。 :)
回复 29# 的帖子
WMI可以管理内存吗?呵呵,这个没用过,我经常用它或许一些系统信息 WMI可以进行管理内存,我目前不知道如何使用,可以让RCPP给我们说明一下,洗耳恭听:hug: 。
我们一般使用WMI,都是用它来获取计算机的信息,例如:进程信息,以便我们可以Kill掉它,在系统出错或者崩溃的时候。 :lol 看来RCPP的一个回复引起了大家的关注呀... 几个高手在一起探讨的问题,果然能给人很大的启迪,哈哈!继续继续…… 各位对解决QTP后期运行速度慢的问题进行了深入讨论,对减少测试时间、提高测试效率非常有帮助意义。 感觉以后有用,标记一下 之后的工作也会面临到这个问题,看到这些讨论,感觉收获良多,不过,还未实践。先标记一下
页:
1
[2]