您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 1 自动化测试的实践-应用QTP测试框架
2019/7/31iSoftStoneInformationServiceCorporation自动化测试的实践——应用QTP测试框架©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.2目录1.自动化测试实施规划2.自动化测试源于手工测试3.基于功能分解的自动化测试框架4.使用TD+QTP管理测试脚本5.测试自动化实现的两个难点1.功能分解2.Web对象的识别1.静态Web对象的识别2.动态Web对象的识别6.实例操作©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.3自动化测试实施规划阶段一:完成对结算和信贷主要业务的流程覆盖阶段二:完成对业务的校验和约束阶段三:应用到更多的业务中去,规模扩大开发自动化测试框架,降低对测试工具的依赖使用动作词的自动化测试第一层次第二层次第三层次层次阶段©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.4自动化测试源于手工测试•手工测试•自动化测试测试设计测试执行测试用例测试设计测试实现测试执行测试用例1输入数据2操作3预期结果1业务数据2业务功能实现业务功能所占用的时间所占用的时间©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.5基于功能分解的自动化测试框架参数调用参数调用参数调用业务功能测试用例模块化设计基于功能分解的思想,把业务对象分解成最基本的业务动作,并建立可独立执行的脚本。业务功能测试用例业务功能测试用例业务数据驱动业务业务功能,完成一个完整的测试用例。自动化测试的设计业务数据驱动©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.6基于功能分解的自动化测试框架自动化测试的实现关键字驱动关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)业务功能值(value)操作(Operation)操作(Operation)值(value)操作(Operation)值(value)…被操作对象(item)被操作对象(item)被操作对象(item)©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.7基于功能分解的自动化测试框架•优点1.较为模块化(modular)的设计,避免重复的脚本,减少建立或维护脚本的成本。2.在应用软件开发的同时,就可以同步进行脚本建立的动作,而且当应用软件功能变动时,只需要修改业务功能脚本。3.由于应用软件的功能已经被分解成独立的业务功能脚本,测试人员可以随意组合业务功能脚本成为更复杂多样的测试个案。4.测试输入数据与验证数据与脚本分开,储存在另外的档案,如纯文字文件或Excel文件,测试人员可以更容易修改与维护。5.透过判断Action回传值是TRUE或FALSE,可以作错误处理,让脚本更有弹性。•缺点1.在编写业务功能脚本时,需要「精通」测试工具脚本语言的工程师。2.每个Action都会有自己的输入输出参数,需要用文档统一维护,控制变更。3.测试人员除了要维护测试计划之外,还要另外维护数据文件。4.对测试工具以及脚本语言来说,使用数据文件可能也要注意数据文件的格式。©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.8使用TD+QTP管理测试脚本被测系统QTP脚本开发机QTP脚本开发机TD服务器管理被测系统测试脚本执行机测试脚本执行机调度调度管理测试执行①②③©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.9使用TD+QTP管理测试脚本•TD管理QTP脚本1.QTP开发机连接TD服务器2.开发QTP脚本3.保存脚本到TestLab•TD调度QTP脚本1.添加QTP脚本到TestPlan中2.QTP执行机连接TD服务器3.在执行机中运行TestPlan©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.10测试自动化实现的两个难点•测试自动化实现的两个难点1.设计——功能分解2.实现——Web对象的识别©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.11测试自动化实现的两个难点—功能分解•业务功能分解的原则和方法:•清晰画出业务流程图•根据业务流程分解业务功能,可以被复用的功能也要被分解出来。•按照路径覆盖的思想,组织测试用例•参见附件的《业务流程分析》©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.12测试自动化实现的两个难点—Web对象的识别静态Web对象的识别序号Web对象推荐识别属性方法1BrowsercreationTime2Pageindex3Framename4WebTablename5WebEditnameSet6WebButtontextClick7WebListnameSelect8LinktextClick9Imagename10WebCheckBoxname11WebRadioGroupname12WebElementinnertext/htmltag13Dialogtext14WinButtontext©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.13静态Web对象的识别•示例:1.Browser(“creationTime:=0”).Page(“index:=0”).WebEdit(“name:=amount”).Set“1000”在第一个被创建的IE窗口,查找name属性为amount的输入框,输入数据10002.Browser(“creationTime:=1”).Page(“index:=0”).WebButton(“text:=保存”).Click在第二个被创建的IE窗口,查找按钮,该按钮上显示的文字是“保存”,点击该按钮©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.14静态Web对象的识别—creationTime,Index,Location•QuickTest可以使用三种类型的顺序标识符来标识对象:•索引(index):指示该对象在应用程序代码中相对于其他描述都相同的其他对象的显示顺序。QTP在录制和执行中,为测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在源代码中的显示顺序。第一个出现的是0。注意,index属性值是特定于对象的。因此,如果使用Index:=3描述WebEdit测试对象,QuickTest将在页中搜索第四个WebEdit对象。•位置(location):指示该对象在父窗口、框架或对话框中相对于其他描述都相同的其他对象的显示顺序。QuickTest可以为对象的location测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在窗口、框架或对话框中相对于具有相同属性的其他对象的显示顺序。第一个出现的对象是0。各列值的分配从上到下、从左到右。•creationTime(仅限于浏览器对象):指示该浏览器打开的顺序,相对于其他描述都相同的其他打开的浏览器。如果QuickTest不能仅基于测试对象描述唯一标识浏览器对象,它将为“CreationTime”测试对象属性分配一个值。该值指示该浏览器打开的顺序,相对于其他描述都相同的其他打开的浏览器。在运行会话期间,如果QuickTest不能只是基于其测试对象描述来标识某个浏览器对象,那么,它将检查浏览器的打开顺序,然后使用“CreationTime”属性标识正确的对象。©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.15动态Web对象的识别—ObjectSpy•一个好助手——ObjectSpy•通过ObjectSpy可以查看到所需要识别的Web对象的所有属性值,挑选其中可以唯一识别该对象的一个属性或多个属性,对该Web对象进行描述。©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.16动态Web对象的识别—GetROProperty•GetToProperty:Returnsthevalueofthespecifiedpropertyfromthetestobjectdescription.GetTOProperties:Returnsthecollectionofpropertiesandvaluesusedtoidentifytheobject.GetROProperty:Returnsthecurrentvalueofthetestobjectpropertyfromtheobjectintheapplication.•举个例子:假设在库中有一个对象窗口A,用于识别该对象的属性有2个,一个属性是text,在库中记录的值是QQQQ.另一个属性是name,记录的值是MM在实际运行脚本时属性text的值是PPPP而不是QQQQ那么:Window(窗口A).GetToProperty(text)返回的是:QQQQWindow(窗口A).GetRoProperty(text)返回的是:PPPPWindow(窗口A).GetToProperties(text)返回的是用于识别窗口A的两个属性和值的集合©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.17动态Web对象的识别—对象、数组、String•使用对象描述的方式来描述Web对象SetoDesc=Description.Create()oDesc(“micClass”)=“Link”oDesc(“text”)=“01-0001”Browser(…).Page(…).oDesc.Click与这种方法搭配使用的是ChildObjects方法•Array与String的转换str=join(myArray)myArray=split(str,”,”)•String的几个比较有用的方法Instr(SearchString,SearchChar)©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.18实例操作•银行付款业务的实现
本文标题:1 自动化测试的实践-应用QTP测试框架
链接地址:https://www.777doc.com/doc-7245 .html