51Testing软件测试论坛

标题: 描述性编程,执行脚本,执行速度慢 [打印本页]

作者: lengz    时间: 2007-7-23 11:14
标题: 描述性编程,执行脚本,执行速度慢
我写了一段关于WEB的脚本,虽然能执行下来,但是每部的执行速度都很慢,这是为什么啊。请帮忙
作者: rivermen    时间: 2007-7-23 11:20
这是正常的,因为在对象库里没有存放相应的对象
脚本中的所有对象的识别都是依靠某些属性进行匹配
这个匹配的速度当然慢了!!!
作者: lengz    时间: 2007-7-23 11:40
这个我知道,我想知道怎么解决~照这个速度,我的脚本可有的跑了~~
作者: chenjie021    时间: 2007-7-23 12:12
多加几个属性看一下会不会快一点
作者: lengz    时间: 2007-7-23 13:28
我加了,Browser,但是速度还是和有对象库的时候有差距,
作者: coletan    时间: 2007-7-23 13:31
就是因为对象匹配的关系吧,我觉得应该也是了!虽然是可以运行脚本,但是对象仓库直接找到对象的运行速度要慢很多!
作者: lengz    时间: 2007-7-23 16:34
哥哥们,没有解决办法么?难道让我把所有对象都加上?那描述性编程还有什么意义!
作者: garyyes    时间: 2007-7-23 20:46
原帖由 lengz 于 2007-7-23 11:14 发表
我写了一段关于WEB的脚本,虽然能执行下来,但是每部的执行速度都很慢,这是为什么啊。请帮忙

只是你的代码或设置问题。与descriptive programming没有关系。
作者: gzj_06    时间: 2007-7-23 20:57
原帖由 lengz 于 2007-7-23 16:34 发表
哥哥们,没有解决办法么?难道让我把所有对象都加上?那描述性编程还有什么意义!
速度慢会有这么一个原因,就是QTP未能找到完全匹配的对象,这时会去找相近的对象,因此速度会大大变慢,所以可能跟你所写的代码是有关系的,把你的代码帖出来,好帮你看看有没问题
作者: wtucel    时间: 2007-7-30 09:47
我也遇到这个问题了,大家帮忙看看,我用来描述的属性都是推荐使用的属性啊.

'login
Browser("creationTime:=0").Page("index:=0").WebEdit("name:=stradminid").Set "admin"
Browser("creationTime:=0").Page("index:=0").WebEdit("name:=strpassword").SetSecure "46aab211827bcd0f1b2d146e7be500fc"
Browser("creationTime:=0").Page("index:=0").WebButton("name:=登录").Click

'add
Browser("creationTime:=0").Page("index:=0").WebElement("innertext:=栏目管理").Click
Browser("creationTime:=0").Page("index:=0").Frame("name:=leftFrame").WebElement("innertext:=新闻管理").Click
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebButton("name:=新增新闻").Click
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebEdit("name:=strnewstitle").Set "test"
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebButton("name:=确定").Click
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebButton("name:=返回").Click

'modify
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").Link("text:=修改").Click
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebEdit("name:=strnewstitle").Set "test_modify"
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebButton("name:=确定").Click
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebButton("name:=返回").Click

'delete
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").Link("text:=删除").Click
Browser("creationTime:=1").Dialog("text:=Microsoft Internet Explorer").WinButton("name:=确定").Click
Browser("creationTime:=0").Page("index:=0").Frame("name:=mainFrame").WebButton("name:=返回").Click
Browser("creationTime:=0").Close
作者: wtucel    时间: 2007-7-30 09:48
运行实在太慢了,差不多5秒钟才运行一句
我在options的Run里设置的快速运行,而且也没截图和录象.


=================================

发现问题所在了,是browser属性的问题,用creationTime来描述就很慢,但是除了这个唯一的属性,我不知道用什么来描述打开第一个窗口,打开第

二个窗口了.用其他的什么title,class_name描述的话太麻烦了,还要去识别.

[ 本帖最后由 wtucel 于 2007-7-30 09:55 编辑 ]
作者: lengz    时间: 2007-7-30 09:54
Browser("creationTime:=0").Page("index:=0").

具体的描述一下,比如:Browser("title:=百度").Page("title:=百度")这样就快了,我之前和你写的一样,

哦,补充一下,Browser("title:="&temp1).Page("title:="&temp2),这样就可以复用了~,

反正我目前是这么处理的,不知道还有没有好办法?

