原创日志转载请标明出处与连接! 大家的支持是我的动力!_______卢晨之 (luchenzhi@21cn.com/@hotmail.com)

【QTP编码小知识 一】

上一篇 / 下一篇  2008-09-25 21:50:35 / 个人分类:QTP

查看( 3189 ) / 评论( 21 )
QTP编码小知识 一】
u!WHRKf"e4o0       在这里先给大家看看一下代码:
hI Md6N^Wd*P j o0       if browser("百度一下").page("百度一下").webedit("百度一下").exist(0) and _51Testing软件测试网Z OGQ MV*f
         browser("百度一下").page("百度一下").webedit("百度一下").object.disabled and _
*~X,t |]{7N|lH.@0         browser("百度一下").page("百度一下").webedit("百度一下").object.visible then51Testing软件测试网I:u V wrZO6\.X'x@
         browser("百度一下").page("百度一下").webedit("百度一下").click
e!a fs1i8~0      end if
dll&w1u%~.|`0
(J9mi+`'GFT.X0      自然,如果学过编程的人,会举得,恩,这样写很正常,但是没有怎么学过的人,他或者会写成这样51Testing软件测试网yAFXQ C:g ]
       if browser("百度一下").page("百度一下").webedit("百度一下").exist(0) then
3WU6rx#d#ti6P`K0         if browser("百度一下").page("百度一下").webedit("百度一下").object.disabled then51Testing软件测试网5P\5`qFUX!x3jx
            if browser("百度一下").page("百度一下").webedit("百度一下").object.visible then
.g^!^.D4h;D3eb0               browser("百度一下").page("百度一下").webedit("百度一下").click
[j NO$C5yEC*o0            end if
w|C$b k-awB0          end if
5Kw%id6R \Y6X0      end if
h*c-S6T!un"{0e ~'R7W0      
b;q$bW4yyey ~0      你学习过了编程,知道了,如果and的条件,如果有一个否,哪么就全部为否,自然是这个是逻辑条件的问题,你有学过,所以
)^0U"hZ.ju%rLef+ro0   你写成2个and的方法去简略代码。但问题往往发生在这里,就和变魔术一样,大人看不出,但小孩就可以看出里面的问题,因为大人
,c)^S-Z4E0   的思想会被自己所谓的经验所左右。51Testing软件测试网9G4t o;}?l9]]S
       这段代码的错误地方发生在那里,估计读到这里的人大部分已经猜到了,错误会发生在第1片中的2 3行!!你会问为什么?这应
\,K8F2]zn0   该没错菜对的呀?不存在它就条不进行点击了么?但不存在时候,其实QTP会去判断and的其他2个条件,因为webedit的不存在,导致51Testing软件测试网Ai V%{vt:C
   了object不能使用,所以在这里会出现报错的情况。51Testing软件测试网S4_r)y1?
       首先说下QTP它在 逻辑判断这块的处理,有人说,如果and其中第一个条件是假的,哪么判断就直接跳出去了,对,没错,这个51Testing软件测试网.@y/|m_&b/m
   是针对某些语言而言,但是QTP自己在使用VBS中,自己又加了点手脚,或者是VBS自己本身就存在这样的问题。
?sZpV0       这些也都是在实际编码过程中会发现的问题,大家慢慢积累,让自己的代码出现更少的BUG,哈哈,感觉好像在做白盒测试...嘻嘻。

TAG:

hero001的个人空间 hero001 发布于2008-09-26 09:25:20

逍遥客 xiaoyaoke 发布于2008-09-26 09:29:12
我一般在动手在代码之前先明确逻辑,最好画个逻辑流程图,逻辑清晰了再将流程图转化为代码。我感觉这样就可以避免LZ说得问题了。
假装不在 假装不在 发布于2008-09-26 09:44:05
回复 3# 的帖子
问题都会发生在不经意间的。哈哈,任何代码,无论你在编写前,准备得多详细,都会有漏洞存在的,因为人无完人,自然会有考虑不周到的地方。51Testing软件测试网 S"j$H4h0L B-jr

.c"U*@#@F@www.51testing.com另外,你说画流程图就不会出现我说的那个问题,其实我的那个问题是和流程没多大关系,是一些编码的习惯问题。因为没发生问题前,谁都没想到QTP会在and的第一个条件出错时候,他还会去看第2个是否正确。一般情况是没有考虑的。
最后一公里 rcpp 发布于2008-09-26 09:53:41
理想的做法是把这类会大量重复的逻辑封装起来软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具!v)J3[8N8I$L)y,O-^
丢给测试人员用的尽可能少有逻辑,弱化熟练度的差异造成脚本质量差异
/@2i r&OQ]Q
uEwww.51testing.com
尽量让业务脚本中少出现判断,出错率也会下降
heqingbluesky发布于2008-09-26 10:58:01
知识普及,顶一下。
wslss007的个人空间 wslss007 发布于2008-09-26 11:27:07
呵呵,小知识,但积累起来就很重要了,谢谢。
meiguishijun的个人空间 meiguishijun 发布于2008-09-27 10:11:56
webedit软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具VQI$nj
要想学习像webedit是什么,如何用等等知识,需要学习哪方面的知识? 谢谢
假装不在 假装不在 发布于2008-09-27 11:04:16

QUOTE:

