51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1950|回复: 6
打印 上一主题 下一主题

[原创] 麻烦大虾们看看同一个语句,两种写法为什么执行速度不一样

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-10-25 12:48:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这个执行的时间是不到1秒
Set  Desc = Browser("creationtime:=0").Page("index:=0")  
        If  Desc.Frame("html id:=contentIframe").Link("name:="&twoLevel,"index:="&times).Exist(2) Then
   

下面这个执行的时间是5秒半
Set Desc = Browser("creationtime:=0").Page("index:=0").Frame("html id:=contentIframe").Link("name:="&twoLevel,"index:="&times)
        If  Desc.Exist(2) Then

为什么同样是判断一个页面是否存在的语句,排列方式不一样,就会有5倍时间的差距?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-10-25 13:24:38 | 只看该作者
不会吧....
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-10-25 14:05:11 | 只看该作者
是下面的慢,对象解析次数多,但不应该慢这么多
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-10-25 15:09:11 | 只看该作者
本帖最后由 lantianwei 于 2010-10-25 15:36 编辑

没有做过试验,假设LZ的观点是正确的,那么我的个人观点是:
Set  Desc = Browser("creationtime:=0").Page("index:=0")  ‘进行对象匹配,但仅解析2层并返回一个对象
        If  Desc.Frame("html id:=contentIframe").Link("name:="&twoLevel,"index:="×).Exist(2) Then ’进行对象匹配,其实还是从头到尾进行解析,共解析了4层

Set Desc = Browser("creationtime:=0").Page("index:=0").Frame("html id:=contentIframe").Link("name:="&twoLevel,"index:="×) ‘进行对象匹配,对4层全部进行了解析,并返回一个对象
        If  Desc.Exist(2) Then ’再一次进行对象匹配,但依然是对4层对象全部进行了解析
从上面的分析可以看出,1比2少解析了2层,所以2的时间会多

综述,所以上面两个种语句的执行速度应该不是绝对的5倍,即使在同一台电脑上,也可能是不一样的,而是依赖于被测对象的复杂程度,这里主要指Frame("html id:=contentIframe").Link("name:="&twoLevel,"index:="×)的复杂程度,也就是说在其父对象下有多少对象,需要花费多少时间来找到目标对象

以上仅个人观点,小虾米欢迎大虾拍砖~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-10-25 17:27:24 | 只看该作者
我觉得,楼上说的很有道理,QTP做解析的时候,是按照对象的层次进行的。对象层次越多,所需要的时间就越长。。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-10-26 10:23:52 | 只看该作者
想不通 ,应该还是你对象属性的问题.5秒本身就不太正常...不会有这么大的差异,尝试关掉你的一些程序只开浏览器和QTP测试一下.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-10-26 15:01:33 | 只看该作者
很感谢各位的指导~:)对我帮助很大!
我那个页面确实对象很多,我用SPY找都要找很久才能定位到我需要的确切对象,
我是一边用QTP执行脚本,一边用秒表计时,可能有时间差,这两句中的Set那行执行的都很快,区别就在IF那行,时间差很多,我再试试看看简单的页面,然后只开浏览器和QTP:),看这两句会不会有很大的差别。
再次感谢站友们~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 11:10 , Processed in 0.073475 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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