资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
自动化测试的实践应用QTP测试框架目录目录1.自动化测试实施规划自动化测试实施规划2.自动化测试源于手工测试自动化测试源于手工测试3.基于功能分解的自动化测试框架基于功能分解的自动化测试框架4.使用使用TD+QTP管理测试脚本管理测试脚本5.测试自动化实现的两个难点测试自动化实现的两个难点6.功能分解功能分解7.Web对象的识别对象的识别8.静态静态Web对象的识别对象的识别9.动态动态Web对象的识别对象的识别10.6. 实例操作实例操作自动化测试实施规划自动化测试实施规划阶段一:完成对结算和信贷主要业务的流程覆盖阶段二:完成对业务的校验和约束阶段三:应用到更多的业务中去,规模扩大开发自动化测试框架,降低对测试工具的依赖 使用动作词的自动化测试第一层次第二层次第三层次层次阶段测试自动化程度自动化测试源于手工测试自动化测试源于手工测试手工测试手工测试自动化测试自动化测试测试用例测试用例测试用例测试用例1 输入数据2 操作3 预期结果1 业务数据2 业务功能实现业务功能所所占占用用的的时时间间所所占占用用的的时时间间基于功能分解的自动化测试框架基于功能分解的自动化测试框架基于功能分解的自动化测试框架基于功能分解的自动化测试框架基于功能分解的自动化测试框架基于功能分解的自动化测试框架优点优点较为模块化较为模块化(modular)的设计,避免重复的脚本,减少建立或维护脚本的成本。的设计,避免重复的脚本,减少建立或维护脚本的成本。 在应用软件开发的同时,就可以同步进行脚本建立的动作,而且当应用软件在应用软件开发的同时,就可以同步进行脚本建立的动作,而且当应用软件功能变动时,只需要修改业务功能脚本。功能变动时,只需要修改业务功能脚本。 由于应用软件的功能已经被分解成独立的业务功能脚本,测试人员可以随意由于应用软件的功能已经被分解成独立的业务功能脚本,测试人员可以随意组合业务功能脚本成为更复杂多样的测试个案。组合业务功能脚本成为更复杂多样的测试个案。 测试输入数据与验证数据与脚本分开,储存在另外的档案,如纯文字文件或测试输入数据与验证数据与脚本分开,储存在另外的档案,如纯文字文件或 Excel 文件,测试人员可以更容易修改与维护。文件,测试人员可以更容易修改与维护。 透过判断透过判断 Action 回传值是回传值是 TRUE 或或 FALSE ,可以作错误处理,让脚本更有,可以作错误处理,让脚本更有弹性。弹性。 缺陷缺陷在编写业务功能脚本时,需求知晓测试工具脚本语言的工程师。在编写业务功能脚本时,需求知晓测试工具脚本语言的工程师。 每个每个Action都会有自己的输入输出参数,需要用文档统一维护,控制变更。都会有自己的输入输出参数,需要用文档统一维护,控制变更。 测试人员除了要维护测试计划之外,还要另外维护数据文件。测试人员除了要维护测试计划之外,还要另外维护数据文件。 对测试工具以及脚本语言来说,使用数据文件可能也要注意数据文件的格式。对测试工具以及脚本语言来说,使用数据文件可能也要注意数据文件的格式。 使用使用TD+QTPTD+QTP管理测试脚本管理测试脚本使用使用TD+QTPTD+QTP管理测试脚本管理测试脚本TD管理管理QTP脚本脚本QTP开发机连接开发机连接TD服务器服务器开发开发QTP脚本脚本保存脚本到保存脚本到Test LabTD调度调度QTP脚本脚本添加添加QTP脚本到脚本到Test Plan中中QTP执行机连接执行机连接TD服务器服务器在执行机中运行在执行机中运行Test Plan测试自动化实现的两个难点测试自动化实现的两个难点测试自动化实现的两个难点测试自动化实现的两个难点设计设计功能分解功能分解实现实现Web对象的识别对象的识别测试自动化实现的两个难点测试自动化实现的两个难点功能分解功能分解业务功能分解的原则和方法:清晰画出业务流程图根据业务流程分解业务功能,可以被复用的功能也要被分解出来。按照路径覆盖的思想,组织测试用例参见附件的业务流程分析测试自动化实现的两个难点测试自动化实现的两个难点WebWeb对象的识别对象的识别静态静态WebWeb对象的识别对象的识别序号序号WebWeb对象对象推荐识别属性推荐识别属性方法方法1BrowserBrowserBrowserBrowsercreationTime2PagePagePagePageindex3FrameFrameFrameFramename4WebTableWebTableWebTableWebTablename5WebEditWebEditWebEditWebEditnameSet6WebButtonWebButtonWebButtonWebButtontextClick7WebListWebListWebListWebListnameSelect8LinkLinkLinkLinktextClick9ImageImageImageImagename10WebCheckBoxWebCheckBoxWebCheckBoxWebCheckBoxname11WebRadioGroupWebRadioGroupWebRadioGroupWebRadioGroupname12WebElementWebElementWebElementWebElementinnertext/html tag13DialogDialogDialogDialogtext14WinButtonWinButtonWinButtonWinButtontext静态静态WebWeb对象的识别对象的识别例如:例如:Browser(“creationTime:=0”).Page(“index:=0”).WebEdit(“name:=amount”).Set “1000”在第一个被创建的在第一个被创建的IE窗口,查找窗口,查找name属性为属性为amount的输入框,的输入框,输入数据输入数据1000Browser(“creationTime:=1”).Page(“index:=0”).WebButton(“text:=保管保管”).Click 在第二个被创建的在第二个被创建的IE窗口,查找按钮,该按钮上显示的文字是窗口,查找按钮,该按钮上显示的文字是“保管保管”,点击该按钮,点击该按钮静态静态WebWeb对象的识别对象的识别creationTime,Index,LocationcreationTime,Index,LocationQuickTest 可以使用三种类型的顺序标识符来标识对象:可以使用三种类型的顺序标识符来标识对象: 索引(索引( index ):指示该对象在应用程序代码中相对于其他描述都相同的其他对象的):指示该对象在应用程序代码中相对于其他描述都相同的其他对象的显示顺序。显示顺序。 QTP在录制和执行中,为测试对象属性分配一个值,以便唯一标识该对象。该值在录制和执行中,为测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在源代码中的显示顺序。第一个出现的是基于对象在源代码中的显示顺序。第一个出现的是 0。留意,。留意, index属性值是特定于对属性值是特定于对象的。因此,如果使用象的。因此,如果使用 Index:=3 描画描画 WebEdit测试对象,测试对象, QuickTest 将在页中搜索将在页中搜索第四个第四个 WebEdit 对象。对象。 位置位置location):指示该对象在父窗口、框架或对话框中相对于其他描述都相同的其):指示该对象在父窗口、框架或对话框中相对于其他描述都相同的其他对象的显示顺序。他对象的显示顺序。QuickTest 可以为对象的可以为对象的 location测试对象属性分配一个值,以便唯一标识该测试对象属性分配一个值,以便唯一标识该对象。该值基于对象在窗口、框架或对话框中相对于具有相同属性的其他对象的显示对象。该值基于对象在窗口、框架或对话框中相对于具有相同属性的其他对象的显示顺序。第一个出现的对象是顺序。第一个出现的对象是 0。各列值的分配从上到下、从左到右。各列值的分配从上到下、从左到右。 creationTime (仅限于浏览器对象)(仅限于浏览器对象) :指示该浏览器打开的顺序,相对于其他描:指示该浏览器打开的顺序,相对于其他描 述述都相同的其他打开的浏览器。都相同的其他打开的浏览器。假设假设 QuickTest 不能仅基于测试对象描述唯一标识浏览器对象,它将为不能仅基于测试对象描述唯一标识浏览器对象,它将为“CreationTime测试对象属性分配一个值。该值指示该浏览器打开的顺序,相对于测试对象属性分配一个值。该值指示该浏览器打开的顺序,相对于其他描述都相同的其他打开的浏览器。在运行会话期间,假设其他描述都相同的其他打开的浏览器。在运行会话期间,假设 QuickTest 不能只是基不能只是基于其测试对象描述来标识某个浏览器对象,那么,它将检查浏览器的打开顺序,然后于其测试对象描述来标识某个浏览器对象,那么,它将检查浏览器的打开顺序,然后使用使用 “CreationTime属性标识正确的对象。属性标识正确的对象。 动态动态WebWeb对象的识别对象的识别Object SpyObject Spy一个好助手Object Spy通过Object Spy可以查看到所需要识别的Web对象的所有属性值,挑选其中可以唯一识别该对象的一个属性或多个属性,对该Web对象进行描述。动态动态WebWeb对象的识别对象的识别GetROPropertyGetROPropertyGetToProperty: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的两个属性和值的集合的两个属性和值的集合 动态动态WebWeb对象的识别对象的识别对象、数组、对象、数组、StringString使用对象描述的方式来描述使用对象描述的方式来描述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) 实例操作实例操作银行付款业务的实现
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号