《1 自动化测试的实践-应用QTP测试框架.pptx》由会员分享,可在线阅读,更多相关《1 自动化测试的实践-应用QTP测试框架.pptx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、自动化测试的实践应用QTP测试框架2024/3/11iSoftStone Information Service Corporation目录目录1.自动化测试实施规划自动化测试实施规划2.自动化测试源于手工测试自动化测试源于手工测试3.基于功能分解的自动化测试框架基于功能分解的自动化测试框架4.使用使用TD+QTP管理测试脚本管理测试脚本5.测试自动化实现的两个难点测试自动化实现的两个难点1.功能分解功能分解2.Web对象的识别对象的识别1.静态静态Web对象的识别对象的识别2.动态动态Web对象的识别对象的识别6.实例操作实例操作22005 iSoftStone Information Se
2、rvice Corporation.All rights reserved.自动化测试实施规划自动化测试实施规划阶段一:完成对结算和信贷主要业务的流程覆盖阶段二:完成对业务的校验和约束阶段三:应用到更多的业务中去,规模扩大开发自动化测试框架,降低对测试工具的依赖 使用动作词的自动化测试第一层次第二层次第三层次层次阶段测试自动化程度32005 iSoftStone Information Service Corporation.All rights reserved.自动化测试源于手工测试自动化测试源于手工测试手工测试手工测试自动化测试自动化测试测试用例测试用例测试用例测试用例1 输入数据2 操
3、作3 预期结果1 业务数据2 业务功能实现业务功能所占用的时间所占用的时间所占用的时间所占用的时间42005 iSoftStone Information Service Corporation.All rights reserved.基于功能分解的自动化测试框架基于功能分解的自动化测试框架52005 iSoftStone Information Service Corporation.All rights reserved.基于功能分解的自动化测试框架基于功能分解的自动化测试框架62005 iSoftStone Information Service Corporation.All righ
4、ts reserved.基于功能分解的自动化测试框架基于功能分解的自动化测试框架优点优点1.较为模块化(modular)的设计,避免重复的脚本,减少建立或维护脚本的成本。2.在应用软件开发的同时,就可以同步进行脚本建立的动作,而且当应用软件功能变动时,只需要修改业务功能脚本。3.由于应用软件的功能已经被分解成独立的业务功能脚本,测试人员可以随意组合业务功能脚本成为更复杂多样的测试个案。4.测试输入数据与验证数据与脚本分开,储存在另外的档案,如纯文字文件或 Excel 文件,测试人员可以更容易修改与维护。5.透过判断 Action 回传值是 TRUE 或 FALSE,可以作错误处理,让脚本更有弹
5、性。缺点缺点1.在编写业务功能脚本时,需要精通测试工具脚本语言的工程师。2.每个Action都会有自己的输入输出参数,需要用文档统一维护,控制变更。3.测试人员除了要维护测试计划之外,还要另外维护数据文件。4.对测试工具以及脚本语言来说,使用数据文件可能也要注意数据文件的格式。72005 iSoftStone Information Service Corporation.All rights reserved.使用使用TD+QTPTD+QTP管理测试脚本管理测试脚本82005 iSoftStone Information Service Corporation.All rights rese
6、rved.使用使用TD+QTPTD+QTP管理测试脚本管理测试脚本TD管理管理QTP脚本脚本1.QTP开发机连接TD服务器2.开发QTP脚本3.保存脚本到Test LabTD调度调度QTP脚本脚本1.添加QTP脚本到Test Plan中2.QTP执行机连接TD服务器3.在执行机中运行Test Plan92005 iSoftStone Information Service Corporation.All rights reserved.测试自动化实现的两个难点测试自动化实现的两个难点测试自动化实现的两个难点测试自动化实现的两个难点1.设计功能分解2.实现Web对象的识别102005 iSoft
7、Stone Information Service Corporation.All rights reserved.测试自动化实现的两个难点测试自动化实现的两个难点功能分解功能分解业务功能分解的原则和方法:清晰画出业务流程图根据业务流程分解业务功能,可以被复用的功能也要被分解出来。按照路径覆盖的思想,组织测试用例参见附件的业务流程分析112005 iSoftStone Information Service Corporation.All rights reserved.测试自动化实现的两个难点测试自动化实现的两个难点WebWeb对象的识别对象的识别静态静态WebWeb对象的识别对象的识别序号
8、序号WebWeb对象对象推荐识别属性推荐识别属性方法方法1BrowserBrowserBrowserBrowsercreationTime2PagePagePagePageindex3FrameFrameFrameFramename4WebTableWebTableWebTableWebTablename5WebEditWebEditWebEditWebEditnameSet6WebButtonWebButtonWebButtonWebButtontextClick7WebListWebListWebListWebListnameSelect8LinkLinkLinkLinktextClick
9、9ImageImageImageImagename10WebCheckBoxWebCheckBoxWebCheckBoxWebCheckBoxname11WebRadioGroupWebRadioGroupWebRadioGroupWebRadioGroupname12WebElementWebElementWebElementWebElementinnertext/html tag13DialogDialogDialogDialogtext14WinButtonWinButtonWinButtonWinButtontext122005 iSoftStone Information Servi
10、ce Corporation.All rights reserved.静态静态WebWeb对象的识别对象的识别示例:示例:1.Browser(“creationTime:=0”).Page(“index:=0”).WebEdit(“name:=amount”).Set“1000”2.在第一个被创建的IE窗口,查找name属性为amount的输入框,输入数据10002.Browser(“creationTime:=1”).Page(“index:=0”).WebButton(“text:=保存”).Click 在第二个被创建的IE窗口,查找按钮,该按钮上显示的文字是“保存”,点击该按钮13200
11、5 iSoftStone Information Service Corporation.All rights reserved.静态静态WebWeb对象的识别对象的识别creationTime,Index,LocationcreationTime,Index,LocationQuickTest 可以使用三种类型的顺序标识符来标识对象:可以使用三种类型的顺序标识符来标识对象:索引(索引(index):指示该对象在应用程序代码中相对于其他描述都相同的其他对象的显示顺序。QTP在录制和执行中,为测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在源代码中的显示顺序。第一个出现的是 0。注意,
12、index属性值是特定于对象的。因此,如果使用 Index:=3 描述 WebEdit测试对象,QuickTest 将在页中搜索第四个 WebEdit 对象。位置(位置(location):指示该对象在父窗口、框架或对话框中相对于其他描述都相同的其他对象的显示顺序。QuickTest 可以为对象的 location测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在窗口、框架或对话框中相对于具有相同属性的其他对象的显示顺序。第一个出现的对象是 0。各列值的分配从上到下、从左到右。creationTime(仅限于浏览器对象):指示该浏览器打开的顺序,相对于其他描 述都相同的其他打开的浏览器
13、。如果 QuickTest 不能仅基于测试对象描述唯一标识浏览器对象,它将为“CreationTime”测试对象属性分配一个值。该值指示该浏览器打开的顺序,相对于其他描述都相同的其他打开的浏览器。在运行会话期间,如果 QuickTest 不能只是基于其测试对象描述来标识某个浏览器对象,那么,它将检查浏览器的打开顺序,然后使用“CreationTime”属性标识正确的对象。142005 iSoftStone Information Service Corporation.All rights reserved.动态动态WebWeb对象的识别对象的识别Object SpyObject Spy一个好
14、助手Object Spy通过Object Spy可以查看到所需要识别的Web对象的所有属性值,挑选其中可以唯一识别该对象的一个属性或多个属性,对该Web对象进行描述。152005 iSoftStone Information Service Corporation.All rights reserved.动态动态WebWeb对象的识别对象的识别GetROPropertyGetROPropertyGetToProperty:Returns the value of the specified property from the test object description.GetTOPrope
15、rties:Returns the collection of properties and values used to identify the object.GetROProperty:Returns the current value of the test object property from the object in the application.举个例子:假设在库中有一个对象窗口A,用于识别该对象的属性有2个,一个属性是text,在库中记录的值是QQQQ.另一个属性是name,记录的值是MM在实际运行脚本时属性text的值是PPPP而不是QQQQ那么:Window(窗口A
16、).GetToProperty(text)返回的是:QQQQWindow(窗口A).GetRoProperty(text)返回的是:PPPPWindow(窗口A).GetToProperties(text)返回的是用于识别窗口A的两个属性和值的集合 162005 iSoftStone Information Service Corporation.All rights reserved.动态动态WebWeb对象的识别对象的识别对象、数组、对象、数组、StringString使用对象描述的方式来描述使用对象描述的方式来描述Web对象对象Set oDesc=Description.Create()
17、oDesc(“micClass”)=“Link”oDesc(“text”)=“01-0001”Browser().Page().oDesc.Click与这种方法搭配使用的是ChildObjects方法Array与与String的转换的转换str=join(myArray)myArray=split(str,”,”)String的几个比较有用的方法的几个比较有用的方法Instr(SearchString,SearchChar)172005 iSoftStone Information Service Corporation.All rights reserved.实例操作实例操作银行付款业务的实
18、现182005 iSoftStone Information Service Corporation.All rights reserved.演讲完毕,谢谢观看!附录资料:不需要的可以自行删除QTP自动化测试自动化测试的好处自动化测试的好处快速QuickTest 执行测试比人工测试速度快多了。可靠QuickTest 每一次的测试都可以正确的执行相同的动作,可以避免人工测试的错误。可重复QuickTest 可以重复执行相同的测试。可程序化QuickTest 可以以程序的方式,撰写复杂的测试脚本,以带出隐藏应用程序中的信息。广泛性QuickTest 可以建立广泛的测试脚本,涵盖应用程序的所有功能。
19、可再使用QuickTest 可以重复使用测试脚本,即使应用程序的使用接口已经改变。QTPQTP背景背景BTO:Business Technology Optimization业务科技优化方案使IT系统既能满足质量和成本的需求,又能适应多变的业务需求,可随之改变QTP是HP花费45亿美元购买的Mecury公司测试产品套件之一QTP是继WR后推出以VBS为内嵌语言的测试工具用于功能测试QC产品协作进行自动化测试开发(BPT)BusinessProcessTesting特点:价格高昂但是容易掌握QTPQTP应用范围应用范围自带插件ActiveX Database StdWindows TEA Vis
20、ualBasic Web Xml额外购买插件Java DotNet PeopelSoft VisualAge siebel OracleQTPQTP基本功能介绍基本功能介绍HP QuichTest Professinal 支持功能测试和回归测试自动化,用于每个主要软件应用程序和环境。此解决方案使用关键字驱动的测试概念,简化了测试创建和维护过程。它使测试人员能够使用专业的不惑技术直接从应用程序屏幕中捕获流程来构建测试案例。测试专家还可以通过集成的脚本和调试环境完全访问内在测试和对象属性。QTPQTP的基本功能的基本功能介绍介绍TestActionActionActionFunctionFunct
21、ionFunctionFunctionLibraryStepStepStep以Test为测试运行单位,每个Test包含若干类型Action。以Action为最小单位映射对象库,多个Action之间可以共享统一对象库Action内的Step可以包含用户录制操作或者函数库内对Function的调用StepStep使用使用QuickTestQuickTest进行测试进行测试测试和业务组件测试:组织成一个或多个操作的步骤集合,用于验证应用程序是否按预期执行。业务组件:表示应用程序中单任务的步骤集合。业务组件(也称为组件)在Mercury Quality Center 中由业务流程测试组合为特定的场景以
22、建立业务流程测试。测试流程测试流程使用 QuickTest 测试包括三个主要阶段创创建建测试测试或或组组件件以下列一种或两种方式向测试中添加步骤在应用程序或网站上录制会话。建立对象库并使用这些对象在关键字视图或专家视图中手动添加步骤然后,使用特殊的测试选项或编程语句来修改测试或组件。通过用参数替换固定值拓宽测试或组件的范围使用设计的数据表中的数据QuickTest 生成随机数据使用 QuickTest 中众多的功能测试功能来增强测试或组件,或添加编写语句来实现更复杂的测试目标。运行运行测试测试或或组组件件运行测试或组件检查网站或应用程序运行测试或者组件以对其进行调试单步执行单步跳过单步退出设置
23、断点使测试或组件在预定点暂停分析分析结结果果在“结果”窗口中查看结果。报告在运行会话过程中检测到的缺陷。QuickTestQuickTest窗口窗口窗口窗口标题栏&菜单栏文件工具栏调试工具栏测试工具栏操作工具栏测试窗格:关键字、专家试图数据表运行窗口调试查看器基本使用介绍基本使用介绍各个按钮介绍QuickTestQuickTest如何识别对象如何识别对象确定对象符合的测试对象类对测试对象进行分类标准 Windows 对话框(Dialog)Web 按钮(WebButton)Visual Basic 滚动条对象(VbScrollBar)强制属性列表添加辅助属性特殊的顺序标识应用测试对象模型应用测试
24、对象模型在录制时执行应用程序的相应操作,则 QuickTest 将标识 QuickTest 测试对象类(表示执行了操作的对象),并创建相应的测试对象 读取应用程序中对象属性的当前值,然后将属性和属性值列表与测试对象一起存储选择该对象的唯一名称,一般使用该对象某个重要属性的值使用适当的 QuickTest 测试对象方法录制对对象执行的操作实例实例对象标识为 WebButton 测试对象测试对象创建一个名为 Find的 WebButton 对象为 Find WebButton 对象存储属性和属性值属性属性值typeFindnameresetHtml taginput实例(续)实例(续)录制对 We
25、bButton 执行了 Click 方法方法关键字视图关键字视图专家视图Browser(Mercury Interactive).Page(Mercury Interactive).WebButton(Find).Click核心功能清单核心功能清单对象库描述性编程检查点对象属性运行期间变更数据驱动错误恢复自动化对象核心功能核心功能-对象库对象库入口:tools-Object RepositoryCtrl+R 功能保存被测试对象属性,在编写执行步骤时使用核心功能核心功能-对象库对象库对象库中的对象可以在录制过程中自动产生,也可以手动添加指定对象对象库分为本地对象库和共享对象库,区别是:本地对象库
26、只应用于本地Action调用 共享对象库以.tsr扩展名文件形式存在,可以被其他Action调用。对象库面板具有定义以及更新对象的功能,并且能够进行在被测软件和对象库之间双向查找对象。对象属性可以在对象库中被任意修改,并且其属性描述支持正则表达式。核心功能核心功能-对象库对象库智能识别是鸡肋,辅助标识符要慎用对象库与描述性编程的区别:对象库将对象收集起来,以可视化的方式呈现给用户描述性编程在运行步骤中通过对象属性指定对象。结合使用时应注意:描述性编程的子对象不可以是对象库中的对象,反之可以。具体采用哪种方式指定对象因具体情况和个人喜好所定,并非描述性编程更“高人一筹“核心功能核心功能-对象库对
27、象库-简单的对象识别原理简单的对象识别原理用户通过录制或指定对象属性的方式将一个对象添加到对象库,在录制过程中添加的对象是根据Tools-Object Identification中的设定记录的。在回放的过程中QTP通过将对象库中的对象属性和被测软件中的实时对象属性进行比对,如果发现存在能够唯一确定的对象,则对对象使用相应的用户设定的方法,完成用户动作。若不能发现唯一确定的对象,则启动智能识别机制,若智能识别仍无法唯一确定对象,则报错。更多细节请参见QTP帮助。核心功能核心功能-描述性编程描述性编程Browser(name:=UML软件工程组织).Page(Title:=UML软件工程组织).
28、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:=属性值)。方法此外,描述性编程中属性值默认是支持正则表达式的,在使用中请留意。由于支持了正则表达式,就可以一次获取多个测试对象,便可以逐个处理这个相似对象集。核心功能核心功
29、能-检查点检查点可检查类型包括上图中所有Checkpoint中子菜单项,包括文字,位图,XML,数据库(数据表)等检查点。每个检查点的执行结果都会在Automation-Result中存在相应的记录。有些检查点需要在录制状态下才能够使用。核心功能核心功能-对象属性运行期间变更对象属性运行期间变更Object(description).SetTOProperty Property,Value 通过此方法能够在运行期间更改对象库中对象的识别属性值。尤其在一个循环逻辑中更为常用,通过每次循环修改属性值,完成对一系列类似对象的相同动作。此方法弥补了对象库相对于描述性编程的不足。Browser(UML软
30、件工程组织).Page(UML软件工程组织).Link(项目管理).SetTOProperty text,需求管理Browser(UML软件工程组织).Page(UML软件工程组织).Link(项目管理).Click核心功能核心功能-对象属性运行期间变更对象属性运行期间变更更多方法通过.object对象,能够使用对象本身(没有被QTP封装)的更多方法或属性值设定。核心功能核心功能-数据驱动数据驱动通过变更不同的数据组合,执行相同的逻辑步骤,完成对一个测试用例的测试。数据来源可以是:Excel表格,数据库(数据表),XML文件,TXT文件。任何有规则的VBS可以操纵的文件类型都可以作为QTP的数
31、据来源。当然最常用的还是Excel表。核心功能核心功能-错误恢复错误恢复QTP软件本身自带了错误恢复手段 Recovery Scenario Manager。通过在发生不同错误的时候,执行指定的操作,保证测试脚本能够24*7的不间断运行。用户也可以通过在容易发生错误的步骤或函数调用处执行相应的操作,保证无人值守时不宕机,脚本不中断。核心功能核心功能-错误恢复错误恢复-Recovery Scenario Manager-Recovery Scenario Manager入口:Resources-Recovery Scenario Manager不同的错误条件和用户可执行操作如上图所示,具体到问题的处理,还需要QTP的使用者在开发过程中不断揣摩优化。核心功能核心功能-错误恢复错误恢复-用户自定义错误恢复用户自定义错误恢复举例在某一个用户动作执行时,总会产生某个不需要的,并且会阻止测试正常运行的软件打开,或者过程存在。这个时候就要进行人为干预。Browser(“xxxx”).close,或者核心功能核心功能-自动化对象自动化对象QTP自身就了实现自动化对象的COM,可以通过创建QTP对象完成对QTP一些运行环境及错误收集等细节的指定。具体请参考下图中手册。网上很多,自己下载。