资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,自动化测试的实践,应用QTP测试框架,9/28/2024,iSoftStone Information Service Corporation,目录,自动化测试实施规划,自动化测试源于手工测试,基于功能分解的自动化测试框架,使用,TD+QTP,管理测试脚本,测试自动化实现的两个难点,功能分解,Web,对象的识别,静态,Web,对象的识别,动态,Web,对象的识别,6.,实例操作,2,2005 iSoftStone Information Service Corporation. All rights reserved.,自动化测试实施规划,阶段一:完成对结算和信贷主要业务的流程覆盖,阶段二:完成对业务的校验和约束,阶段三:应用到更多的业务中去,规模扩大,开发自动化测试框架,降低对测试工具的依赖,使用动作词的自动化测试,第一层次,第二层次,第三层次,层次,阶段,测试自动化程度,3,2005 iSoftStone Information Service Corporation. All rights reserved.,自动化测试源于手工测试,手工测试,自动化测试,测试设计,测试执行,测试用例,测试设计,测试实现,测试执行,测试用例,1 输入数据,2 操作,3 预期结果,1 业务数据,2 业务功能,实现业务功能,所占用的时间,所占用的时间,4,2005 iSoftStone Information Service Corporation. All rights reserved.,基于功能分解的自动化测试框架,5,2005 iSoftStone Information Service Corporation. All rights reserved.,基于功能分解的自动化测试框架,6,2005 iSoftStone Information Service Corporation. All rights reserved.,基于功能分解的自动化测试框架,优点,较为模块化,(modular),的设计,避免重复的脚本,减少建立或维护脚本的成本。,在应用软件开发的同时,就可以同步进行脚本建立的动作,而且当应用软件功能变动时,只需要修改业务功能脚本。,由于应用软件的功能已经被分解成独立的业务功能脚本,测试人员可以随意组合业务功能脚本成为更复杂多样的测试个案。,测试输入数据与验证数据与脚本分开,储存在另外的档案,如纯文字文件或,Excel,文件,测试人员可以更容易修改与维护。,透过判断,Action,回传值是,TRUE,或,FALSE,,可以作错误处理,让脚本更有弹性。,缺点,在编写业务功能脚本时,需要精通测试工具脚本语言的工程师。,每个,Action,都会有自己的输入输出参数,需要用文档统一维护,控制变更。,测试人员除了要维护测试计划之外,还要另外维护数据文件。,对测试工具以及脚本语言来说,使用数据文件可能也要注意数据文件的格式。,7,2005 iSoftStone Information Service Corporation. All rights reserved.,使用TD+QTP管理测试脚本,8,2005 iSoftStone Information Service Corporation. All rights reserved.,使用TD+QTP管理测试脚本,TD管理QTP脚本,QTP,开发机连接,TD,服务器,开发,QTP,脚本,保存脚本到,Test Lab,TD,调度,QTP,脚本,添加,QTP,脚本到,Test Plan,中,QTP,执行机连接,TD,服务器,在执行机中运行,Test Plan,9,2005 iSoftStone Information Service Corporation. All rights reserved.,测试自动化实现的两个难点,测试自动化实现的两个难点,设计,功能分解,实现,Web,对象的识别,10,2005 iSoftStone Information Service Corporation. All rights reserved.,测试自动化实现的两个难点功能分解,业务功能分解的原则和方法:,清晰画出业务流程图,根据业务流程分解业务功能,可以被复用的功能也要被分解出来。,按照路径覆盖的思想,组织测试用例,参见附件的业务流程分析,11,2005 iSoftStone Information Service Corporation. All rights reserved.,测试自动化实现的两个难点Web对象的识别,静态Web对象的识别,序号,Web对象,推荐识别属性,方法,1,Browser,creationTime,2,Page,index,3,Frame,name,4,WebTable,name,5,WebEdit,name,Set,6,WebButton,text,Click,7,WebList,name,Select,8,Link,text,Click,9,Image,name,10,WebCheckBox,name,11,WebRadioGroup,name,12,WebElement,innertext/html tag,13,Dialog,text,14,WinButton,text,12,2005 iSoftStone Information Service Corporation. All rights reserved.,静态Web对象的识别,示例:,Browser(“creationTime,:=0”).Page(“index:=0”).WebEdit(“name:=,amount”).Set,“1000”,在第一个被创建的,IE,窗口,查找,name,属性为,amount,的输入框,输入数据,1000,Browser(“creationTime,:=1”).Page(“index:=0”).WebButton(“text:=,保存”,).Click,在第二个被创建的,IE,窗口,查找按钮,该按钮上显示的文字是“保存”,点击该按钮,13,2005 iSoftStone Information Service Corporation. All rights reserved.,静态Web对象的识别creationTime,Index,Location,QuickTest 可以使用三种类型的顺序标识符来标识对象:,索引( index ),:指示该对象在应用程序代码中相对于其他描述都相同的其他对象的显示顺序。,QTP在录制和执行中,为测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在源代码中的显示顺序。第一个出现的是 0。注意, index属性值是特定于对象的。因此,如果使用 Index:=3 描述 WebEdit测试对象, QuickTest 将在页中搜索第四个 WebEdit 对象。,位置(location),:指示该对象在父窗口、框架或对话框中相对于其他描述都相同的其他对象的显示顺序。,QuickTest 可以为对象的 location测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在窗口、框架或对话框中相对于具有相同属性的其他对象的显示顺序。第一个出现的对象是 0。各列值的分配从上到下、从左到右。,creationTime,(仅限于浏览器对象) :指示该浏览器打开的顺序,相对于其他描 述都相同的其他打开的浏览器。,如果 QuickTest 不能仅基于测试对象描述唯一标识浏览器对象,它将为“CreationTime”测试对象属性分配一个值。该值指示该浏览器打开的顺序,相对于其他描述都相同的其他打开的浏览器。在运行会话期间,如果 QuickTest 不能只是基于其测试对象描述来标识某个浏览器对象,那么,它将检查浏览器的打开顺序,然后使用 “CreationTime”属性标识正确的对象。,14,2005 iSoftStone Information Service Corporation. All rights reserved.,动态Web对象的识别Object Spy,一个好助手Object Spy,通过Object Spy可以查看到所需要识别的Web对象的所有属性值,挑选其中可以唯一识别该对象的一个属性或多个属性,对该Web对象进行描述。,15,2005 iSoftStone Information Service Corporation. All rights reserved.,动态Web对象的识别GetROProperty,GetToProperty,:Returns the value of the specified property from the test object description.,GetTOProperties,: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).GetToProperty(text)返回的是:QQQQWindow(窗口A).GetRoProperty(text)返回的是:PPPPWindow(窗口A).GetToProperties(text)返回的是用于识别窗口A的两个属性和值的集合,16,2005 iSoftStone Information Service Corporation. All rights reserved.,动态Web对象的识别对象、数组、String,使用对象描述的方式来描述Web对象,Set,oDesc,= 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),17,2005 iSoftStone Information Service Corporation. All rights reserved.,实例操作,银行付款业务的实现,18,2005 iSoftStone Information Service Corporation. All rights reserved.,
展开阅读全文