xiaoyaoke 发表于 2008-9-17 14:59:56

2、楼主的脚本大量使用描述性编程,在页面对象众多时造成对象查找缓慢。
不认同,大量的描述性编程,在页面对象众多时造成对象查找缓慢,这个应该是造成QTP本身吃内存而不是造成IE。

假装不在 发表于 2008-9-17 15:48:53

原帖由 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的内存等提高。这个是业务方面的问题,和技术没多大关系,所以不便公开代码。

假装不在 发表于 2008-9-17 16:32:20

主题已经编辑了一次,现在写了解决办法,不过没有涉及到QTP的内存释放:lol

xiaoyaoke 发表于 2008-9-18 09:09:43

建议一本书《深入理解计算机系统》
现在高级语言风靡,接触底层的机会越来越少,但还是希望大家有时间的时候能够看看,个人感觉挺有帮助的

假装不在 发表于 2008-9-18 09:27:24

原帖由 xiaoyaoke 于 2008-9-18 09:09 发表 http://bbs.51testing.com/images/common/back.gif
建议一本书《深入理解计算机系统》
现在高级语言风靡,接触底层的机会越来越少,但还是希望大家有时间的时候能够看看,个人感觉挺有帮助的


我昨天后来再研究了下,估计QTP可以帮页面做内存释放(没用的变量之类),这个需要再研究下。

heqingbluesky 发表于 2008-9-18 10:45:17

如果是内存释放的问题,多跟编程的习惯有关系。
是否存在过期的数据库连接没有释放
是否存在打开的文件没有关闭
是否变量在命名后并没有实际的使用
是否在使用Function的时候,递归调用的层次比较多
………………

xiaoyaoke 发表于 2008-9-18 10:46:24

“我昨天后来再研究了下,估计QTP可以帮页面做内存释放(没用的变量之类),这个需要再研究下。”
我不这么认为的:
首先QTP在我的理解就是封装了N多其它辅助功能的VBS脚本解释器,这里谈到帮助IE进行内存整理,问题是VBS中这种语言能够管理内存吗?所以如果要实现用QTP去整理IE内存,那么就要再写一个内存清理的工具(用支持内存管理的语言)然后VBS调用;
其次,进程的理念是现在操作系统的巨大进步,IE在运行中是独立的进程,而QTP虽然控制着IE的运行,但这种控制是应用级控制吧,这两个进程之间没有从属关系,既然如此,在进程的理念中独立的进程间资源是独占的吧,也就是除了进程本身有权限在运行中整理自己的内存空间,其它的程序有这个权限去管理它的资源吗?(操作系统除外)

假装不在 发表于 2008-9-18 11:28:53

原帖由 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 可以拿开发员来开下玩笑。

rcpp 发表于 2008-9-18 11:30:19

回复 27# 的帖子

呵呵,忘记wmi了吧

假装不在 发表于 2008-9-18 11:31:29

原帖由 heqingbluesky 于 2008-9-18 10:45 发表 http://bbs.51testing.com/images/common/back.gif
如果是内存释放的问题,多跟编程的习惯有关系。
是否存在过期的数据库连接没有释放
是否存在打开的文件没有关闭
是否变量在命名后并没有实际的使用
是否在使用Function的时候,递归调用的层次比较多
…………… ...

:lol :hug: 你总结的很好。
至于数据库连接释放这个我没考虑到,谢谢你的回复 。:lol

假装不在 发表于 2008-9-18 11:33:14

原帖由 rcpp 于 2008-9-18 11:30 发表 http://bbs.51testing.com/images/common/back.gif
呵呵,忘记wmi了吧


wmi不能忘:lol ,太销魂了。

水知寒 发表于 2008-9-18 11:46:53

:)

xiaoyaoke 发表于 2008-9-18 11:51:55

回复 29# 的帖子

WMI可以管理内存吗?
呵呵,这个没用过,我经常用它或许一些系统信息

heqingbluesky 发表于 2008-9-19 10:52:32

WMI可以进行管理内存,我目前不知道如何使用,可以让RCPP给我们说明一下,洗耳恭听:hug: 。
我们一般使用WMI,都是用它来获取计算机的信息,例如:进程信息,以便我们可以Kill掉它,在系统出错或者崩溃的时候。

假装不在 发表于 2008-9-19 11:55:40

:lol 看来RCPP的一个回复引起了大家的关注呀...

nanice 发表于 2008-9-19 12:43:10

几个高手在一起探讨的问题,果然能给人很大的启迪,哈哈!继续继续……

walker1020 发表于 2009-2-22 13:06:56

各位对解决QTP后期运行速度慢的问题进行了深入讨论,对减少测试时间、提高测试效率非常有帮助意义。

南勃万 发表于 2011-3-9 14:18:58

感觉以后有用,标记一下

JF贰 发表于 2014-3-13 16:37:37

之后的工作也会面临到这个问题,看到这些讨论,感觉收获良多,不过,还未实践。先标记一下
页: 1 [2]
查看完整版本: 【关于如何解决QTP后期运行速度】