• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

QTP描述性编程

发布: 2011-4-20 09:15 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 211次 | 进入软件测试论坛讨论

领测软件测试网

  dlgLogin = “Login”

  这样脚本可以被修改为:

  Dim descEditLogin

  Set descEditLogin = Description.Create()

  descEditLogin("Class Name").Value = "Dialog"

  descEditLogin("Regexpwndtitle").Value = Environment.Value("dlgLogin")

  Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly"

  Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"

  Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click

  当然,参数化的方式很多,这边介绍的是使用环境变量

  总结:优点是当对象的一些属性变更后,脚本更容易维护。比如说对于一个通用对象,比如save, reset, cancel等按钮,一个页面有3个,30个页面就有90个对象,假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。当然描述性编程的作用远远不止这些,这次只是抛砖引玉,希望大家共同进步。在QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。

  QTP的工作原理有点类似人类社会的某些场景.比如一个朋友委托你带东西给A,如果你认识A,这表明A的容貌特征以及一些联系已经在你脑海有了印象,那么你只要找到了A的住所,那么这个任务就很容易完成了,如果你根本就不认识A,则这个任务就很难完成了. 那在QTP中有没有一种方法,无须在对象库中记录任何关于某个对象的信息,就可以完成对该对象的操作呢,有.那就是描述性编程,其工作原理就象上面这个例子.

  在QTP中,有一按钮对象,对它的操作如下:Dialog("Login").WinButton("OK").Click但是如果我们在对象库中删除这个对象后,执行这句话就会出错,提示找不到对象,在这个时候,我们就可以通过描述性编程给他指定对象及其他的一些属性,修改如下Dialog("Login").WinButton("text:=OK").Click

  上面脚本中,通过WinButton("text:=OK")明确告诉QTP去寻找文本属性为OK的按钮,于是QTP正确识别到该对象,顺利的执行了脚本.这种不需要在对象库中存储对象的信息,就可以执行对象操作的方法,就是QTP中比较高级的用法:描述性编程(descrīptive progamming).描述性编程和传统的QTP脚本的区别是:他把需要识别的对象的属性从对象库中转移到了脚本里面,通过在脚本里面的特殊语法格式.来告诉QTP识别对象的方法.描述性编程更加灵活,因为他不需要经过录制这个步骤,可以直接通过编程的方式操作任何一个你想操作的对象,只要你在测试脚本代码里提供给QTP识别该对象的足够信息

  描述性编程的语法格式如下:

  micClases("property1:=value1","property2:=value2")

  micClass标志某个对象的类别,括号里面通过jproperty:=value的形式告诉QTP识别该对象的必要属性.我们继续修改一下测试脚本:Dialog("Login").WinButton("text:=OK").Click修改后:Dialog("Login").WinButton("nativeclass:=Button","text:=OK").Click.F5执行,结果运行顺利.这次修改,我们使用了一个通用的对象类WinObject,而把按钮当作一个基本属性nativeclass:=Button,同样可以完成对该按钮的操作

  由上面的叙述我们可以看出来,描述性编程没有严格的要求,只要遵循一个原则:在代码中告诉QTP足够他识别该对象的属性,QTP就可以不通过对象库,而是通过描述性编程的方式完成对指定对象的操作.所以描述性编程没有什么神秘的,他无非是把原来存储在对象库中的信息提到代码中来了而已.

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网