51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

12
返回列表 发新帖
楼主: 假装不在
打印 上一主题 下一主题

[讨论] 【关于如何解决QTP后期运行速度】

[复制链接]

该用户从未签到

21#
发表于 2008-9-17 14:59:56 | 只看该作者
2、楼主的脚本大量使用描述性编程,在页面对象众多时造成对象查找缓慢。
不认同,大量的描述性编程,在页面对象众多时造成对象查找缓慢,这个应该是造成QTP本身吃内存而不是造成IE。
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2008-9-17 15:48:53 | 只看该作者
原帖由 xiaoyaoke 于 2008-9-17 14:59 发表
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的内存等提高。这个是业务方面的问题,和技术没多大关系,所以不便公开代码。
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2008-9-17 16:32:20 | 只看该作者
主题已经编辑了一次,现在写了解决办法,不过没有涉及到QTP的内存释放
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2008-9-18 09:09:43 | 只看该作者
建议一本书《深入理解计算机系统》
现在高级语言风靡,接触底层的机会越来越少,但还是希望大家有时间的时候能够看看,个人感觉挺有帮助的
回复 支持 反对

使用道具 举报

该用户从未签到

25#
 楼主| 发表于 2008-9-18 09:27:24 | 只看该作者
原帖由 xiaoyaoke 于 2008-9-18 09:09 发表
建议一本书《深入理解计算机系统》
现在高级语言风靡,接触底层的机会越来越少,但还是希望大家有时间的时候能够看看,个人感觉挺有帮助的



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

使用道具 举报

该用户从未签到

26#
发表于 2008-9-18 10:45:17 | 只看该作者
如果是内存释放的问题,多跟编程的习惯有关系。
是否存在过期的数据库连接没有释放
是否存在打开的文件没有关闭
是否变量在命名后并没有实际的使用
是否在使用Function的时候,递归调用的层次比较多
………………
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

28#
 楼主| 发表于 2008-9-18 11:28:53 | 只看该作者
原帖由 xiaoyaoke 于 2008-9-18 10:46 发表
“我昨天后来再研究了下,估计QTP可以帮页面做内存释放(没用的变量之类),这个需要再研究下。”
我不这么认为的:
首先QTP在我的理解就是封装了N多其它辅助功能的VBS脚本解释器,这里谈到帮助IE进行内存整理,问 ...

我的理念是帮页面做变量释放。究竟意义会不会比做最小化操作来得更大些,要看它的成本了。
如果说帮IE做内存清理,我个人说这点不大可能。
因为这个是IE自己的机制问题,上一个页面,它的会保存一些类似表单的东西,““如果能实现这样的清理工作,哪么我们点后退后,会发现刚才的那些表单记录都没了””,好像这是不可能的。
所以要么就每个页面都做一次清理操作,要么就最小化。

“QTP在我的理解就是封装了N多其它辅助功能的VBS脚本解释器”这个就是我利用的地方,先尝试可以调用或者重定义web中的函数不。
置于用自定义函数实现页面元素增加,我已经做到了。 可以拿开发员来开下玩笑。
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2008-9-18 11:30:19 | 只看该作者

回复 27# 的帖子

呵呵,忘记wmi了吧
回复 支持 反对

使用道具 举报

该用户从未签到

30#
 楼主| 发表于 2008-9-18 11:31:29 | 只看该作者
原帖由 heqingbluesky 于 2008-9-18 10:45 发表
如果是内存释放的问题,多跟编程的习惯有关系。
是否存在过期的数据库连接没有释放
是否存在打开的文件没有关闭
是否变量在命名后并没有实际的使用
是否在使用Function的时候,递归调用的层次比较多
…………… ...


你总结的很好。
至于数据库连接释放这个我没考虑到,谢谢你的回复 。
回复 支持 反对

使用道具 举报

该用户从未签到

31#
 楼主| 发表于 2008-9-18 11:33:14 | 只看该作者
原帖由 rcpp 于 2008-9-18 11:30 发表
呵呵,忘记wmi了吧



wmi不能忘 ,太销魂了。
回复 支持 反对

使用道具 举报

该用户从未签到

32#
发表于 2008-9-18 11:46:53 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

33#
发表于 2008-9-18 11:51:55 | 只看该作者

回复 29# 的帖子

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

使用道具 举报

该用户从未签到

34#
发表于 2008-9-19 10:52:32 | 只看该作者
WMI可以进行管理内存,我目前不知道如何使用,可以让RCPP给我们说明一下,洗耳恭听
我们一般使用WMI,都是用它来获取计算机的信息,例如:进程信息,以便我们可以Kill掉它,在系统出错或者崩溃的时候。
回复 支持 反对

使用道具 举报

该用户从未签到

35#
 楼主| 发表于 2008-9-19 11:55:40 | 只看该作者
看来RCPP的一个回复引起了大家的关注呀...
回复 支持 反对

使用道具 举报

该用户从未签到

36#
发表于 2008-9-19 12:43:10 | 只看该作者
几个高手在一起探讨的问题,果然能给人很大的启迪,哈哈!继续继续……
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    37#
    发表于 2009-2-22 13:06:56 | 只看该作者
    各位对解决QTP后期运行速度慢的问题进行了深入讨论,对减少测试时间、提高测试效率非常有帮助意义。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    38#
    发表于 2011-3-9 14:18:58 | 只看该作者
    感觉以后有用,标记一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39#
    发表于 2014-3-13 16:37:37 | 只看该作者
    之后的工作也会面临到这个问题,看到这些讨论,感觉收获良多,不过,还未实践。先标记一下
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 15:52 , Processed in 0.071698 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表