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

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

在QTP中使用描述性编程(实例)

发布: 2008-9-25 17:15 | 作者: Holly zhao | 来源: hollyzhao的专栏 | 查看: 246次 | 进入软件测试论坛讨论

领测软件测试网   在QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。
        通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。
 
        说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。
 
        步骤一:录制脚本
Dialog("Login").WinEdit("Agent Name:").Set "Holly"
Dialog("Login").WinEdit("Password:").SetSecure "46ef0dc7efe5834c73673898279af1204fea51a7"
Dialog("Login").WinButton("Cancel").Click
共录制3步操作,输入Agent Name, Password, 点击Cancel按钮
 
        步骤二:初级描述性编程
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Agent Name:").Set "Holly"
Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Password:").Set “Mercury
Dialog("Regexpwndtitle:=Login").WinButton("Class Name:=WinButton", "text:=Cancel").Click
        在这里要注意有三点:
        1)如果需要两个以上特性来描述一个对象,需要使用逗号(,)对描述性语言进行分割
        2)使用:=来连接属性和属性值,并且:=两边不能有空格
        3)使用SPY查看对象的属性名和属性值(Tools -> Object Spy)
 
        步骤三:描述性编程提高
Dim descEditLogin
Set descEditLogin = Description.Create()
descEditLogin("Class Name").Value = "Dialog"
descEditLogin("Regexpwndtitle").Value = "Login"
 
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
        在这里需要注意有两点:
        1)把经常使用到的对象定义为一个对象变量,方便以后调用,减少代码工作量和错误
        2)使用SPY获取对象的属性和属性值
 
        步骤四:使用自定义的环境变量
        在File>>Settings>>Environment中选择user-defined,增加一个变量
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
        当然,参数化的方式很多,这边介绍的是使用环境变量
 
        步骤五:从XML文件导入环境变量
<Enviroment>
       <Variable>
              <Name>dlgLogin</Name>
              <Value>Login</Value>
       </Variable>
</Environment>
可以使用手工导入,也可以使用LoadFromFile自动导入
 
        总结:
        优点是当对象的一些属性变更后,脚本更容易维护。
        比如说对于一个通用对象,比如save, reset, cancel等按钮,一个页面有3个,30个页面就有90个对象,
        假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。
        而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。
        当然描述性编程的作用远远不止这些,这次只是抛砖引玉,希望大家共同进步。

延伸阅读

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

TAG: qtp QTP 描述性 实例


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

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