QuickTestProfessional8.2教程.ppt

上传人:za****8 文档编号:12667844 上传时间:2020-05-13 格式:PPT 页数:39 大小:843.01KB
返回 下载 相关 举报
QuickTestProfessional8.2教程.ppt_第1页
第1页 / 共39页
QuickTestProfessional8.2教程.ppt_第2页
第2页 / 共39页
QuickTestProfessional8.2教程.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
2020/5/13,iSoftStoneInformationServiceCorporation,MercuryQuickTestProfessional8.2教程,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,2,目录,自动化测试简介QuickTestPro简介QuickTestPro的测试流程QuickTestPro进阶,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,3,1.自动化测试简介,GUI自动化测试方面的理论有很多,众说纷纭。比较受认同的观点有:自动化测试可以将测试人员从重复枯燥的手工操作中解放出来,让测试人员有更多的精力关注在对被测系统的分析上。测试人员将更加重视测试用例的设计。自动化测试在现阶段不能取代手工测试。凡是重复枯燥的工作,都可以也应该被自动化测试取代。回归测试是使用自动化测试的一个比较适宜的阶段。自动化测试需要在覆盖率和实现成本上找到平衡点。覆盖率越高,实现和维护成本越大。覆盖率低,自动化测试没有实现的价值。针对产品,应该在自动化测试中实现实施测试的关键流程。自动化测试需要测试人员有一定的软件设计和开发能力,同时也要对被测系统的业务有一定的认识。自动化测试需要有完善的测试流程和测试策略做保证。自动化测试的脚本的维护成本比较高。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,4,2.QuickTestPro简介,QuickTestProfessional是新一代自动化测试解决方案,采用了关键词驱动(Keyword-Driven)测试的理念,能完全简化测试的创建和维护工作。QTP的界面介绍:TestPane包括KeywordView和ExpertView两个视图。图中显示的是关键词视图,录制生成的脚本可以在这里很直观的看到,可以在此视图完成参数化的工作。ExpertView可以在在此视图中直接修改生成的脚本,适合对VB脚本和QTP的函数比较熟悉的测试人员使用。DataTable,就是一个Excel,用于提供自动化测试脚本所需的输入数据或者校验数据。指向测试脚本文件目录下的Default.xls文件。可以直接在Excel中编辑数据。ActiveScreen,录制脚本时生成,记录下Web页面,可以在此完成大量的修改脚本工作,如添加检查点等。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,5,2.QuickTestPro简介,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,6,3.QTP的测试流程,设计测试用例的测试数据录制测试脚本修改并调试测试脚本执行测试脚本分析测试报告回报发现的缺陷,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,7,设计测试用例的测试数据,分析业务,设计你的测试用例,决定要测试和校验哪些功能点(根据需求或者设计文档)。设计你的测试用例的测试数据。根据QTP的功能特点和实现成本,决定哪些用例手工执行,哪些用例使用QTP执行。分析这些需要实现的自动化测试过程,合理安排录制脚本的顺序,尽量使生成的脚本复用。这个需要经验的积累。例:现在要测试银企登陆页面,详细的测试数据如下:,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,8,设计测试用例的测试数据,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,9,录制测试脚本,当在Web页面或者其它的应用程序的GUI上执行操作时,QTP会记录下你的操作步骤,并产生测试脚本。当你停止录制测试脚本后,会看到QuickTest在KeywordView中以表格的方式显示测试脚本的操作步骤(steps)。根据测试数据,执行后生成的脚本如下(树状结构):,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,10,录制测试脚本,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,11,修改并调试测试脚本,添加对象和步骤参数化增加条件控制建立检查点建立输出值分割脚本,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,12,添加对象和步骤,可以发现,我们录制的脚本中,缺少用户名和密码的输入框这两个对象。下面增加在用户名和密码的输入框输入值的这两个步骤。选中“iTreasury资金管理平台”这个Page对象,点击insert-newstep;如果你所要添加的控件QTP已经识别过类似的控件,你可以使用这个类似的控件,并且通过修改属性来添加这个新的步骤,如果QTP没有识别过,选择stepgenerator,弹出对话框;点击图中的图标按钮,弹出对话框,点击其中的按钮,鼠标会从箭头变为手型指针,在你要测试页面上选中你要添加步骤所需要的控件用户名和密码的输入框添加用户名和密码输入框中的值(value),“”是指在输入框中输入空。点击ok,所选对象的属性将被保存到对话框中,再点击“ok”按钮就完成了整个添加点击“确定”按钮这个步骤。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,13,添加对象和步骤,最后,使用TestUpdateRun方式运行脚本。UpdateRun方式运行脚本,可以在运行的同时更新ActiveScreen,checkPoint以及TestObject。特别是更新ActiveScreen的功能,手工添加的步骤使用普通方式运行脚本,不会生成ActiveScreen,这样就无法添加检查点。另外,也可以在对象库(ObjectReponsitory)中添加对象。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,14,参数化,根据测试数据,可以发现,执行的所有操作,只是修改登陆名和密码,所以我们可以把这两个输入值参数化,使得脚本执行时,自动取DataTable的值来运行。调出参数化窗口的方法有两个:在KeyWordView中点击想要被参数化的值,如图中的“test1”,再点击出现的图标,或者使用快捷键“Ctrl+F11”;在这个输入框对象上,右键,弹出对话框,选择“Objectproperties”。不过在输入框对象中,使用不上。参数化时,可以选择使用GlobalSheet或者LocalSheet,当把参数化的值放到GlobalSheet中,就成为全局变量,放到LocalSheet中后,就是局部变量,只在本Action中可以调用。一般建议使用LocalSheet。Global全局参数:它控制整个Action的运行次数,global里有几行参数,则运行几次脚本。CurrentAction(LocalSheet):对应于单一的Action的参数,对于一个Action没有实际的意义,而几个Action共同在一个脚本中使用时,就由他来控制单一Action的循环次数。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,15,增加条件控制,QuickTest中的条件控制语句是通过VB脚本语言来实现的。If条件1正确Then执行语句1ElseIf条件2正确Then执行语句2Else执行语句3EndIf可以添加ElseIf子句以扩充If.Then.Else语句的功能,使您可以控制基于多种可能的程序流程。判断Excel中某列的值是否为空:DataTable(“列名”,dtLocalSheet)”,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,16,建立检查点,弹出对话框的内容是我们需要校验的重要信息。可以在弹出对话框的文字上添加标准检查点:在ActiveScreen中显示的弹出对话框的文字上右键,选择“InsertStandardcheckpoint”,在弹出框中选择”Static:请输入密码”,然后点击“OK”按钮选中“请输入密码”的字样,然后在Configurevalue的标签中选中Parameter的单选框,点击图标按钮。在name的输入框中输入你给弹出框内容起的名字,做一个标识,如“校验信息”,这对应到DataTable中的列名。同样,建议使用LocalSheet。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,17,建立输出值,与建立检查点类似,可以在ActiveScreen中右键“InsertOutputValue”,操作方式相同。可以把弹出框的信息输出到DataTable中去。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,18,分割脚本,可以把在页面输入和对弹出框的校验分成两个Action。在KeywordView中,选中弹出对话框的对象,点击“Step”菜单,选择“SpitAction”分别给页面输入和弹出框两个Action命名。点击“OK”按钮这样,原来的一个Action就分成了两个Action。任何一个Action都可以被其它的Action调用。在测试登陆的这个例子中,不需要分割Action。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,19,执行测试脚本,在DataTable中输入预先设计好的测试数据,然后执行编辑好的测试脚本:Browser(iTreasuryPro资金管理平台).Page(iTreasuryPro资金管理平台).WebEdit(loginno).SetDataTable(用户名,dtLocalSheet)Browser(iTreasuryPro资金管理平台).Page(iTreasuryPro资金管理平台).WebEdit(password).SetDataTable(密码,dtLocalSheet)Browser(iTreasuryPro资金管理平台).Page(iTreasuryPro资金管理平台).WebButton(提交).ClickIfDataTable(checkMsg,dtLocalSheet)ThenBrowser(iTreasuryPro资金管理平台).Dialog(MicrosoftInternetExplorer).Static(请输入密码).CheckCheckPoint(请输入密码)Browser(iTreasuryPro资金管理平台).Dialog(MicrosoftInternetExplorer).WinButton(确定).ClickelseifDataTable(checkDBMsg,dtLocalSheet)Then,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,20,执行测试脚本,Browser(Browser).Dialog(MicrosoftInternetExplorer).Static(登陆失败,可能原因:用户和密码不匹配,请重新登录).CheckCheckPoint(登陆失败,可能原因:用户和密码不匹配,请重新登录)Browser(Browser).Dialog(MicrosoftInternetExplorer).WinButton(确定).ClickelseBrowser(iTreasuryProtm).Page(iTreasuryProtm).Image(main_bankportal).CheckCheckPoint(main_bankportal)Browser(iTreasuryProtm).CloseEndIf在KeywordView中选中Action,右键,点击“ActionCallProperties”,弹出对话框,显示执行本Action的次数。选择“Runonallrows”,执行所有的数据。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,21,分析测试报告,执行完测试数据后,或者意外中断,测试执行结束,就会生成测试报告。测试报告也是一个树形结构,需要注意标记为“X”的报告项。如果有标记为“X”的报告项,可能是执行脚本出错,或者是检查点校验没有通过,可能是一个缺陷。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,22,回报发现的缺陷,如果QTP和Mercury公司生产的缺陷管理工具如TestDirector以及QualityCenter连接起来,就可以把QTP中执行测试用例中发生的错误以及发生错误时的截图发到缺陷管理工具中去,生成缺陷报告。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,23,QTP进阶,通过录制的方法生成测试脚本,往往不能把页面的所有Web对象都录下来,虽然可以通过手动添加对象和步骤,来做一定的补充,但是灵活度比较低,只能执行比较简单的测试任务。一般来说,在QTP里面我们可以通过两种方式添加步骤来创建测试或组件:在应用程序或网站上录制会话。建立对象库并使用这些对象在关键字视图或专家视图中手动添加步骤QTP中所有的操作都是基于对象来完成的,如果要想在关键字视图或者专家视图手动添加步骤,必须对对象模型有一定的了解。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,24,QTP进阶,QTP的对象识别机制关键字驱动测试描述性编程一些技巧,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,25,QTP的对象识别机制,测试对象模型是一大组对象类型或类,QTP用这些对象类型或类来表示应用程序或Web页面中的对象。每个测试对象类都有一个可以唯一标识属于该类的对象的属性列表,以及一组QTP可以对其进行录制的方法。它包括测试对象(TestObject)和运行时对象(RunTimeObject)。测试对象是QTP在测试中创建的用于表示Web页面或应用程序的实际对象的对象。QTP存储有关的该对象的信息。例如,在前面的例子中有说到一个“提交”按钮,它的Html源代码是:可以看到这个Html标签的type是一个button,所以QTP将它识别为一个WebButton,它在当前Web页面可以标识的属性value=提交,这样,运行脚本的时候,QTP就通过type、value等属性在当前Web页面匹配符合这些属性的Web对象,或者说是html标签,然后再执行对“提交”按钮的Click方法。在对象库(ObjectRepository)中记录下“提交”按钮这个对象的属性。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,26,QTP的对象识别机制,在关键字视图和专家视图中分别显示为:Browser(iTreasuryPro资金管理平台).Page(iTreasuryPro资金管理平台).WebButton(提交).Click,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,27,关键字驱动测试,关键字驱动或者称为关键词驱动(KeywordDriven),是为了解决通过录制的方法来产生脚本的问题。就是先把所有需要的Web对象都添加到对象库中,然后在关键字视图中手动添加测试步骤,这样就是一个设计脚本的工作,可视化程度非常高,非常直观。这中方法的缺点有:如果不手动添加脚本,仍然只能实现简单的测试任务。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,28,描述性编程,通常情况下,当在录制一个操作时,QTP会将被操作对象加入到对象库里(ObjectRepository)。一旦对象存在于对象库里,我们就可以在专家视图里通过添加相关的对象方法来对该对象进行操作。我们可以通过引用层次型对象库里的对象描述(ObjectDescription)来添加相应的方法。因为QTP对象库中的每个对象都具有唯一名称,所以在引用时对象名是必须需要指定的。然后在测试运行期间,QTP在对象库中根据这个对象的名称和父对象来查找对象,并使用为这个测试对象存储的测试对象描述,在网站或应用程序中标识该对象。描述性编程,简单的来说,就是在专家视图中,手动编写脚本,对某个对象执行某种操作。譬如,在用户名的输入框中输入“123”,用户名的输入框的在该页面的标识是loginno,其类型为WebEdit,对此输入框执行的是set一个值“123”,所以生成的脚本如下:WebEdit(“loginno”).set“123”,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,29,描述性编程,但是,这样的脚本,QTP并不知道这个文本输入框是在哪个页面的,所以需要在前面加上Browser和Page的信息,指明是哪一个Web页面的,最终生成的脚本是:Browser(iTreasuryPro资金管理平台).Page(iTreasuryPro资金管理平台).WebEdit(“loginno”).set“123”QTP中Web对象比较常用的方法有:,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,30,描述性编程,如果Web对象没有被添加到对象库中,或者通过该Web对象的标识QTP无法识别该对象(这种现象在识别Browser中经常遇到,特别是放大镜),就可以通过直接在脚本中输入编程描述的方式来解决。常规语法为:TestObject(PropertyName1:=PropertyValue1,.,PropertyNameX:=PropertyValueXTestObject-测试对象的类。PropertyName:=PropertyValue-测试对象的属性及其值。各个property:=value对之间应用逗号和引号分开。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,31,描述性编程,例如,在弹出客户放大镜的页面,点击一个客户编号的超连接,形成的脚本如下:Dimbs_Title,pageTitlebs_Title=”客户放大镜-MicrosoftInternetExplorer”pageTitle=”客户放大镜”Browser(“Title:=”&bs_Title).Page(“title:=”&pageTitle).Link(“text:=”&DataTable(“客户编号”,dtLocalSheet).Click,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,32,描述性编程,此外,还可以使用description对象。使用Description对象可以返回包含一组Property对象的Properties集合对象。Property对象由属性名和值组成。然后,可以在语句中指定用返回的Properties集合代替对象名。(每个property对象都包含一个属性名和值)。要创建Properties集合,可以使用以下语法输入Description.Create语句:SetMyDescription=Description.Create()例如,前面提到的放大镜的例子,使用description对象就变成:Setbs_Title=Description.Create()SetpageTitle=Description.Create()bs_Title(“title”).value=”客户放大镜-MicrosoftInternetExplorer”pageTitle(“title”).value=”客户放大镜”Browser(bs_Title).Page(pageTitle).Link(“text:=”&DataTable(“客户编号”,dtLocalSheet).Click当然bs_Title和pageTitle这两个对象中可以存放多个Key和其对应的Value。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,33,描述性编程,描述性编程的缺点:脚本调试花费比较多的时间。需要测试人员有一定的编程基础。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,34,一些技巧,QTP只支持VB脚本,同时提供了丰富的函数,或者称为方法,可以实现复杂的功能。如果要对弹出框的文字信息进行校验,就会用到GetROProperty这个方法:checkMsg=Browser(软通动力).Dialog(MicrosoftInternetExplorer).Static(是否保存?).GetROProperty(text)GetROProperty是得到Web对象的运行时的属性(运行时是弹出显示的什么内容,就得到什么内容);GetTOProperty是得到Web对象的原始属性(录制的时候是什么,得到的值就是什么)GetTOProperties得到该Web对象的原始属性集,是一个对象,包含了所有的属性值。对于dialog中,虽然提示信息对象名称是“是否保存?”,但如果信息对象名称是“客户编号不能为空”,不用更改也可以自动识别,“是否保存?”是一个static的静态文本,只是让运行时能找到这个控制,而不管它是什么内容,因为在对象仓库中,text不是决定该对象的属性。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,35,一些技巧,校验数据库的方法:将DataTable的值与数据库中的值进行校验,一般是校验增、删、改操作是否成功;将页面WebTable中的值和数据库中的值进行校验,一般是校验查询出来的值是否和数据库一致。测试查询和报表会用到。QTP或者说VBS链接数据库是使用ADO方式连接的,这个通用方法,我已经写好,可以通过添加资源文件的方式,在脚本中直接调用该方法,在此不再赘述。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,36,一些技巧,录制菜单:Js生成的菜单,QTP将其识别为WebElement,如果要在QTP中准确的生成菜单的脚本,需要进行一些设置。点击菜单Tools-Webevent,弹出对话框,点击“CustomSetting”按钮,按照下图调整设置。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,37,一些技巧,录制下拉框下拉框在录制时,往往会记录下对下拉框的click操作,这样在回放时会出错。进行如下设置后,可以使生成的脚本正常。点击菜单Tools-Webevent,弹出对话框,点击“CustomSetting”按钮,按照下图调整设置。,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,38,一些技巧,放大镜的录制一般对放大镜的操作有2种:1.在放大镜的输入框中,输入准确的编号,点击回车键,直接匹配,省却了在弹出页面再选择的步骤。缺点是有时候编号并不能唯一匹配,就会显示弹出页,变数较大。2.在输入框中不输入任何的值,直接点击回车键,或者点击放大镜的图标,弹出放大镜页面,然后再选择。缺点是弹出放大镜的效率较低;优点是,生成的脚本稳定。另外在录制放大镜的过程中,一定要用鼠标点击放大镜图标,不要使用回车键。因为QTP在一般情况下,是将回车键,默认为submit的。如果一定要使用回车键的话,可以在生成的脚本中添加:Browser(软通动力).Page(软通动力).Frame(修改页面).WebEdit(upclientidCtrl).FireEvent(onfocus)setWshShell=CreateObject(WScript.Shell)WshShell.SendKeysENTER“,2005iSoftStoneInformationServiceCorporation.Allrightsreserved.,39,参考资料,QTP中的descriptiveprogramming作者:周坚何謂Keyword-DrivenTesting?作者:oldsidney其它,参考一些上的论坛上的讨论。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!