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

上一篇 / 下一篇  2009-03-29 11:41:34 / 个人分类:QTP

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

8]4SLCXvkr+o.FH138711

 51Testing软件测试网#{)kEK J`%c-N]mq G

QTP正对每一种对象,均提供了一套方法。写脚本时,在对象后输入英文“.”则会自动感知,列出该对象所有支持的方法。如图51Testing软件测试网%]M~ U)X"yq/]

 51Testing软件测试网!_mv7lgWi ma

W1q y$~"Ip J3w-\[138711

51Testing软件测试网&H(A(k%vBOV

 

6}Eh0G[CP$?S138711  学习、掌握这些方法的用法是很重的一环。这也是QTP很基础的一些应用。学习这些方法最好的方法就是挨个的自己去验证,并结合帮助文档把每个用法的要点、应用场景、作用搞明白。有些方法网上的朋友也做过详细的分析、比较,可以参考加深理解。所以在这个阶段就尽情的按“F1”吧。
N-K2v1E;B-m }u13871151Testing软件测试网&g2O4J5X]#Q.Eo
  附中文帮助地址:http://bbs.ltesting.net/thread-57752-1-1.html51Testing软件测试网3j~"^ B&r)c

2\#} }$UT No$?138711  经常有朋友问我这么多对象,这么多方法,怎么能记的住呢。其实只要安下心,慢慢钻研1到2个小时,就会发现其中的规律。很多方法对很多对象都是通用的,而且方法都是相通的,所以只要把一个对象下边的方法掌握了,
其他对象的方法掌握起来也就很简单了。有一些方法一点要牢记,做到就像吃饭前要拿筷子一样得心应手。如Click,Select,WaitProperty,Set,ColumnCount,GetCellData,RowCount等这种常用的方法。还有一些很相似的用法的区别要搞清楚,如:GetROProperty,GetTOProperties,GetTOProperty,GetTOProperty。这几个很相近,但从名字上很容易区分开,他们的介绍网络上已经介绍的很清楚,这里不再累述。51Testing软件测试网MH1n1T-Pf jL

"` \h*@)UEDH{{138711  Browser对象一个很有用的表示符creationTime,这个属性在写
web系统的脚本时可以发挥很大作用。它是根据Browser的打开顺去去识别对象,而不会根据具体的属性。这样可以避免由于属性改变造成对象不识别的麻烦。Browser("creationTime:=1")识别得失第二个打开的浏览器。creationTime是Browser对象特有,其他对象类似属性时index和Location。
!O4x Gf#c |138711
d`+?S8Ak138711  WebTable对象,有时系统里存在多个表,但表面看是一个表而且这些表的属性都一样。但只有一个表里有数据,其他都是空表。我曾经遇到脚本不报错,但取的值一直为空就是因为这个原因。解决办法就是在属性里加上index去识别表。51Testing软件测试网M"^b;? \6p
51Testing软件测试网R"e*O$LE;@|"K[
  通过对象的Object属性可以访问对象的内部方法和属性,这样可以使脚本更灵活,有时可以解决大问题。通过spy可以知道对象都有哪些内部属性和方法。如图,在Run-time列出了内部方法。

 51Testing软件测试网N9z(o5s3oNl

51Testing软件测试网 g0fbc'U2w l

 51Testing软件测试网~ `%|\ xSi}

51Testing软件测试网|;g1N+uC7w]Z6TtM}

代码1

|m{J~5jX^138711

SerchText("")51Testing软件测试网antah(S

Sub SerchText(testStr)51Testing软件测试网.m?u;dz

      set a=Browser("name:=百度一下,你就知道").Page("title:=百度一下,你就知道").Object.body.createTextRange()51Testing软件测试网)c)O^zMS:F

      b=a.text51Testing软件测试网%jfV5f?

      Set regEx=new RegExp

Bv&R\-S5r4x138711

      regEx.Pattern=testStr51Testing软件测试网h)hC#dgp1^

      regEx.IgnoreCase=true

FL"g3rL$C5KX138711

      regEx.Global=true

,n,yd4`#Y:q138711

      Set Matches=regEx.Execute(b)

f[g;M*d138711

       For Each Match in Matches     'Matches集合进行迭代。

$D;KU9E ~DV|c138711

             RetStr = Match.Value

C3T+ARL'~*g;r WN"k138711

             msgbox RetStr51Testing软件测试网j ^7VdH/e

       Next51Testing软件测试网Rb&rv,fMx?4[

End Sub51Testing软件测试网ySXh`iy.WZ)L)l9T^

以上代码实现通过Object和正则表达式在页面上查找字符串功能。51Testing软件测试网/[P ~"gP

 

Z7i'\h'MB138711

代码251Testing软件测试网D,pT i N+}1{

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Object.setAttribute "value","我的搜索"51Testing软件测试网8i @+@)H0?1s\g9X

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


 


TAG:

 

评分:0

我来说两句

Open Toolbar