原帖由 meiguishijun 于 2008-9-27 10:11 发表 软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具/J8IEFG
webedit软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具-p?n"Z
[ e

要想学习像webedit是什么,如何用等等知识,需要学习哪方面的知识? 谢谢
Mu3`0P$d
^51Testing软件测试网

)lS$G$ovy|2gP中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务
(B/S
F"QFq软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具

$B)p~OQq中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务 你不说还真不知道,其实是代码写错了,是webbutton
zy-cumt发布于2008-09-27 13:58:46
学习一下,顶,目前正在研究QTP的使用
Kevin藏宝库 hsjzfling 发布于2008-09-27 15:18:17

QUOTE:

原帖由 假装不在 于 2008-9-26 09:44 发表 中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务fw:H%k        NO d
问题都会发生在不经意间的。哈哈,任何代码,无论你在编写前,准备得多详细,都会有漏洞存在的,因为人无完人,自然会有考虑不周到的地方。
+Uwh7I9e9SA7f2U51Testing软件测试网中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务'_W8ja5cd JQ
另外,你说画流程图就不会出现我说的那个问题,其实我的那个问题是和流 ...
h#F0Ftp-M51Testing软件测试网51Testing软件测试网*S/z3\.h/o0y7Z4w
VBS和java, C等语言有非常大的区别,切不可拿这些编程经验往vbs上套,典型的经验主义~~~软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具8@9x Y]bE-h^zj,F!a
不确定的就得抱怀疑的态度去尝试,实践出真知。
,|1d3Qy        O(taW-Lwww.51testing.com
JVaM#A软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具当然,还有一点,也是最重要的一点——实践完了发上来share~~~
z93620104发布于2008-09-27 15:37:29
知识分享www.51testing.coml^[M6H)w&wAF"c
经验共享
loho1968的个人空间 loho1968 发布于2008-09-27 15:40:00
其实,如果你的程序对有好的错误处理,第一种写法没有什么问题。www.51testing.comWlT+c:xV
试想一种情况:如果Button没有了,第2种写法同样要出错。如果没有错误处理,也同样的有问题。
假装不在 假装不在 发布于2008-09-27 16:16:01

QUOTE:

原帖由 loho1968 于 2008-9-27 15:40 发表
        H#t)C1TV U中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务其实,如果你的程序对有好的错误处理,第一种写法没有什么问题。软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具!LUc`y        a
试想一种情况:如果Button没有了,第2种写法同样要出错。如果没有错误处理,也同样的有问题。
51Testing软件测试网cmSuz9Y2EdMlG

^P6z/TI7P软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具

lO dJ5k?8h P!["P        ^软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具
这个就错了。
aAq!HQsmM软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具第一种写法,如果button没有了,哪么它还会去取button的属性,导致出错软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具#B
fd
_ S ?}m        D pX

第二种,如果你使用判断exist(0),因为对象不存在而让它出错,哪么这个方法就没意义了。如果不存在,下面2个if就不用判断,同时错误也不会发生。
4RMb'S|a5oEj中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务
voa9k"}#e
h%J"GN中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务
实践实践实践!
yxfqjj发布于2008-10-06 14:59:24
顶下~~~~~~~
猪猪的蓝色梦幻城堡 qicyt1812 发布于2008-10-07 17:23:56
呵呵,好久不来了,这里热火朝天啊
lvxjsheng0508发布于2008-10-09 18:08:18
之前研究过QTP,后来由于工作忙,就放下了.当时遇到了很多的问题,到现在还没有解决呢.
lery的个人空间 lery 发布于2009-09-09 22:57:43
还真没怎么去了解过VBS,只知道它可以干哪些活儿。。。。目前俺还停留在如何将项目赶紧搞好跑起来,离完善这种思想还很远 要继续努力啊
dabeixiong的个人空间 dabeixiong 发布于2009-09-09 23:46:14
第一个条件False时竟然还继续判断后面的条件...VBS这块是有古怪,LZ能发现果然够牛...我是这么试出来的...大家应该明白了吧...
'q@E'lT C2|www.51testing.com软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具)zYEV\0[oV
a = 2
n%S7jj%[L!c }*q,~O.gIf a=3 And SecondCheck(a) Then
3|:V        `X(hD51Testing软件测试网        'If判断两个条件都为真时才输出OK51Testing软件测试网F,C;C7@#e.A
        MsgBox "ok"软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具J[pBp&\n
End If软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具/K/a'o'CW)U4d4@Ww

UKJQ9w!c软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具'VBS如果对第二个条件进行检查则输出
F        V;N,Om/L6Ti软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具Function SecondCheck(b)
$e)Or\%`6J中国软件测试人的精神家园,介绍先进的软件测试工具、 软件测试流程和软件测试思想,定期举办软件测试沙龙,软件测试精品 资料下载,提供专业的软件测试培训服务        If b = 2 Then
/Lq.|.\,J                MsgBox b软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具2u:Mt%Xb7r5k.K9yA
        End If
R m~r/C5n软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具End Function
要走就走100年 cswalkman 发布于2010-11-04 14:48:02

QUOTE:

第一个条件False时竟然还继续判断后面的条件...VBS这块是有古怪,LZ能发现果然够牛...我是这么试出来的...大 ...

x!a.YPbEEL软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具
dabeixiong 发表于 2009-9-9 23:46
软件测试 - 软件测试论坛 - 软件缺陷跟踪 - 软件配置工具 - 测试用例设计 - Web测试 -  自动化测试工具b[0waU
O"a

51Testing软件测试网r.ab5_*w+Q
软件测试,软件测试论坛,软件测试方法,软件测试工具,软件测试流程,软件测试培训,软件测试外包,软件质量管理 ,软件缺陷跟踪,软件配置工具:Yo4P$AH3@
    楼上
yunbin_7的个人空间 yunbin_7 发布于2010-11-04 17:20:14
学习了,谢谢楼主的分享啊。。。
我来说两句

(可选)

Open Toolbar