[ 本帖最后由 lengz 于 2007-7-30 09:57 编辑 ]
作者: 梦醒十分    时间: 2007-7-30 09:58
你在对象库中只加一个对象Browser并取名为aaa
然后把creationtime:=0都换成aaa,执行起来应比普通录制回放速度还要快3倍以上。
作者: wtucel    时间: 2007-7-30 09:59
恩,但是感觉用title的话不是很科学拉,还要去识别,可惜browser没有index这样的属性,只有一个creationTime的类似index,可惜又太慢了.但是我看人家推荐的都是用creationTime啊,应该有解决的办法吧
作者: ppent    时间: 2007-7-30 10:33
这个问题很有代表性,梦想十分的方法应该是比较可行的吧?因为我看他的录像演示,执行速度是飞快的,对象库里也只有一个browse对象而已。
找个时间试试。
各位大侠也来讨论一下。
作者: lengz    时间: 2007-7-30 14:23
原帖由 梦醒十分 于 2007-7-30 09:58 发表
你在对象库中只加一个对象Browser并取名为aaa
然后把creationtime:=0都换成aaa,执行起来应比普通录制回放速度还要快3倍以上。



我试过了,但是没成功,再试试看~
作者: songfun    时间: 2007-7-30 14:33
第一,描述性编程的速度确实相对慢一些,但是没你说的那么夸张,你看看自己的qtp设置有没有问题,再看看自己的Result有没有warning;
第二,描述性编程建议使用Description对象来创建;
第三,对于浏览器对象,建议你不要使用描述性编程,直接像梦醒时分那样在对象库里添加这个对象便可。

原帖由 lengz 于 2007-7-23 11:14 发表
我写了一段关于WEB的脚本,虽然能执行下来,但是每部的执行速度都很慢,这是为什么啊。请帮忙

作者: zhoubo1100    时间: 2007-7-31 15:04
原帖由 wtucel 于 2007-7-30 09:47 发表
我也遇到这个问题了,大家帮忙看看,我用来描述的属性都是推荐使用的属性啊.

'login
Browser("creationTime:=0").Page("index:=0").WebEdit("name:=stradminid").Set "admin"
Browser("creationTime:=0").Pa ...



当用creationTime这个属性去标识第一个打开的浏览器时是比较慢的,但是写成这样的模式就能解决速度问题:
Browser("creationTime:=00:00:00").(...)....
标识第二个以后打开的浏览器时还是用1,2,3,4........
作者: lengz    时间: 2007-7-31 18:25
原帖由 songfun 于 2007-7-30 14:33 发表
第一,描述性编程的速度确实相对慢一些,但是没你说的那么夸张,你看看自己的qtp设置有没有问题,再看看自己的Result有没有warning;
第二,描述性编程建议使用Description对象来创建;
第三,对于浏览器对象 ...




Browser("title:=百度").Page("title:=百度")
这样写呢,会对脚本复用有影响么?
作者: gzj_06    时间: 2007-7-31 19:44
原帖由 zhoubo1100 于 2007-7-31 15:04 发表



当用creationTime这个属性去标识第一个打开的浏览器时是比较慢的,但是写成这样的模式就能解决速度问题:
Browser("creationTime:=00:00:00").(...)....
标识第二个以后打开的浏览器时还是用1,2,3,4........
Browser("creationTime:=00:00:00").(...)....
还可以这样用啊,又学了一招sdlkfj5
作者: coomon2000    时间: 2007-8-7 17:28
原帖由 wtucel 于 2007-7-30 09:47 发表
我也遇到这个问题了,大家帮忙看看,我用来描述的属性都是推荐使用的属性啊.

'login
Browser("creationTime:=0").Page("index:=0").WebEdit("name:=stradminid").Set "admin"
Browser("creationTime:=0").Pa ...



是不是和属性有关,webButton的属性不应该是name,应该是text吧!
作者: virgozz    时间: 2007-8-9 13:00
在非必要的情况下还是不要用描述性编程了,对象库就是为了节约运行时间而存在的,如果一个脚本执行比手动还要多nn倍,自动化如何赢利?当然研究一下是可以的
作者: jackymail    时间: 2007-11-3 22:01
标题: 回复 22# 的帖子
试一下下面的Script:

strBrowser = "hwnd:=" & oIE.hwnd
strPage = "hwnd:= " & CStr(Browser("hwnd:=" & oIE.hwnd).Page("title:=" &  oIE.Document.Title).GetROProperty("hwnd"))
With Browser(strBrowser).Page(strPage)
.WebEdit("name:=stradminid").Set "admin"
... ...
End with




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2