思考,思考自己、思考别人! #ps -ef | grep oracle 修身、齐家、治国、平天下!

我的QTP的学习方法及总结(二)

上一篇 / 下一篇  2009-02-25 22:39:30 / 个人分类:QTP学习

我的QTP学习方法及总结(二)51Testing软件测试网]] zjv \

                        季风51Testing软件测试网-NS.He1jIDpz

 

p Bp$R)y,t1T0

之前完成了一部分,今天继续。51Testing软件测试网aH] ~7T|%o:k

 

B$Q$T+T1lkG0

上一部分说了QTP识别对象的原理,运行机制问题。接下来自然就是正确识别对象以后,如何操作这些对象。换句话说就是我们用QTP对界面上的元素都能干些什么。在测试过程中,我们要尽量模拟出用户的操作场景,验证系统在这些场景下的响应。QTP的脚本,就是让程序去实现这些操作,如单击、选择数据、输入数据等操作。

W*qHN-e;G0

 

I"{-gb F nA jF#A0

QTP正对每一种对象,均提供了一套方法。写脚本时,在对象后输入英文“.”则会自动感知,列出该对象所有支持的方法。如图

gJx+t|4e0

 51Testing软件测试网6ir/IG0Z\Y%a&PG

L+g"nPPGy/m0

3V-o+^h4S%D? M0

 

+HW z$JEu7@k ^r7b0  学习、掌握这些方法的用法是很重的一环。这也是QTP很基础的一些应用。学习这些方法最好的方法就是挨个的自己去验证,并结合帮助文档把每个用法的要点、应用场景、作用搞明白。有些方法网上的朋友也做过详细的分析、比较,可以参考加深理解。所以在这个阶段就尽情的按“F1”吧。51Testing软件测试网n I W(i2wRvh@
51Testing软件测试网Le%rW6D B"n??
  附中文帮助地址:http://bbs.ltesting.net/thread-57752-1-1.html
0k:w#I4p-Js051Testing软件测试网r9Q gcl&RR
  经常有朋友问我这么多对象,这么多方法,怎么能记的住呢。其实只要安下心,慢慢钻研1到2个小时,就会发现其中的规律。很多方法对很多对象都是通用的,而且方法都是相通的,所以只要把一个对象下边的方法掌握了,其他对象的方法掌握起来也就很简单了。有一些方法一点要牢记,做到就像吃饭前要拿筷子一样得心应手。如Click,Select,WaitProperty,Set,ColumnCount,GetCellData,RowCount等这种常用的方法。还有一些很相似的用法的区别要搞清楚,如:GetROProperty,GetTOProperties,GetTOProperty,GetTOProperty。这几个很相近,但从名字上很容易区分开,他们的介绍网络上已经介绍的很清楚,这里不再累述。
Td7mI_J0
d!@-w?F rV.S?;I w {0  Browser对象一个很有用的表示符creationTime,这个属性在写web系统的脚本时可以发挥很大作用。它是根据Browser的打开顺去去识别对象,而不会根据具体的属性。这样可以避免由于属性改变造成对象不识别的麻烦。Browser("creationTime:=1")识别得失第二个打开的浏览器。creationTime是Browser对象特有,其他对象类似属性时index和Location。
BwP~^#Ul&p-P0
+ZJ/c%dv,c0?0  WebTable对象,有时系统里存在多个表,但表面看是一个表而且这些表的属性都一样。但只有一个表里有数据,其他都是空表。我曾经遇到脚本不报错,但取的值一直为空就是因为这个原因。解决办法就是在属性里加上index去识别表。
lP_4c|051Testing软件测试网-c)X M6[rp1eRwG
  通过对象的Object属性可以访问对象的内部方法和属性,这样可以使脚本更灵活,有时可以解决大问题。通过spy可以知道对象都有哪些内部属性和方法。如图,在Run-time列出了内部方法。

 51Testing软件测试网#]bohL6Q#}c

51Testing软件测试网2k)\M%`j

 

}T0I0M ~bZ ?`0

51Testing软件测试网\&o.}lEXV:V

代码1

z:i x.V Q {2p*A^vO0

SerchText("")

|vuOD8TGd5IM0

Sub SerchText(testStr)51Testing软件测试网!P,c MZWq$v VE V

      set a=Browser("name:=百度一下,你就知道").Page("title:=百度一下,你就知道").Object.body.createTextRange()51Testing软件测试网W4y:k Uq4U9~f%{

      b=a.text

Qb&J\ KU m zd0

      Set regEx=new RegExp51Testing软件测试网5EvV2e3XC{

      regEx.Pattern=testStr

b ?B![(ez!X t0

      regEx.IgnoreCase=true51Testing软件测试网4Gn7TTF_ C%E

      regEx.Global=true51Testing软件测试网$b Kl&E`

      Set Matches=regEx.Execute(b)

vm2^.v dd5]7o0

       For Each Match in Matches     'Matches集合进行迭代。51Testing软件测试网Cx)~M0l8?

             RetStr = Match.Value

1RN`'Z7Hf5H&A0

             msgbox RetStr

}6n6B+S i%{0

       Next51Testing软件测试网*wK0yE_ z$g@

End Sub51Testing软件测试网{tH+f#BA\ B%u!F

以上代码实现通过Object和正则表达式在页面上查找字符串功能。

{AM XVqQ3l~0

 

h;l8D'fo+U ?@0

代码251Testing软件测试网b_*N;wo"l,Q

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Object.setAttribute "value","我的搜索"51Testing软件测试网3Q-~ t&N pj|

    这句代码通过ObjectsetAttribute修改运行时按钮的value值。运行一下看看效果。运用场景:输入框需要单击激活输入状态,通过QTP脚本不能激活,此时可以通过修改运行对象的属性将其激活。

TAG:

 

评分:0

我来说两句

Open Toolbar