1. 使用描述性编程的时机

录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是它太依赖测试对象库,有时会有一些问题。比如相同的元素,部分属性(比如名称、标题等)是动态产生的,那么在回放脚本中会导致找不到对象。如果用描述性编程编写的测试脚本,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" ThenReporter.ReportEvent micPass, "CheckBrowser = PASS ", "测试通过"
End If

转载于:https://blog.51cto.com/hanviseas/1386600

[QTP] 描述性编程相关推荐

  1. QTP - 描述性编程

    QTP - 描述性编程 描述性编程: 1.QTP的描述性编程能够摆脱测试对象库的限制,编写出更为复杂.适应能力更强的测试脚本. 2.即不需要在仓库晨定义,也能访问和操作实际对象. 3.用描述性编程编写 ...

  2. 浅谈QTP描述性编程(含实例)

    测试空间旗下大头针出品 一开始接触QTP太强了,可以录制回放啊.可以像使用录音机一样,可以一遍又一遍的回放录音内容.有了QTP,我们就不用一遍又一遍的测试了. 但慢慢发现,QTP如果一遍又一遍的运行程 ...

  3. QTP的飞机登录描述性编程

    在QTP中,要先去录制用户名和密码,错误的一次和正确的一次,对于错误所弹出的对话框要进行建立文本的检查点,以便datatable的用例进行比对.用户名和密码要进行参数化,在进行判断. Dim url ...

  4. QTP自动化测试从零基础到精通进阶(脚本测试、VBS语法、描述性编程、测试框架)...

    QTP自动化测试从零基础到精通进阶(脚本测试.VBS语法.描述性编程.测试框架) 网盘地址:https://pan.baidu.com/s/19yUptC8PBFZFfH-VpyUUpQ 提取码: a ...

  5. web test automation test / QTP / IBM RFT / Selenium IDE / IOS appium / AU3

    Selenium WebDriver / Selenium IDE http://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ S ...

  6. QTP自动化测试实践 详细目录

    第 1 篇 自动化测试基础篇 第1章 软件测试基础 1 1.1 软件缺陷与软件测试 .......................................................... ...

  7. linux如何根据端口看进程,linux 根据端口查看系统进程

    JavaScript学习笔记之数值 JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此.(整数也是通过64浮点数的形式来存储的) 所以,1+1.0=2:且1===1.0的 ...

  8. 《精通QTP——自动化测试技术领航》—第1章1.6节对象库(下)之进阶编程篇

    本节书摘来自异步社区<精通QTP--自动化测试技术领航>一书中的第1章1.6节对象库(下)之进阶编程篇,作者余杰 , 赵旭斌,更多章节内容可以访问云栖社区"异步社区"公 ...

  9. QTP之web常用对象

    web对象是我做自动化以来最早学习,最早接触的.对现在而言也是最熟悉不过的了,但是为了以后更稳健的前进,对基础的东西搞扎实,相信以后的路会顺畅许多,下边简单汇总下web的常用几类对象: Browser ...

最新文章

  1. BGP community
  2. 3950双层交换机生成树协议
  3. 中国移动推出企业飞信 五大亮点深挖企业服务
  4. Linux学习之系统编程篇:exec 函数族
  5. POJ3764 The xor-longest Path(Trie树)
  6. P2237 [USACO14FEB]自动完成Auto-complete
  7. 有关UIView、subview的几个基础知识点-IOS开发 (实例)
  8. js跟php增加删除信息,浅谈JavaScript数组的添加和删除
  9. Ubuntu下Android编译环境的配置
  10. linux NAND驱动之四:6410上的NAND读写流程
  11. AJAX Control Toolkit ——FilteredTextBoxExtender(文本过滤)
  12. 【渝粤教育】国家开放大学2018年春季 0299-21T中国古代文学(1) 参考试题
  13. 深度linux如何打开exe文件,在deepin中简单粗暴地执行exe程序
  14. AD16 pdf打印输出彩色
  15. windows下无npcap驱动导致golang获取网卡失败问题
  16. java 聊天室 私聊_Java聊天室——实现多人聊天、私聊、群聊
  17. 17 款程序员神级 Chrome 插件,爱了爱了!
  18. 计算机sql查询同行并集,SQL查询交集、并集、差集
  19. 《诺曼底大风暴》观后感
  20. Android应用开发性能优化完全分析,移动应用开发课程报告

热门文章

  1. java中类型的相互转化_Java中的数据类型及相互转换方法
  2. LTE各场景下的密钥处理
  3. Eclipse中如何恢复已删除文件
  4. 自定义类在PropertyGrid上的展示方法
  5. window版docker安装及配置
  6. Python学习笔记-day1(while流程控制)
  7. python zipfile 文件压缩和文件
  8. 内核控制Meta标签:让360浏览器默认使用极速模式打开网页(转)
  9. MySQL学习_计算用户支付方式占比_20161104
  10. 数据库四种事务隔离级别详解