QTP入门与实践.ppt
QTP入门与实践,培训大纲,QTP的背景知识、应用范围及基本功能介绍QTP的核心功能解析一个例子带你进入QTP的实践QTP开发相关参考资料,培训大纲,QTP的背景知识、应用范围及基本功能介绍QTP的核心功能解析一个例子带你进入QTP的实践QTP开发相关参考资料,QTP背景知识,QTP是HP公司花费45亿收购的美科利产品套件之一QTP是继WR产品之后推出的以VBS为内嵌语言的工具QTP是一款用于功能测试的自动化测试工具QTP可以和HP的QC产品协作进行自动化测试开发(BPT)QTP是一款容易掌握但价格很高的测试自动化工具QTP:Quick Test Professional BPT:Business Process TestingVBS:VB script WR:Win Runner,QTP应用范围,自带插件ActiveX,Database,StdWindows,TEA,VisualBasic,Web,XML额外购买插件Java,DotNet,PeopleSoft,VisualAge,Siebel,Oracle,目前还有flex也有了相关插件,不过感觉不是很好用,QTP的基本功能介绍,创建测试 检验数据 增强测试 运行测试 分析结果 维护测试,QTP的基本功能介绍(官方广告),HP QuickTest Professional 支持功能测试和回归测试自动化,用于每个主要软件应用程序和环境。此解决方案使用关键字驱动的测试概念,简化了测试创建和维护过程。它使测试人员能够使用专业的捕获技术直接从应用程序屏幕中捕获流程来构建测试案例。测试专家还可通过集成的脚本和调试环境完全访问内在测试和对象属性。,QTP的基本功能介绍(作者观点),Test,Action,Action,Action,Function,Function,Function,Function,Library,Step,Step,Step,以Test为测试运行单位,每个Test包含若干类型Action。以Action为最小单位映射对象库,多个Action之间可以共享统一对象库Action内的Step可以包含用户录制操作或者函数库内对Function的调用,Step,Step,QTP的基本功能介绍,用15分钟视频对QTP全部功能进行快速解释。,培训大纲,QTP的背景知识、应用范围及基本功能介绍QTP的核心功能解析一个例子带你进入QTP的实践QTP开发相关参考资料,核心功能清单,对象库描述性编程检查点对象属性运行期间变更数据驱动错误恢复自动化对象,核心功能-对象库,入口:Resources-Object RepositoryCtrl+R 功能保存被测试对象属性,在编写执行步骤时使用,核心功能-对象库,对象库中的对象可以在录制过程中自动产生,也可以手动添加指定对象对象库分为本地对象库和共享对象库,区别是:本地对象库只应用于本地Action调用 共享对象库以.tsr扩展名文件形式存在,可以被其他Action调用。对象库面板具有定义以及更新对象的功能,并且能够进行在被测软件和对象库之间双向查找对象。对象属性可以在对象库中被任意修改,并且其属性描述支持正则表达式。,核心功能-对象库,智能识别是鸡肋,辅助标识符要慎用对象库与描述性编程的区别:对象库将对象收集起来,以可视化的方式呈现给用户描述性编程在运行步骤中通过对象属性指定对象。结合使用时应注意:描述性编程的子对象不可以是对象库中的对象,反之可以。具体采用哪种方式指定对象因具体情况和个人喜好所定,并非描述性编程更“高人一筹“,核心功能-对象库-简单的对象识别原理,用户通过录制或指定对象属性的方式将一个对象添加到对象库,在录制过程中添加的对象是根据Tools-Object Identification中的设定记录的。在回放的过程中QTP通过将对象库中的对象属性和被测软件中的实时对象属性进行比对,如果发现存在能够唯一确定的对象,则对对象使用相应的用户设定的方法,完成用户动作。若不能发现唯一确定的对象,则启动智能识别机制,若智能识别仍无法唯一确定对象,则报错。更多细节请参见QTP帮助。,核心功能-描述性编程,Browser(name:=UML软件工程组织).Page(Title:=UML软件工程组织).link(text:=项目管理,html tag:=A).ClickSet desc=Description.Createdesc(text).value=项目管理desc(html tag).value=ABrowser(name:=UML软件工程组织).Page(Title:=UML软件工程组织).link(desc).Click对象类型(“识别属性1:=属性值”).子对象属性(“识别属性1:=属性值”,“识别属性2:=属性值)。方法此外,描述性编程中属性值默认是支持正则表达式的,在使用中请留意。由于支持了正则表达式,就可以一次获取多个测试对象,便可以逐个处理这个相似对象集。,核心功能-检查点,可检查类型包括上图中所有Checkpoint中子菜单项,包括文字,位图,XML,数据库(数据表)等检查点。每个检查点的执行结果都会在Automation-Result中存在相应的记录。有些检查点需要在录制状态下才能够使用。,核心功能-对象属性运行期间变更,Object(description).SetTOProperty Property,Value 通过此方法能够在运行期间更改对象库中对象的识别属性值。尤其在一个循环逻辑中更为常用,通过每次循环修改属性值,完成对一系列类似对象的相同动作。此方法弥补了对象库相对于描述性编程的不足。Browser(UML软件工程组织).Page(UML软件工程组织).Link(项目管理).SetTOProperty text,需求管理Browser(UML软件工程组织).Page(UML软件工程组织).Link(项目管理).Click,核心功能-对象属性运行期间变更,更多方法,通过.object对象,能够使用对象本身(没有被QTP封装)的更多方法或属性值设定。,核心功能-数据驱动,通过变更不同的数据组合,执行相同的逻辑步骤,完成对一个测试用例的测试。数据来源可以是:Excel表格,数据库(数据表),XML文件,TXT文件。任何有规则的VBS可以操纵的文件类型都可以作为QTP的数据来源。当然最常用的还是Excel表。,核心功能-错误恢复,QTP软件本身自带了错误恢复手段 Recovery Scenario Manager。通过在发生不同错误的时候,执行指定的操作,保证测试脚本能够24*7的不间断运行。用户也可以通过在容易发生错误的步骤或函数调用处执行相应的操作,保证无人值守时不宕机,脚本不中断。,核心功能-错误恢复-Recovery Scenario Manager,入口:Resources-Recovery Scenario Manager,不同的错误条件和用户可执行操作如上图所示,具体到问题的处理,还需要QTP的使用者在开发过程中不断揣摩优化。,核心功能-错误恢复-用户自定义错误恢复,举例在某一个用户动作执行时,总会产生某个不需要的,并且会阻止测试正常运行的软件打开,或者过程存在。这个时候就要进行人为干预。Browser(“xxxx”).close,或者,核心功能-自动化对象,QTP自身就了实现自动化对象的COM,可以通过创建QTP对象完成对QTP一些运行环境及错误收集等细节的指定。具体请参考下图中手册。网上很多,自己下载。,核心功能-自动化对象-概念,自动化对象,指的是实现了IDispatch接口的COM对象,IDispatch接口是自动化对象的一个重要标志。使用自动化技术的一个主要目的就是对COM的一些底层操作进行简化。包括自动化组件和自动化客户两方面的内容,分别用来定义和使用自动化对象。自动化对象包含有属性和方法这两种重要的组成。属性类似于类中的数据成员,方法则类似于类成员函数,只不过这里的属性只能被读取而不允许被写入。自动化组件除了定义自动化对象外,还将内部可编程对象展现给自动化客户,而自动化客户则对这些暴露的自动化对象进行操作。,核心功能-自动化对象-应用,CreateObject 方法Set fso=CreateObject(“Scripting.FileSystemObject”)Fso.opentextfile(“filename”,1|2|8,True|False)通过创建一个COM组件对象,调用对象的方法便可完成相应操作。,培训大纲,QTP的背景知识、应用范围及基本功能介绍QTP的核心功能解析一个例子带你进入QTP的实践QTP开发相关参考资料,QTP实践-例子-QTP自带示例,本程序用例只完成了用户注册模块,若读者有兴趣,可以自己补充完成整个订票程序的测试代码设计。由于目前对自动化框架讨论如火如荼,并且大多尚不成熟,为了不误导读者,在本例中只提供作者在开发过程中常用模式方法,仅供参考。作者观点:1:能够最优化你的开发过程的框架就是最好的框架。2:测试自动化程度越高,风险越大。,QTP实践-例子-QTP自带示例-流行框架简介,测试脚本模块化框架(The Test Script Modularity Framework)测试库构架框架(The Test Library Architecture Framework)关键字驱动或表驱动测试框架(The Keyword-Driven or Table-Driven Testing Framework)数据驱动测试框架(The Data-Driven Testing Framework)混合的测试自动化框架(The Hybrid Test Automation Framework),QTP实践-例子-QTP自带示例-我们的框架,Data,Lib,Step,Action,OR,Lib:函数库 OR:对象库 Data:数据源,QTP实践-例子-QTP自带示例-我们的框架,Action,Test,Run Script,Result,Run Script:启动脚本 Result:测试结果,QTP实践-例子-QTP自带示例-我们的框架,业务函数,基础函数,用例函数,逻辑封装,Action中的测试步骤,LIB库|.VBS文件,存在形式,QTP实践-例子-QTP自带示例-测试代码,请参看视频材料。,培训大纲,QTP的背景知识、应用范围及基本功能介绍QTP的核心功能解析一个例子带你进入QTP的实践QTP开发相关参考资料,开发相关参考资料,QuickTest Professional 自动化对象模型Script56.chm VBS语言参考F1:F1键可以获得任何方法或函数的帮助xmlhttp.CHM xmldom对象手册,感谢阅读!,本文音(视)频资料稍候推出,将对所有文档中未详尽的部分进行解释。由于篇幅限制,仍有很多QTP精华特性没有提及。示例程序代码将会稍后一同传到网上,用户可自由下载,配合本文档使用。若发现本文中存在错误或有任何建议.,