本节我们来讨论一下关于qtp的描述性编程,说到描述性编程其实也就是对所测试的对象进行编程,所以说测试也还是离不开编程,只不过与程序员的编程对象不同罢了,可以说学习测试必须也具备很好的编程基础,有很好的编程爱好才行。
qtp中所谓的描述性编程其实就是为了增强脚本,提高qtp脚本的执行效率。一般情况下qtp是通过对象库来识别对象,而描述性编程是另一种识别对象途径,它本身并不依赖对象库,通过一些对象的解剖或是说描述来识别对象的。这里我们就以qtp附带的实例飞机订票系统为例,这里我们对它的登录过程进行一个描述性编程的介绍:
<1>录制脚本
Dialog("Login").WinEdit("Agent Name:").Set "candle"
Dialog("Login").WinEdit("Password:").SetSecure "46ef0dc7efe5834c73673898279af1204fea51a7"
Dialog("Login").WinButton("OK").Click
注:操作步骤是输入用户名、密码和点击登录按钮
<2>描述性编程
SystemUtil.Run "C:/Program Files/HP/QuickTest Professional/samples/flight/app/flight4a.exe"//开启飞机程序
Dialog("Regexpwndtitle:=Login").winEdit("attached text:=Agent name:").Set("candle")//输入登录用户名
Dialog("Regexpwndtitle:=Login").winEdit("attached text:=password:").Set("mercury")//输入密码
Dialog("Regexpwndtitle:=Login").winbutton("class name:=winbutton","text:=OK").Click//点击OK
注:这里首先我们不需要依赖对象库来识别这些对象;这其中的描述性编程主要体现在()中的表达方式,这其中的描述主要是通过对每个对象的不同属性来进行编写的,一般情况我们不知道如何在这里对这些属性进行描述,我们可以借助使用SPY查看对象的属性名和属性值(Tools -> Object Spy),这个工具是qtp描述性编程的探索器,我们在编写脚本中是依靠Spy来完成我们脚本中一些对象的属性的。
关于描述性编程还有一些其他的技巧,比如在qtp中对某些属性可以使用自定义的环境变量,还有一些对象可以通过xml来进行导入,这样我们可以更好的维护我们的脚本,关于这些我本人也在学习过程中,希望后期能够很好运用起来跟大家来分享。