软件测试工具QTP中的Description对象详解
QTP是Mercury QuickTest 企业级自动化测试工具!
目前已经被惠普收购,正式名字为HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 10.0.
HP QuickTest Professional 提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念已简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。
在QTP中,description对象的用途基于这样一个基础:QTP是建立在对象识别基础上的自动化测试工具,当需要操作一个对象时有三种方式:1,使用对象库中已经记录的控件名;2,使用描述性编程;3,使用description对象。
其实对于2和3的理解是类似的,也就是说,当QTP在执行过程中需要给他一个描述,即“我要操作谁”,对于第二种方式,是告诉QTP“你给我找一个控件对象,找到它可能需要经过几层查找,但是我已经给定了每层查找的查找条件”;对于第三种方式,一般是这样告诉QTP,“我现在有某个控件对象,你帮我查找某些符合条件的孩子”
上面说起来有点拗口,其实就是下面两种那个方式:
方式1
Browser("title:=Google").Page("title:=Google").Link("text:=Google").click |
方式2
Dim oDesc Dim colObject Set oDesc = Description.Create oDesc( "miclearcase/" target="_blank" >cclass" ).value = "Link" Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc ) |
那么我们在使用description对象时经常需要注意的点有:
1. 创建一个description对象的方法是:
Set oDesc = Description.Creates |
2. 设置查找条件的方法是:
Set oDesc = Description.Create oDesc( "micclass" ).value = "Link" oDesc( "text" ).value = "Images" |
3. 看一个对象是否找到以及是否查找正确你可以有两种方法:
高亮查找到的控件:colObject(0).Highlight检查查找到的控件个数:Msgbox colObject.Count
4. 给定限定条件你也可以使用正则表达式,不过注意设置开关打开:
Set oDesc = Description.Create oDesc( "micclass" ).value = "Link" oDesc( "text" ).value = "I.*age.*" oDesc( "text" ).regularExpression = True |
注意:默认情况下正则表达式的开关是打开的
如果你这里正则表达式的开关设置成为了false,那么你查找到的是text属性为“I.*age.*”的link。
5. 注意某些description的成员设置属性值时,需要使用整型数,而非字符串。
Dim oDesc Dim colObject Set oDesc = Description.Create oDesc( "micclass" ).value = "Link" oDesc( "x" ).value = 51 Set colObject = Browser( "title:=Google").Page("title:=Google").ChildObjects( oDesc ) MsgBox colObject.Count For x = 0 to colObject.Count - 1 MsgBox colObject(x).GetROProperty("innertext") Next |
6. 限定条件可以参数化
Dim x X=56 Browser("creationtime:="&x).Page("micclass:=Page").WebEdit("name:=q").Set "Description.Create" |