[QTP]描述性编程
2014-03-29 16:24
211 查看
1. 使用描述性编程的时机
录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是它太依赖测试对象库,有时会有一些问题。比如相同的元素,部分属性(比如名称、标题等)是动态产生的,那么在回放脚本中会导致找不到对象。如果用描述性编程编写的测试脚本,QTP会使用测试脚本中给出的对象描述来查找对象,查找的不是对象库,而是与测试程序运行时QTP为其创建的临时测试对象版本进行匹配,例如:
2. 描述性编程的使用方法
这种直接描述的方式的一般使用格式如下:
QTP还提供了一个Description对象,用于返回对象包含的属性,例如:
3. 用编程方式创建检查点
通过编程方式创建检查点,对于不能使用普通检查点对象的情况来说会非常有用。比如需要检查的对象属性没有存储在对象库中,仍然可以自己创建检查点,把检查的结果写入测试结果中。
GetROProperty用来获取控件动态属性,例如:
录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是它太依赖测试对象库,有时会有一些问题。比如相同的元素,部分属性(比如名称、标题等)是动态产生的,那么在回放脚本中会导致找不到对象。如果用描述性编程编写的测试脚本,QTP会使用测试脚本中给出的对象描述来查找对象,查找的不是对象库,而是与测试程序运行时QTP为其创建的临时测试对象版本进行匹配,例如:
Browser("title:=百度一下*")这里通过正则表达式来匹配Browser的标题,即使窗口是动态生成的,但标题都是以“百度一下”开头,所以可以用这个方式匹配所有标题以“百度一下”为开头的Browser对象。也可以组合几个属性来标识控件,例如:
Browser("title:=百度一下*", "index:=0")
2. 描述性编程的使用方法
这种直接描述的方式的一般使用格式如下:
TestObject("ProName1:=ProValue1", "...", "ProName2:=ProValue2")通过直接指定测试对象的一个或多个PropertyName来描述控件,需要注意的是,属性和属性值之间要用":="分隔。
QTP还提供了一个Description对象,用于返回对象包含的属性,例如:
Set MyDescription = Description.Create(); MyDescription("title").Value="百度一下*" MyDescription("index").Value=0 Browser(MyDescription)另外还可以使用ChildObjects方法来获取某个父对象下面的所有子对象,例如:
Set childObjects = Browser("title:=百度一下*", "index:=0").ChildObjects() msgBox childObjects.Count
3. 用编程方式创建检查点
通过编程方式创建检查点,对于不能使用普通检查点对象的情况来说会非常有用。比如需要检查的对象属性没有存储在对象库中,仍然可以自己创建检查点,把检查的结果写入测试结果中。
GetROProperty用来获取控件动态属性,例如:
If Browser("title:=百度一下*", "index:=0").GetROProperty("openurl") = "about:blank" Then Reporter.ReportEvent micPass, "CheckBrowser = PASS ", "测试通过" End If
相关文章推荐
- WinRunner与QTP——我们该选择谁
- QTP关键技术
- 跟小师父学习QTP后的总结
- 用Javascript操作QTP的研究
- 使用WaitProperty 的一些思考
- QTP中使用正则表达式
- QTP Report对象的“私家珍藏”
- RegisterUserFunc 重写QTP自带对象的方法
- 自动化测试 + QTP 11 破解方法
- QTP专家视图方法总结
- QTP写Log文件
- Dictionary Object (Scripting Runtime Library)
- QTP-FunctionPointer-DesignPattern
- QTP设计模式-命令包装模式
- 自定义Class类注入测试对象
- QTP-Rescovery出错截屏函数
- RepositoriesCollection方法
- VBScript字符串函数
- QTP DEV控件相关
- QTP常用函数