基于QTP的自动化测试-毕业论文_第1页
基于QTP的自动化测试-毕业论文_第2页
基于QTP的自动化测试-毕业论文_第3页
基于QTP的自动化测试-毕业论文_第4页
基于QTP的自动化测试-毕业论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大 连 民 族 学 院 本 科 毕 业 设 计(论 文)基于QTP的自动化测试学 院(系): 计算机科学与工程学院 专 业: 软件工程 学 生 姓 名: 学 号: 指 导 教 师: 评 阅 教 师: 大连民族学院基于QTP的自动化测试摘 要目前在软件测试行业里,除了大家所熟悉的黑盒测试和白盒测试以外,还分为手工测试和自动化测试。自动化测试相对于手工测试有很多优点,它最主要的优点就是省时,省力,省财务开销。自动化测试工具中具有代表性的是QTP,QTP适用于软件测试中的smoke测试以及回归测试(regression test),QTP脚本具有相当高的可移植性和可重用性,“一本万利”,即一本QTP测试脚本经过简单修改后可以应用于多个测试软件以及测试环境。本次毕业设计,以QTP为自动化测试工具,以“美图秀秀”软件为被测软件,通过QTP的描述性编程方法,实现该软件从安装到卸载的功能测试和界面检查测试,以及安装完成后的软件功能性测试和UI测试。最终产生可读性好,易于跟踪的QTP自动化报告,用来分析软件的缺陷。通过使用QTP对“美图秀秀”软件进行测试的实例,展示出了QTP自动化测试在软件测试行业中方便,快捷的优越性。关键词:自动化测试;报告;描述性编程- I -基于QTP的自动化测试Automated testing based on QTPAbstract In the software testing industry, with the exception that everyone is familiar distinguished with black box testing and white box testing, it also consist of manual testing and automated testing. The main advantage of automation is saving time, effort, the provincial financial cost. In automated testing software, QTP is outstanding. QTP used in smoking testing and regression testing (regression test ) in the software testing. QTP script with a very high portability and reusability, a big profit, that is a QTP test script through simple modifications can be applied to various test software and test environment.In this graduation design, using QTP for the automated testing tools and using beauties Xiu Xiu software for the software under test, through QTP descriptive programming, implementation of the software from installation to uninstall which include the functional testing and inspection interface testing, and the software functionality testing and UI testing after installation Upon completion. Eventually produce readable and easy to follow the QTP automated reporting, which used to analyze software defects. By using QTP on the beauties Xiu Xiu software test examples, demonstrating the convenient, fast superiority of QTP automated testing in the software testing industry. Key Words:Automated testing;Report;Descriptive programming- IV -目 录摘 要IAbstractII1软件测试简介11.1 软件测试简介12 自动化测试简介22.1 自动化测试的目的22.3 自动化测试流程图33 QTP自动化测试43.1 QTP自动化测试简介43.2 QTP的工作模式53.4 QTP自动化测试流程73.4.1 准备测试用例73.4.2 配置QTP运行环境73.4.3 录制或编写自动化测试脚本73.4.4 检查修改脚本73.4.5 运行调试测试脚本73.3.6 运行维护脚本73.4.7 QTP自动化测试流程图83.5 QTP框架介绍94 “美图秀秀”的自动化测试104.1 测试规划104.2 测试用例开发104.2.1 安装测试用例104.2.2 安装完毕自动启动软件测试用例114.2.3 桌面坐标检查测试用例114.2.4 开始菜单检查测试用例114.2.5 启动软件测试用例114.2.6 打开图片测试用例124.2.7 场景编辑测试用例124.2.8 场景编辑框检查测试用例124.2.9 恢复原图测试用例124.2.10 饰品编辑测试用例134.2.11 美容编辑测试用例134.2.12 卸载测试用例134.3 QTP脚本开发144.4 测试报告174.5 环境搭配184.6 软件需求184.7 遇到的问题以及解决方案184.7.1时间处理184.7.2欲点击的button是一张图片194.7.3 对象无法识别194.7.4 报告中无法显示Pass率194.7.5 运行时界面效果194.7.6 场景恢复204.7.7 QTP单击右键完成“Save Target As”操作204.7.8 QTP读取外部Excel数据214.7.9 报告优化整理22结 论24参 考 文 献25致 谢26基于QTP的自动化测试1软件测试简介1.1 软件测试简介一般人认为,软件测试没什么技术可言,只要懂得使用鼠标就足够了,这是对软件测试的一种误解。学习过软件工程的同学几乎普遍都对软件测试存在一种歧视,扩大一点范围可以说几乎所有学过代码开发的人都对软件测试这个行业存在偏见。当然,这种现象大多数只发生在国内。在国外,软件测试已经是一个兴旺发达的行业。一般而言,软件测试从项目确立时就开始了,前后要经过以下一些主要环节:需求分析测试计划测试设计测试环境搭建测试执行测试记录缺陷管理软件评估RTM.在真正的项目中,编写测试用例人员首先通过被测软件和开发人员提供的一些文档,编写出效率最高的测试用例,测试人员从客户那里得到被测软件,按照测试用例检查被测软件,最后将测试结果反馈给开发人员。测试人员还有一个最重要的任务就是跟踪bug,一个bug的生命周期分为New,Open, Fixed和Closed 四种基本状态,另外还存在一种Reopen的状态,测试人员要从New状态一直跟踪到Closed状态。在进行有关问题阐述前,先明确下分工,一般而言,需求分析、测试用例编写、测试环境搭建、测试执行等属于测试开发人员工作范畴,而测试执行以及缺陷提交等属于普通测试人员的工作范畴,测试负责人负责整个测试各个环节的跟踪、实施、管理等。 基于不同的立场,存在着两种完全不同的测试目的。从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。因此,他们会选择那些导致程序失效概率小的测试用例,回避那些易于暴露程序错误的测试用例。同时,也不会着意去检测、排除程序中可能包含的副作用。测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。如果成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。2 自动化测试简介2.1 自动化测试的目的开发一个软件要在最短的时间内开发出需求分析中的软件产品,以最快的速度能先于其它竞争对手占领软件市场,从而获取最大的利益,现在的软件开发已经将测试融入其中,所以测试的速度也是至关重要的。传统的软件测试是靠人的手动来进行测试,也是现在各个软件测试公司的主流方法,称之为Manual test。测试部门每天都要计算在某个项目上charge多少个人。这样的测试耗费时间,耗费人力,耗费成本。自动化测试的目的就是尽可能的减少在测试上的人力和财力的开销,以最便捷省时省事的方法,完成同样的任务。测试自动化是使软件测试人员跟上开发人员脚步的惟一方式。自动化测试相对于手工测试的优点优化测试速度:可非常快速的运行上万条记录。 提高准确性、稳定性:可以不为外界因素干扰,准确运行测试用例。确定性:能真实快速搭建测试环境,测试数据,重现缺陷。 提高工作效率:一边运行自动化测试,一边准备测试报告。 测试环境搭建:可以结合多种编程语言及技术协助搭建测试环境,防止手工测试重复劳动,如批处理技术。 提高技能:可提高测试人员技能,同时提高对测试的兴趣,防止对手工测试感觉枯燥。 数据处理方面的优点测试数据:自动化测试工具可以根据需要,准备大量的测试数据。 数据处理:测试结果有时需要再进行相应的数据处理。 用例准备:可以使用相关脚本技术准备大量的测试用例。 2.3 自动化测试流程图自动化测试有它自己的一个流程,下图为自动化测试流程图,如图2.1所示。图2.1 自动化测试流程图3 QTP自动化测试3.1 QTP自动化测试简介QTP,全称为Quick Test Professional,是Mercury研发的一种自动化测试工具,现在属于HP公司,是一款先进的自动化测试解决方案,用于创建功能和回归测试。它自动捕获、验证和重放用户的交互行为。Quick Test Professional是为每一个重要软件应用和环境提供功能和回归测试自动化的最佳解决方案。 下图为QTP自动界面,如图3.1所示。 图3.1 QTP自动界面Quick Test Professional是新一代自动化测试解决方案,采用了关键词驱动(Keyword-Driven)测试的理念,能完全简化测试的创建和维护工作。Quick Test Professional关键词驱动方式独有之处在于,测试自动化专家可以通过一个整合的脚本和纠错环境,拥有对基础测试脚本和对象属性的完全访问权限,这些脚本和纠错环境与关键词视图(Keyword View)可以互为同步。Quick Test Professional同时满足了技术型和非技术型用户的需求,让各个公司有能力部署更高质量的应用,同时部署的速度更快,费用更低,风险也更小。3.2 QTP的工作模式QTP分为两种工作模式:第一种为关键字视图模式(Keyword View),普通的录制和回放有关键字视图就足够了,关键字视图中有录制过程中每一个点击事件以及输入事件,测试人员可以在关键字视图下通过修改DataTable来设置检查点。第二种为专家视图(Expert View),它有两个作用:(1)专家视图中包含了整个录制过程中QTP所产生的每一个事件相对应的脚本,QTP高级测试人员可以通过修改这些脚本代码来控制QTP回放时的所有事件;(2)高级QTP测试人员可以在无需录制的情况下,通过自己在专家视图中编写脚本代码,来实现录制能实现的功能,甚至可以实现通过录制无法实现的功能,这种方法称为描述性编程,使用描述性编程的优点有:减少QTP脚本的大小,便于在邮件和服务器上发送;增加了脚本的可移植性,可扩展性,可维护性。QTP脚本使用VB语言编写,很少的代码量可完成很强大的功能,通过描述性编程,脚本开发人员可以随意控制QTP测试脚本,在自己需要的地方增加检查点,在脚本出问题的时候便于维护;由于没有对象,在脚本移植上变得方便容易,也使脚本的扩展变得容易。对于QTP而言,其核心代码是Visual Basic Script,因此,如果用户熟悉vbScript,就可以自己添加和更新专家视图中的语句,并通过编程方式增强测试脚本。 初学者都会知道QTP是用来录制回放的,当然,录制完就会有对象存在在对象库中,这个对象对已经录制的实体有一个唯一的标识。但是当你遇到以下情况时,就无法再应用对象和对象库了:(1)在某些页面上动态产生的对象;(2)当要求脚本必须比较小的时候。那么此时就要应用描述性编程了,这部分工作只能在专家视图中进行。以下是一个例子:Browser(xxxx).Page(yyyy).Click将以上的代码修改为描述性编程:假如现在只是打开的yyyy主页Window(Text:=yyyy).Close简而言之,描述性编程就是将原来的对象用该对象应该具有的属性和对应的属性值来代替(即property:=value),来唯一标识这个对象,这样,即使删除对象库中对应的对象脚本仍然可以运行。当在一个测试中多次使用描述性编程的时候,如以下示例:Window(Text:=aaa).WinButton(Caption:=bbb).ClickWindow(Text:=aaa).WinButton(Caption:=ccc).ClickWindow(Text:=aaa).WinButton(Caption:=ddd).Click为了方便起见,我们可以将Window(aaa)赋值给一个值Set E = Window(Text:=aaa)E.WinButton(Caption:=bbb).ClickE.WinButton(Caption:=ccc).ClickE.WinButton(Caption:=ddd).Click如果还想在简化代码,可以使用VBScript里的with语句来实现 With Window(Text:=aaa).WinButton(Caption:=bbb).Click.WinButton(Caption:=ccc).Click.WinButton(Caption:=ddd).Click描述性编程的“后续强迫性”。当使用描述性编程时,需要注意一点就是,描述性编程的“后续强迫性”问题,什么是“后续强迫性”呢?就是说如果在测试对象层次结构的某一点开始就是用了描述性编程,则该测试对象层次结构下的后续测试对象都要使用描述性编程的方式来描述。由于应用描述性编程要应用VBscript语言,所以在这里要简单的介绍一下VBscript:Visual Basic,简称VB,是Microsoft公司推出的一种Windows应用程序开发工具。是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。3.4 QTP自动化测试流程3.4.1 准备测试用例软件测试,离不开测试用例,测试用例对于软件测试来说就如软件开发中的需求分析一样,开发中没有需求分析说明书就无法知道将要做的是什么,完成什么功能,测试用例对于软件测试的功能是一样的,没有测试用例就算有了测试软件也无法进行测试,而且测试用例要便于脚本的后期维护。 测试用例开发的标准是符合自动化测试要求,检查点覆盖尽可能全面,测试步骤尽可能通顺简洁,方便测试人员进行测试。本次毕业设计由于是个人项目,无法按照公司的流程进行开发,因此在测试用例开发的流程上欠缺合理性。3.4.2 配置QTP运行环境QTP支持不同的开发环境,在录制(编写脚本)之前,需要根据被测试的环境,选择合适的插件,并进行加载。在安装QTP时,会提示输入许可序列号,如果没有买到HP授权的正版序列号,QTP只能有14天的试用期。3.4.3 录制或编写自动化测试脚本不论是录制还是测试员自己编写自动化测试脚本,都必须按照测试用例的步骤来进行,开发中开发人员按照需求分析文档来一个个的实现需求分析中的功能模块,同样的道理,测试人员要根据测试用例完成每一步测试用例相对应的自动化脚本的开发。3.4.4 检查修改脚本录制或编写完自动化测试脚本以后,不要急于运行测试脚本,要先好好检查脚本的完整性,语法错误以及逻辑性。删除冗余的脚本代码,以最少的代码来实现同样的功能。3.4.5 运行调试测试脚本检查过脚本代码后,运行该测试脚本,不是所有的脚本都能按照预期的期望正常运并能产生正确的报告的。这就要求脚本开发人员在脚本出问题的时候对脚本进行调试,直到脚本正常运行。3.3.6 运行维护脚本脚本调试后可以正常运行,随着代码量的增加,这个时候就需要不断的对脚本进行后期维护,以确保脚本的质量和性能。3.4.7 QTP自动化测试流程图QTP自动化测试有它自己的测试流程图,下图为QTP自动化测试流程图,如图3.2所示:编写测试用例 搭建测试环境搭建QTP运行环境编写QTP自动化脚本调试测试脚本 NO是否通过 YES提交给测试人员 图3.2 QTP自动化测试流程图3.5 QTP框架介绍Java中有MVC框架,struts框架等等,在QTP中,同样有它自己的框架结构。QTP框架基本分为三层,脚本层(业务组件开发),业务层(流程的开发和组织),数据层,层次之间相互分离是本框架组织总的方针,为开展功能自动化测试提供一个高效、稳定、容易的测试实现。实现QTP自动化测试框架实际上要由以下几个部分组成:(1)一组录制好的qtp脚本(QTP的Action);(2)一个可以组织用例的Excel文档;(3)一个VBScripts脚本。首先,在QTP里建立多个Action,这些Action于测试用例中的步骤一一对应,Action里的语句只有调用vbScript文件和调用该vbScript文件内函数的语句即可。其次,把固定的字符串以及按钮参数化,这些参数将被保存在QTP的Datatable中,供vbScript调用。再次,为实现真正意义上的自动化测试,我们需要一个VBScripts脚本,它的作用是通过执行这个VBScripts脚本来驱动QTP程序启动,然后自动运行我们所需要执行的qtp脚本。完成以上内容,一个基本的自动化测试架构就组合完成了。当然,以上的内容只是一个简单的说明,在这其中,实际上是需要我们进行脚本的调整和运用一些编程技术才能实现这个框架,例如,我们如何让QTP脚本来读取Excel中的用例值?如何通过vbscripts脚本来启动QTP程序?等等。而对于以上的框架实际上还有调整的余地,我们很多时候听到的框架优化,原则上就是要把这个框架更细化,例如,测试用例中需要有附件的配置、需要有公共函数的使用、测试执行后要有结果存储的路径等等一系列内容,这样,这个框架才能够被共享和复用,而不是每次测试都要重新考虑用例设计或者重新生成用例集,而这些是慢慢将这个框架进行丰满所要做的工作。4 “美图秀秀”的自动化测试4.1 测试规划以“美图秀秀”为被测软件,QTP为测试工具,实现一个软件从安装,应用到卸载的整个过程的function testing 以及UI testing。主要测试点有:安装快捷方式检查:功能测试:(1)启动软件(2)选择图片(3)编辑图片(4)保存编辑后图片(5)关闭软件(6)IE检查UI 测试:(1)检查应该出现的字符串以及各种Button。卸载4.2 测试用例开发正常的测试是由专门写测试用例的人员将测试用例写好后,放到QC上,测试人员再从QC上导下来进行测试,在本次毕业设计中,由于是独立完成毕业设计,所以测试用例也是自己编写的,测试用例写的原则就是尽可能的覆盖更多的检查点。本次毕业设计的测试用例根据测试规划而开发,测试用例涵盖了软件的安装检查;界面检查;功能性检查,如启动,编辑,关闭等;卸载检查等。4.2.1 安装测试用例Steps:(1)DbClick XiuXiu_Soft.exe;(2)Click 立即安装美图秀秀 from 美图秀秀 2.2.0 安装;(3)Click 下一步(N) from 美图秀秀 2.2.0 安装;(4)Unselect 安装百度搜霸 and click下一步(N);(5)Click 安装(I);(6)Unselect 设置 美图秀秀上网主页 为IE 首页;(7)Click 完成(F).Expected Result:Verify software can be installed successfully.4.2.2 安装完毕自动启动软件测试用例Steps:(1)Flow above steps.Expected Result:Verify the 美图秀秀 2.2.0 can automaticlly launched successfully.Verify the /success.html webpage launched.4.2.3 桌面坐标检查测试用例Steps:(1)Check shortcuts on desktop.Expected Result:Verify the shortcut “美图秀秀” displays on desktop.Verify the shortcut “520上网主页” displays on desktop.4.2.4 开始菜单检查测试用例Steps:(1)Start menu links.Expected Result:Verify 美图 folder is displayed.Verify 美图秀秀 folder is displayed.Verify 美图看看 folder is displayed.Verify blew links are displayed:美图秀秀.卸载美图秀秀美图看看“卸载美图看看4.2.5 启动软件测试用例Steps:(1)Lanuch 美图秀秀 from desktop/startmenu;(2)Click X button.Expected Result:Verify the 美图秀秀 2.2.0 can launched without any error.Verify the 美图秀秀 2.2.0 can exited without any error.4.2.6 打开图片测试用例 Steps:(1)Lanuch 美图秀秀 from desktop/startmenu;(2)Click 打开一张图片 from dialog 美图秀秀;(3)Click “Cancel” button.Expected Result:Verify the 打开一张图片 dialog can be opened.Verify the dialog can be closed after click 退出 button.4.2.7 场景编辑测试用例Steps:(1)Click “场景” from 美图秀秀;(2)Click “取消” Button on “场景 编辑框” dialog.Expected Result:Verify “场景 编辑框” dialog can be opened.Verify the dialog can be closed after click “取消” Button.4.2.8 场景编辑框检查测试用例Steps:(1)Click “场景” from 美图秀秀.Expected Result:Verify 预览 button exists.Verify 编辑 button exists.Verify 保存 button exists.Verify 复制到QQ button exists.Verify 修改闪图大小 button exists.4.2.9 恢复原图测试用例Steps:(1)Click 原图 from 美图秀秀;(2)Click “闪图” Button.Expected Result:Verify the 闪图 编辑框 dialog is closed successfully.4.2.10 饰品编辑测试用例Steps:(1)Click 饰品 on the 美图秀秀.Expected Result:Verify 非主流印 button exists.Verify 装饰品 button exists.Verify 可爱心 button exists.Verify 会话气泡 button exists.Verify 可爱动物 button exists.Verify 卡通人物 button exists.Verify 动态文字 button exists.Verify 缤纷节日 button exists.Verify 开心恶搞 button exists.Verify 遮挡物 button exists.Verify 淘宝 button exists.Verify 其他饰品 button exists.4.2.11 美容编辑测试用例Steps:(1)Click 首页 on 美图秀秀;(2)Click 美容 button on 美图秀秀.Expected Result:Verify the 美图秀秀温馨提示 dialog should displays.4.2.12 卸载测试用例Steps:(1). Select 卸载美图秀秀;(2). Click Yes button from 美图秀秀2.2.0 卸载 dialog;(3). Click Yes button from 美图秀秀2.2.0 卸载 dialog;(4). Click OK button from 美图秀秀2.2.0 卸载 dialog;Expected Result:Verify the software can be uninstall successfully.Verify“/uninstall.html?ver=000&from=Soft&hd=a2e118b4e2fc95f5c455d5c70e55f7b9“ webpage launchs.下图为测试用例截图,如图4.1所示:图4.1 测试用例截图4.3 QTP脚本开发测试脚本主要在专家视图中应用VB语言进行编写,最终可编辑成vbs脚本文件,所有的vbs脚本文件集合起来产生一个VBScript脚本。以测试用例的检查点进行Action分割,即每一条测试用例对应一个Action,这样做的好处是一个Action的pass与failed直接对应一条测试用例的执行结果,如Install Action的功能只是安装。Action之间相互独立,各个Action之间的耦合性尽量降低。根据Action的分类,一个Action对应一个vbs脚本,在vbs脚本中以vb语言为基础,利用vb函数以及系统内部函数调用,以及对注册表、桌面路径、开始菜单路径检查和调用,完成软件的安装、快捷方式检查、功能测试、UI测试以及卸载等测试,通过ReporterManager产生测试报告返回测试Excel格式的结果。应用QTP框架原理,实现Action与vbscript 相分离。便于脚本维护。安装测试脚本主要是启动安装软件,然后判断被测软件安装程序是否能够正常启动下图为启动安装程序代码界面,如图4.2所示: 图4.2 启动安装程序代码界面安装过程检查脚本主要检查安装过程中各个界面是否正常出现,界面上的文字和按钮显示是否正常。下图为安装过程检查代码界面,如图4.3所示: 图4.3 安装过程检查代码界面开始菜单检查脚本是检查软件在开始菜单中的链接是否存在,下图为开始菜单检查界面,如图4.4所示: 图4.4 开始菜单检查界面4.4 测试报告QTP产生的报告要求清晰明朗,通过、未通过和Pass率等各种信息都要求在报告中显示出来,下图为报告的Summary Sheet,如图4.5所示:图4.5 报告的Summary Sheet 上图报告显示的是测试用例执行的总体结果,下图显示的报告的详细信息,如图4.6所示: 图4.6 报告的Detail Sheet4.5 环境搭配 OS: Windows xp/vista。 语言: 简体中文。网络连接正确。4.6 软件需求 (1)美图秀秀。(2)QTP。(3)其它软件需求: office 2003或 office 2007。4.7 遇到的问题以及解决方案4.7.1时间处理由于计算机配置不同,在自动运行软件及其功能时,目标窗口出现的时间不同,这就需要脚本在执行完一个判断后,在判断下一个目标出现之前,必须有时间上的判断,否则当在QTP默认时间内没有出现目标,测试将会报错。时间处理方法有:(1)死等法: wait(10)。 wait方法可设定指定的等待时间,时间单位为秒,但这个时间只能是固定的,即必须等到这个时间才能继续执行。缺点:有时候会浪费时间,有时候因时间把握不准确而少设定了时间。 (2)waitproperty windows(XXX).dialog(XXXXXXXX).waitProperty visible,true,50000 方法中的visible是属性,true是属性的值,50000为最长等待时间,单位为毫秒。即在最长等待时间内任意时刻visible的值为true了,脚本继续向下执行,直到等到最大等待时间,然后给出warning。注意:如果超出最大等待时间,QTP报告中的结果是warning,而不是fail。 (3)Exist(10) windows(XXX).dialog(XXXXXXXX).Exist(10) 方法中的10的时间单位为秒。 该方法与waitproperty方法类似,个人认为比waitproperty方法好用一些。4.7.2欲点击的button是一张图片解决方法:Tools-Virtual Objects-New Virtual Objects在Virtual Objects Wizard窗口选择下一步,接下来的窗口选择一个虚拟对象的类别,然后点击下一步,接下来的窗口中点击 “Mark Object”来确定虚拟对象。完成。4.7.3 对象无法识别解决方案: (1)模拟录制和低级录制 QTP录制分为三种模式,一为普通模式录制,二为模拟录制,三为低级录制。模拟录制是将普通录制无法识别的对象,录制为模拟对象,模拟对象一般是一个窗口,即将不能识别的对象所在窗口识别为模拟对象,以此来判别该对象是否存在。低级录制是记录鼠标对点的操作,即只记录鼠标在目标窗口进行的点击以及拖动等动作。低级录制在项目中不建议使用,因此在本工程中并未用到,在此只是做一个简介。(2)坐标识别:坐标识别与模拟录制有些相似,只是没有模拟录制所产生的对象库。个人使用坐标识别的步骤为:通过建立虚拟对象的步骤定位目标点在当前窗口的坐标值,然后点击坐标点,例如确定坐标后,可通过以下语句实现点击:Dialog(“text:=jevon”).Click 23,234.7.4 报告中无法显示Pass率在实际项目中,客户关注的不仅仅是这一本测试用例哪条通过了,哪条没有通过,他们还很关注Pass率是多少,为了能在最终的测试报告中体现出Pass率,通过两天的时间对ReporterManager的研究和修改,现在可以在QTP报告的summary sheet里面直观的看到这一次运行完以后的Pass率。4.7.5 运行时界面效果为了不让QTP在运行时占据桌面视觉空间,特意将QTP在运行开始时将其最小化,运行结束后再最大化,具体实现方法如下:最小化QTP窗口:Dim objQTPWinSet objQTPWin = GetObject(“”,”QuickTest.Application”)objQTPWin.WindowState = “Minimized”最大化QTP窗口:ObjQTPWin.windowState = “Restored”SetObjQTPWin = Nothing4.7.6 场景恢复软件开发中常常使用TryCatch来捕捉代码出现的异常,从而避免异常给整个工程带来的威胁。在运用描述性编程的QTP中,由于被测试软件还不是很成熟,存在相当多的缺陷,这些缺陷都是未知的,这就更需要QTP有这样的方法来避免突发情况。 在实际项目中,根据实际情况做了一个场景恢复,内容如下:(1)Resources-Recovery Scenario Manger;(2)”Recovery Scenario Manger” 对话框-New Scenario (“New Scenario” 是在字符串 “Scenario”后面的一个button);(3)”Recovery Scenario Wizard”-“下一步”, 选择 error course 并点击“下一步”;(4)选择 test run error characterized 并点击“下一步”;(5)在 “Recovery Operations”界面, 选择任意选项然后点击“下一步”;(6)选择一个操作形式 (在本项目中,选择了“Function call”);(7)如果选择的是“Function call”, 可以通过“Function Library” 来加载已经写好的函数,点击“下一步”;(8)如果想再添加一个场景恢复, 取消 “Add another recovery operation” 选项的选择并且点击“下一步”;(9)场景恢复设置完成后,选择场景恢复所期望的执行效果并点击“下一步”;(10)给完成的场景恢复命名,然后点击“下一步”;(11)完成。 这样,一旦脚本运行中出现未知异常,脚本就会调用我的预先定义好的函数,然后自动跳到下一个action继续执行脚本,避免出错并且节省时间。另一种方式是利用vb自带的错误处理机制:在可能出现问题的语句前边加上:on error resume next,一旦语句出错,将跳过该错误语句继续执行,在停止该语句效应范围处使用on error goto 0或者err.clear来实现结束 “on error resume next”。4.7.7 QTP单击右键完成“Save Target As”操作 Setting.WebPackage(ReplayType) = 2Browser(Jevon_新浪博客).Page(Jevon_新浪博客).Link(text:=Jevon).Click 0,0,micRightBtnSetting.WebPackage(ReplayType) = 1Set WshShell = CreateObject(WScript.Shell)For i = 1 To 4 Save target as.在第四个位置 WshShell.sendKeys DOWNNextWshShell.sendKeys ENTERSet WshShell = nothing附录:replaytype1 - Runs mouse operations using browser events.2 - Runs mouse operations using the mouse.你的应用应该选择鼠标模式。0,0是个人用法上的习惯,就是这个对象的左上角的第一个像素位置4.7.8 QTP读取外部Excel数据Dim filepath,rowcount,ifilepath = pathfinder.Locate(C:UsersJevonDesktopTopView.xls) Excel pathDataTable.AddSheet(resultSheet) add new sheet to datatableimport outside sheet data into new sheet in the datatableDataTable.ImportSheet filepath,Test_Summary,resultSheetrowcount = DataTable.GetSheet(resultSheet).GetRowCountDimcounts,passrate,bounddefine the pass count,passrateand all case countcounts = 0reDim arraydata(rowcount) bound = rowcount-9msgbox boundFori=10torowcount the tenth row is the first test case resultDatatable.SetCurrentRow(i)arraydata(i-10) =Datatable.Value(C,resultSheet)If arraydata(i-10) = Pass Thencounts=counts+1End IfNextpassrate=counts/boundmsgbox passrateDim rowcount1define a new sheet named PassrRaterowcount1=DataTable.GetSheet(PassRate).GetRowCountDim rowrow = rowcount1+1DataTable.SetCurrentRow(row) DataTable.Value(Name,PassRate) = PassRateDataTable.Value(PassRate,PassRate) = passrateDataTable.ExportSheet C:UsersJevonDesktopTopView.xls,24.7.9 报告优化整理QTP自动产生的报告不是很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论