qtp面试题及答案_第1页
qtp面试题及答案_第2页
qtp面试题及答案_第3页
qtp面试题及答案_第4页
qtp面试题及答案_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

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

文档简介

qtp面试题及答案QTP面试题及答案一、QTP基础概念1.选择题(共20分)1.QTP的全称是什么?A.QuickTestProfessionalB.QualityTestProfessionalC.QuickTestProgramD.QualityTestProgram2.QTP现在被称为什么?A.UFTB.QTPProC.AutomatedTestingToolD.HPQualityCenter3.QTP是由哪家公司开发的?A.MicrosoftB.IBMC.HPD.Oracle4.QTP主要支持以下哪种类型的测试?A.性能测试B.安全测试C.功能测试D.所有测试类型5.QTP最初支持的编程语言是什么?A.JavaB.VBScriptC.CD.Python6.QTP的哪个组件用于录制和回放测试脚本?A.KeywordViewB.ExpertViewC.TestSettingsD.ObjectRepository7.QTP的哪个视图显示测试步骤的VBScript代码?A.KeywordViewB.ExpertViewC.TestSettingsD.ObjectRepository8.QTP的哪个组件存储测试对象的信息?A.KeywordViewB.ExpertViewC.TestSettingsD.ObjectRepository9.QTP的哪个功能用于参数化测试数据?A.CheckpointsB.ParametersC.ActionsD.RecoveryScenarios10.QTP的哪个功能用于处理测试过程中出现的错误?A.CheckpointsB.ParametersC.ActionsD.RecoveryScenarios2.填空题(共15分)1.QTP的最新版本名称是________,全称为________。2.QTP主要支持的两种视图是________和________。3.QTP的对象库有两种存储方式:________和________。4.QTP支持的两种录制模式是________和________。5.QTP中用于描述测试步骤的视图是________,而显示VBScript代码的视图是________。6.QTP中用于存储测试数据的组件是________。7.QTP中用于处理异常情况的组件是________。8.QTP中用于验证应用程序功能的组件是________。9.QTP中用于组织测试脚本的组件是________。10.QTP中用于存储测试对象信息的组件是________。3.判断题(共10分)1.QTP只支持Web应用程序的测试。()2.QTP可以测试.NET应用程序。()3.QTP的对象库只能存储在本地。()4.QTP的KeywordView和ExpertView可以同时显示。()5.QTP可以录制和回放Java应用程序。()6.QTP的RecoveryScenarios用于处理测试过程中出现的意外情况。()7.QTP的Checkpoints只能用于验证文本内容。()8.QTP的Parameters只能用于输入参数。()9.QTP的Actions可以嵌套使用。()10.QTP的ObjectRepository可以导出为XML文件。()4.简答题(共25分)1.简述QTP的主要功能和应用场景。2.解释QTP中KeywordView和ExpertView的区别。3.描述QTP的对象识别机制。4.解释QTP中Action的作用和类型。5.简述QTP的测试流程。二、QTP对象识别1.选择题(共20分)1.QTP使用哪种技术来识别应用程序中的对象?A.HTML识别B.DOM识别C.对象识别技术D.以上都是2.QTP的对象识别基于什么?A.对象的属性B.对象的方法C.对象的事件D.以上都是3.QTP中用于存储对象识别信息的组件是什么?A.ObjectRepositoryB.ObjectSpyC.TestSettingsD.LocalObjectRepository4.QTP的ObjectSpy功能用于什么?A.修改对象属性B.查看对象属性和方法C.删除对象D.以上都是5.QTP中,如果两个对象具有相同的属性,QTP如何区分它们?A.使用索引B.使用位置C.使用父对象D.以上都是6.QTP中,描述性编程是什么?A.使用属性值直接描述对象B.使用对象名称描述对象C.使用索引描述对象D.使用位置描述对象7.QTP中,如何解决对象识别问题?A.使用Add-inManagerB.使用ObjectRepositoryC.使用DescriptiveProgrammingD.以上都是8.QTP中,OrdinalIdentifier是什么?A.对象的唯一标识符B.对象的顺序标识符C.对象的索引标识符D.对象的位置标识符9.QTP中,如何确保对象识别的准确性?A.使用唯一的属性组合B.使用索引标识符C.使用位置标识符D.以上都是10.QTP中,SmartIdentification是什么?A.一种智能识别技术B.一种手动识别技术C.一种自动识别技术D.一种编程识别技术2.填空题(共15分)1.QTP使用________来识别应用程序中的对象。2.QTP的对象库有两种类型:________和________。3.QTP的ObjectSpy功能用于________。4.QTP中,如果对象识别失败,可以使用________来解决问题。5.QTP中,描述性编程使用________来描述对象。6.QTP中,OrdinalIdentifier包括________和________。7.QTP中,SmartIdentification由________和________组成。8.QTP中,对象的属性分为________和________。9.QTP中,可以使用________来查看对象的属性和方法。10.QTP中,可以使用________来管理对象库。3.判断题(共10分)1.QTP只能识别标准Windows对象。()2.QTP的对象库只能存储在本地。()3.QTP的ObjectSpy可以查看所有对象的属性和方法。()4.QTP的描述性编程不需要对象库。()5.QTP的SmartIdentification可以替代正常的对象识别。()6.QTP的对象识别基于对象的属性值。()7.QTP的OrdinalIdentifier可以确保对象识别的唯一性。()8.QTP的对象库可以共享使用。()9.QTP的对象识别可以跨应用程序进行。()10.QTP的对象库可以导出为XML文件。()4.简答题(共25分)1.解释QTP的对象识别机制。2.描述QTP的对象库类型及其特点。3.解释QTP中描述性编程的原理和应用场景。4.描述QTP中解决对象识别问题的方法。5.解释QTP中SmartIdentification的工作原理。三、QTP脚本编写1.选择题(共20分)1.QTP中,以下哪个是正确的VBScript变量声明方式?A.DimxB.VariablexC.DeclarexD.Varx2.QTP中,以下哪个是正确的循环语句?A.Fori=1To10B.Loopi=1To10C.Repeati=1To10D.Whilei=1To103.QTP中,以下哪个是正确的条件语句?A.IfconditionThenB.CheckconditionThenC.VerifyconditionThenD.TestconditionThen4.QTP中,以下哪个是正确的函数定义方式?A.Functionname()B.Definename()C.Createname()D.Subname()5.QTP中,以下哪个是正确的子程序定义方式?A.Subname()B.Functionname()C.Definename()D.Createname()6.QTP中,以下哪个是正确的数组声明方式?A.Dimarr(5)B.Arrayarr(5)C.Declarearr(5)D.Variablearr(5)7.QTP中,以下哪个是正确的字符串连接方式?A.str1&str2B.str1+str2C.str1.str2D.str1,str28.QTP中,以下哪个是正确的注释方式?A.'ThisisacommentB.//ThisisacommentC./Thisisacomment/D.Thisisacomment9.QTP中,以下哪个是正确的对象引用方式?A.Browser("Google").Page("Google").WebEdit("q")B.Browser.Google.Page.WebEdit("q")C.Browser["Google"].Page["Google"].WebEdit["q"]D.Browser:Google:Page:WebEdit("q")10.QTP中,以下哪个是正确的Wait语句?A.Wait5B.Delay5C.Sleep5D.Pause52.填空题(共15分)1.QTP中,VBScript的变量声明使用________关键字。2.QTP中,VBScript的循环语句有________、________和________。3.QTP中,VBScript的条件语句有________、________和________。4.QTP中,VBScript的函数定义使用________关键字。5.QTP中,VBScript的子程序定义使用________关键字。6.QTP中,VBScript的数组声明使用________关键字。7.QTP中,VBScript的字符串连接使用________运算符。8.QTP中,VBScript的注释使用________字符。9.QTP中,VBScript的对象引用使用________运算符。10.QTP中,VBScript的等待语句使用________方法。3.判断题(共10分)1.QTP的脚本只能使用VBScript编写。()2.QTP的脚本可以直接使用JavaScript编写。()3.QTP的脚本可以包含多个Action。()4.QTP的脚本可以包含外部函数库。()5.QTP的脚本可以使用描述性编程。()6.QTP的脚本可以使用对象库。()7.QTP的脚本可以使用参数化。()8.QTP的脚本可以使用Checkpoints。()9.QTP的脚本可以使用RecoveryScenarios。()10.QTP的脚本可以使用DataTable。()4.简答题(共25分)1.解释QTP中VBScript的基本语法特点。2.描述QTP中Action的作用和类型。3.解释QTP中描述性编程的原理和应用场景。4.描述QTP中参数化的方法和应用场景。5.解释QTP中Checkpoints的类型和应用场景。5.编程题(共20分)1.编写一个VBScript函数,用于计算斐波那契数列的第n项。2.编写一个VBScript脚本,用于在网页上搜索指定的关键词,并验证搜索结果是否包含该关键词。3.编写一个VBScript脚本,用于读取Excel文件中的数据,并将其输入到网页表单中。4.编写一个VBScript脚本,用于处理测试过程中出现的异常情况,并记录错误信息。四、QTP测试管理1.选择题(共20分)1.QTP中,以下哪个组件用于管理测试数据?A.DataTableB.ParametersC.ActionsD.Checkpoints2.QTP中,以下哪个组件用于管理测试脚本?A.DataTableB.ParametersC.ActionsD.Checkpoints3.QTP中,以下哪个组件用于验证应用程序功能?A.DataTableB.ParametersC.ActionsD.Checkpoints4.QTP中,以下哪个组件用于处理测试过程中出现的错误?A.RecoveryScenariosB.ParametersC.ActionsD.Checkpoints5.QTP中,以下哪个组件用于管理测试资源?A.ResourcesB.ParametersC.ActionsD.Checkpoints6.QTP中,以下哪个组件用于管理测试结果?A.TestResultsB.ParametersC.ActionsD.Checkpoints7.QTP中,以下哪个组件用于管理测试设置?A.TestSettingsB.ParametersC.ActionsD.Checkpoints8.QTP中,以下哪个组件用于管理对象库?A.ObjectRepositoryB.ParametersC.ActionsD.Checkpoints9.QTP中,以下哪个组件用于管理测试运行选项?A.RunSettingsB.ParametersC.ActionsD.Checkpoints10.QTP中,以下哪个组件用于管理测试执行选项?A.RunOptionsB.ParametersC.ActionsD.Checkpoints2.填空题(共15分)1.QTP中,DataTable用于________。2.QTP中,Parameters用于________。3.QTP中,Actions用于________。4.QTP中,Checkpoints用于________。5.QTP中,RecoveryScenarios用于________。6.QTP中,Resources用于________。7.QTP中,TestResults用于________。8.QTP中,TestSettings用于________。9.QTP中,ObjectRepository用于________。10.QTP中,RunSettings用于________。3.判断题(共10分)1.QTP的DataTable只能存储在本地。()2.QTP的Parameters只能用于输入参数。()3.QTP的Actions可以嵌套使用。()4.QTP的Checkpoints只能用于验证文本内容。()5.QTP的RecoveryScenarios只能用于处理错误。()6.QTP的Resources可以包含外部函数库。()7.QTP的TestResults可以导出为HTML文件。()8.QTP的TestSettings可以修改测试运行环境。()9.QTP的ObjectRepository可以共享使用。()10.QTP的RunSettings可以修改测试运行模式。()4.简答题(共25分)1.解释QTP中DataTable的作用和使用方法。2.描述QTP中Parameters的类型和应用场景。3.解释QTP中Action的作用和类型。4.描述QTP中Checkpoints的类型和应用场景。5.解释QTP中RecoveryScenarios的工作原理。五、QTP高级功能1.选择题(共20分)1.QTP中,以下哪个功能用于自动化测试Web服务?A.WebServicesTestingB.WebTestingC.APITestingD.ServiceTesting2.QTP中,以下哪个功能用于自动化测试数据库?A.DatabaseTestingB.SQLTestingC.DataTestingD.QueryTesting3.QTP中,以下哪个功能用于自动化测试.NET应用程序?A..NETTestingB.WindowsTestingC.ApplicationTestingD.ComponentTesting4.QTP中,以下哪个功能用于自动化测试Java应用程序?A.JavaTestingB.JUnitTestingC.JUnitIntegrationD.JavaIntegration5.QTP中,以下哪个功能用于自动化测试SAP应用程序?A.SAPTestingB.ERPTestingC.BusinessTestingD.EnterpriseTesting6.QTP中,以下哪个功能用于自动化测试Citrix应用程序?A.CitrixTestingB.VirtualTestingC.RemoteTestingD.DesktopTesting7.QTP中,以下哪个功能用于自动化测试Flex应用程序?A.FlexTestingB.FlashTestingC.RIATestingD.WebTesting8.QTP中,以下哪个功能用于自动化测试Silverlight应用程序?A.SilverlightTestingB.WPFTestingC..NETTestingD.WebTesting9.QTP中,以下哪个功能用于自动化测试Web2.0应用程序?A.Web2.0TestingB.AJAXTestingC.DynamicTestingD.WebTesting10.QTP中,以下哪个功能用于自动化测试移动应用程序?A.MobileTestingB.DeviceTestingC.TouchTestingD.AppTesting2.填空题(共15分)1.QTP中,WebServicesTesting用于________。2.QTP中,DatabaseTesting用于________。3.QTP中,.NETTesting用于________。4.QTP中,JavaTesting用于________。5.QTP中,SAPTesting用于________。6.QTP中,CitrixTesting用于________。7.QTP中,FlexTesting用于________。8.QTP中,SilverlightTesting用于________。9.QTP中,Web2.0Testing用于________。10.QTP中,MobileTesting用于________。3.判断题(共10分)1.QTP可以自动化测试所有类型的应用程序。()2.QTP需要特定的插件来测试不同的应用程序类型。()3.QTP的WebServicesTesting不需要额外的插件。()4.QTP的DatabaseTesting需要数据库连接信息。()5.QTP的.NETTesting需要.NET插件。()6.QTP的JavaTesting需要Java插件。()7.QTP的SAPTesting需要SAP插件。()8.QTP的CitrixTesting需要Citrix插件。()9.QTP的FlexTesting需要Flex插件。()10.QTP的SilverlightTesting需要Silverlight插件。()4.简答题(共25分)1.解释QTP中WebServicesTesting的工作原理。2.描述QTP中DatabaseTesting的功能和应用场景。3.解释QTP中.NETTesting的功能和应用场景。4.描述QTP中JavaTesting的功能和应用场景。5.解释QTP中SAPTesting的功能和应用场景。六、QTP实战问题1.选择题(共20分)1.QTP中,以下哪种方法可以提高测试执行效率?A.使用描述性编程B.使用对象库C.使用参数化D.以上都是2.QTP中,以下哪种方法可以提高测试脚本的可维护性?A.使用模块化设计B.使用注释C.使用函数库D.以上都是3.QTP中,以下哪种方法可以提高测试脚本的复用性?A.使用ActionB.使用函数库C.使用描述性编程D.以上都是4.QTP中,以下哪种方法可以提高测试脚本的可靠性?A.使用CheckpointsB.使用RecoveryScenariosC.使用参数化D.以上都是5.QTP中,以下哪种方法可以提高测试脚本的灵活性?A.使用参数化B.使用描述性编程C.使用函数库D.以上都是6.QTP中,以下哪种方法可以提高测试脚本的性能?A.使用Wait语句B.使用同步点C.使用对象库D.以上都是7.QTP中,以下哪种方法可以提高测试脚本的稳定性?A.使用错误处理B.使用RecoveryScenariosC.使用参数化D.以上都是8.QTP中,以下哪种方法可以提高测试脚本的准确性?A.使用CheckpointsB.使用参数化C.使用描述性编程D.以上都是9.QTP中,以下哪种方法可以提高测试脚本的效率?A.使用描述性编程B.使用对象库C.使用参数化D.以上都是10.QTP中,以下哪种方法可以提高测试脚本的可靠性?A.使用CheckpointsB.使用RecoveryScenariosC.使用参数化D.以上都是2.填空题(共15分)1.QTP中,提高测试执行效率的方法有________、________和________。2.QTP中,提高测试脚本可维护性的方法有________、________和________。3.QTP中,提高测试脚本复用性的方法有________、________和________。4.QTP中,提高测试脚本可靠性的方法有________、________和________。5.QTP中,提高测试脚本灵活性的方法有________、________和________。6.QTP中,提高测试脚本性能的方法有________、________和________。7.QTP中,提高测试脚本稳定性的方法有________、________和________。8.QTP中,提高测试脚本准确性的方法有________、________和________。9.QTP中,提高测试脚本效率的方法有________、________和________。10.QTP中,提高测试脚本可靠性的方法有________、________和________。3.判断题(共10分)1.QTP的测试脚本可以直接在生产环境中运行。()2.QTP的测试脚本需要定期维护和更新。()3.QTP的测试脚本可以完全自动化。()4.QTP的测试脚本可以处理所有类型的异常情况。()5.QTP的测试脚本可以适应应用程序的变化。()6.QTP的测试脚本可以提高测试覆盖率。()7.QTP的测试脚本可以减少测试时间。()8.QTP的测试脚本可以提高测试质量。()9.QTP的测试脚本可以减少人力成本。()10.QTP的测试脚本可以提高测试效率。()4.简答题(共25分)1.解释QTP测试脚本优化的方法。2.描述QTP测试脚本维护的注意事项。3.解释QTP测试脚本复用的方法。4.描述QTP测试脚本调试的技巧。5.解释QTP测试脚本部署的流程。5.编程题(共20分)1.编写一个QTP脚本,用于测试一个登录功能,包括输入用户名、密码,点击登录按钮,验证登录是否成功。2.编写一个QTP脚本,用于测试一个购物车功能,包括添加商品、修改数量、删除商品、计算总价等。3.编写一个QTP脚本,用于测试一个搜索功能,包括输入关键词、点击搜索按钮、验证搜索结果等。4.编写一个QTP脚本,用于测试一个文件上传功能,包括选择文件、上传文件、验证上传结果等。答案部分一、QTP基础概念1.选择题1.A.QuickTestProfessional解释:QTP的全称是QuickTestProfessional,是一款功能强大的自动化测试工具,主要用于功能测试和回归测试。2.A.UFT解释:QTP现在被称为UFT(UnifiedFunctionalTesting),是HP(现为MicroFocus)推出的一款自动化测试工具。3.C.HP解释:QTP是由HP(现为MicroFocus)开发的,是一款功能强大的自动化测试工具。4.C.功能测试解释:QTP主要支持功能测试,用于验证应用程序的功能是否符合需求。5.B.VBScript解释:QTP最初支持的编程语言是VBScript,这是一种基于VisualBasic的脚本语言。6.B.ExpertView解释:QTP的ExpertView用于显示测试步骤的VBScript代码,用户可以直接编辑和修改代码。7.A.KeywordView解释:QTP的KeywordView用于描述测试步骤,以表格形式显示测试步骤的详细信息。8.D.ObjectRepository解释:QTP的ObjectRepository用于存储测试对象的信息,包括对象的属性和方法。9.B.Parameters解释:QTP的Parameters功能用于参数化测试数据,使测试脚本更加灵活和可维护。10.D.RecoveryScenarios解释:QTP的RecoveryScenarios功能用于处理测试过程中出现的错误,确保测试的连续性。2.填空题1.UFT,UnifiedFunctionalTesting解释:QTP的最新版本名称是UFT,全称为UnifiedFunctionalTesting。2.KeywordView,ExpertView解释:QTP主要支持的两种视图是KeywordView和ExpertView,分别用于描述测试步骤和显示VBScript代码。3.LocalObjectRepository,SharedObjectRepository解释:QTP的对象库有两种存储方式:LocalObjectRepository和SharedObjectRepository。4.ContextSensitiveRecording,AnalogRecording解释:QTP支持的两种录制模式是ContextSensitiveRecording和AnalogRecording。5.KeywordView,ExpertView解释:QTP中用于描述测试步骤的视图是KeywordView,而显示VBScript代码的视图是ExpertView。6.DataTable解释:QTP中用于存储测试数据的组件是DataTable。7.RecoveryScenarios解释:QTP中用于处理异常情况的组件是RecoveryScenarios。8.Checkpoints解释:QTP中用于验证应用程序功能的组件是Checkpoints。9.Actions解释:QTP中用于组织测试脚本的组件是Actions。10.ObjectRepository解释:QTP中用于存储测试对象信息的组件是ObjectRepository。3.判断题1.×解释:QTP不仅支持Web应用程序的测试,还支持Windows应用程序、.NET应用程序、Java应用程序等多种类型的应用程序测试。2.√解释:QTP可以测试.NET应用程序,需要安装相应的.NET插件。3.×解释:QTP的对象库不仅可以存储在本地,还可以存储在共享对象库中,供多个测试脚本共享使用。4.√解释:QTP的KeywordView和ExpertView可以同时显示,方便用户在两种视图之间切换和比较。5.√解释:QTP可以录制和回放Java应用程序,需要安装相应的Java插件。6.√解释:QTP的RecoveryScenarios用于处理测试过程中出现的意外情况,如应用程序崩溃、网络中断等。7.×解释:QTP的Checkpoints不仅可以用于验证文本内容,还可以用于验证图片、表格、数据库等多种类型的数据。8.×解释:QTP的Parameters不仅可以用于输入参数,还可以用于输出参数和返回值。9.√解释:QTP的Actions可以嵌套使用,形成一个层次化的结构,方便测试脚本的维护和管理。10.√解释:QTP的ObjectRepository可以导出为XML文件,方便对象库的备份和迁移。4.简答题1.简述QTP的主要功能和应用场景。答:QTP的主要功能包括:-录制和回放测试脚本:QTP可以录制用户的操作,生成测试脚本,并回放测试脚本,自动执行测试。-对象识别:QTP可以识别应用程序中的对象,并存储对象的信息,用于测试脚本的编写和执行。-参数化:QTP可以使用参数化技术,使用不同的测试数据运行测试脚本,提高测试的覆盖率和效率。-检查点:QTP可以使用检查点验证应用程序的功能是否符合预期,如文本检查点、图像检查点等。-恢复场景:QTP可以使用恢复场景处理测试过程中出现的错误,确保测试的连续性。-数据表:QTP可以使用数据表存储和管理测试数据,方便测试数据的维护和管理。-操作:QTP可以使用操作组织测试脚本,提高测试脚本的可维护性和复用性。QTP的应用场景包括:-功能测试:QTP可以用于测试应用程序的功能是否符合需求。-回归测试:QTP可以用于测试应用程序的修改是否引入了新的错误。-集成测试:QTP可以用于测试应用程序的各个模块之间的接口是否正常。-系统测试:QTP可以用于测试整个系统的功能和性能是否满足需求。2.解释QTP中KeywordView和ExpertView的区别。答:QTP中KeywordView和ExpertView的区别如下:-显示方式:KeywordView以表格形式显示测试步骤,每行代表一个测试步骤,包括操作、对象、参数等信息;ExpertView以代码形式显示测试步骤,使用VBScript语言编写测试脚本。-可编辑性:KeywordView可以直接编辑测试步骤,但编辑方式有限;ExpertView可以直接编辑VBScript代码,编辑方式更加灵活。-可读性:KeywordView更加直观,易于理解;ExpertView需要一定的编程基础才能理解。-适用场景:KeywordView适合初学者和简单的测试脚本;ExpertView适合有编程经验的用户和复杂的测试脚本。-交互性:KeywordView和ExpertView可以同时显示,用户可以在两种视图之间切换,方便测试脚本的编写和调试。3.描述QTP的对象识别机制。答:QTP的对象识别机制基于对象的属性和方法,具体如下:-对象属性:QTP使用对象的属性来识别对象,如对象的名称、类、类型等。每个对象都有多个属性,QTP使用这些属性的组合来唯一标识对象。-对象方法:QTP使用对象的方法来操作对象,如点击、输入、选择等。每个对象都有多个方法,QTP使用这些方法来执行操作。-对象层次:QTP使用对象的层次结构来识别对象,如浏览器、页面、窗口、按钮等。对象的层次结构可以帮助QTP更准确地识别对象。-对象库:QTP使用对象库来存储对象的信息,包括对象的属性和方法。对象库可以是本地的,也可以是共享的。-描述性编程:QTP可以使用描述性编程来识别对象,即使用对象的属性值直接描述对象,而不需要使用对象库。-智能识别:QTP可以使用智能识别技术来识别对象,即使对象的某些属性发生变化,QTP也可以通过其他属性来识别对象。4.解释QTP中Action的作用和类型。答:QTP中Action的作用和类型如下:-作用:Action用于组织测试脚本,提高测试脚本的可维护性和复用性。Action可以将测试脚本分解为多个模块,每个模块负责一个特定的功能,便于测试脚本的维护和管理。-类型:QTP中有三种类型的Action:a.可重用Action:可重用Action可以在多个测试脚本中重复使用,提高测试脚本的复用性。b.外部Action:外部Action是从其他测试脚本中导入的Action,可以在当前测试脚本中使用。c.本地Action:本地Action是在当前测试脚本中创建的Action,只能在当前测试脚本中使用。5.简述QTP的测试流程。答:QTP的测试流程如下:-测试计划:确定测试目标、测试范围、测试策略和测试资源。-测试设计:设计测试用例,包括测试步骤、测试数据和预期结果。-测试脚本开发:使用QTP录制和编辑测试脚本,包括参数化、检查点、恢复场景等。-测试脚本执行:运行测试脚本,执行测试用例。-测试结果分析:分析测试结果,包括通过和失败的测试用例,以及失败的原因。-测试报告:生成测试报告,包括测试结果、测试覆盖率、测试缺陷等。-测试维护:维护测试脚本,包括更新测试脚本、修复测试脚本中的错误等。二、QTP对象识别1.选择题1.D.以上都是解释:QTP使用多种技术来识别应用程序中的对象,包括HTML识别、DOM识别和对象识别技术。2.A.对象的属性解释:QTP的对象识别基于对象的属性,每个对象都有多个属性,QTP使用这些属性的组合来唯一标识对象。3.A.ObjectRepository解释:QTP中用于存储对象识别信息的组件是ObjectRepository,它可以存储对象的属性和方法。4.B.查看对象属性和方法解释:QTP的ObjectSpy功能用于查看对象的属性和方法,帮助用户了解对象的特性。5.D.以上都是解释:QTP使用多种方式来区分具有相同属性的对象,包括使用索引、使用位置和使用父对象。6.A.使用属性值直接描述对象解释:QTP中,描述性编程使用属性值直接描述对象,而不需要使用对象库。7.D.以上都是解释:QTP中,解决对象识别问题的方法包括使用Add-inManager、使用ObjectRepository和使用DescriptiveProgramming。8.B.对象的顺序标识符解释:QTP中,OrdinalIdentifier是对象的顺序标识符,用于区分具有相同属性的对象。9.A.使用唯一的属性组合解释:QTP中,确保对象识别准确性的方法是使用唯一的属性组合,避免使用可能变化的属性。10.A.一种智能识别技术解释:QTP中,SmartIdentification是一种智能识别技术,用于处理对象属性发生变化的情况。2.填空题1.对象属性和方法解释:QTP使用对象的属性和方法来识别应用程序中的对象。2.LocalObjectRepository,SharedObjectRepository解释:QTP的对象库有两种类型:LocalObjectRepository和SharedObjectRepository。3.查看对象的属性和方法解释:QTP的ObjectSpy功能用于查看对象的属性和方法。4.描述性编程解释:QTP中,如果对象识别失败,可以使用描述性编程来解决问题。5.属性值解释:QTP中,描述性编程使用属性值来描述对象。6.Index,Location解释:QTP中,OrdinalIdentifier包括Index和Location。7.BaseFilterProperties,OptionalFilterProperties解释:QTP中,SmartIdentification由BaseFilterProperties和OptionalFilterProperties组成。8.MandatoryProperties,AssistiveProperties解释:QTP中,对象的属性分为MandatoryProperties和AssistiveProperties。9.ObjectSpy解释:QTP中,可以使用ObjectSpy来查看对象的属性和方法。10.ObjectRepositoryManager解释:QTP中,可以使用ObjectRepositoryManager来管理对象库。3.判断题1.×解释:QTP不仅可以识别标准Windows对象,还可以识别Web对象、.NET对象、Java对象等多种类型的对象。2.×解释:QTP的对象库不仅可以存储在本地,还可以存储在共享对象库中,供多个测试脚本共享使用。3.×解释:QTP的ObjectSpy可以查看大多数对象的属性和方法,但不是所有对象的属性和方法都可以查看。4.√解释:QTP的描述性编程不需要对象库,它使用属性值直接描述对象。5.×解释:QTP的SmartIdentification不能替代正常的对象识别,它只是在正常对象识别失败时的一种备用机制。6.√解释:QTP的对象识别基于对象的属性值,每个对象都有多个属性,QTP使用这些属性的组合来唯一标识对象。7.×解释:QTP的OrdinalIdentifier不能确保对象识别的唯一性,它只是用于区分具有相同属性的对象。8.√解释:QTP的对象库可以共享使用,多个测试脚本可以共享同一个对象库。9.×解释:QTP的对象识别不能跨应用程序进行,每个应用程序都有自己的对象库。10.√解释:QTP的对象库可以导出为XML文件,方便对象库的备份和迁移。4.简答题1.解释QTP的对象识别机制。答:QTP的对象识别机制基于对象的属性和方法,具体如下:-对象属性:QTP使用对象的属性来识别对象,如对象的名称、类、类型等。每个对象都有多个属性,QTP使用这些属性的组合来唯一标识对象。-对象方法:QTP使用对象的方法来操作对象,如点击、输入、选择等。每个对象都有多个方法,QTP使用这些方法来执行操作。-对象层次:QTP使用对象的层次结构来识别对象,如浏览器、页面、窗口、按钮等。对象的层次结构可以帮助QTP更准确地识别对象。-对象库:QTP使用对象库来存储对象的信息,包括对象的属性和方法。对象库可以是本地的,也可以是共享的。-描述性编程:QTP可以使用描述性编程来识别对象,即使用对象的属性值直接描述对象,而不需要使用对象库。-智能识别:QTP可以使用智能识别技术来识别对象,即使对象的某些属性发生变化,QTP也可以通过其他属性来识别对象。2.描述QTP的对象库类型及其特点。答:QTP的对象库类型及其特点如下:-本地对象库(LocalObjectRepository):a.存储在单个测试脚本中,仅供该测试脚本使用。b.适合小型测试项目或单个测试脚本。c.维护简单,但复用性差。-共享对象库(SharedObjectRepository):a.存储在外部文件中,可供多个测试脚本共享使用。b.适合大型测试项目或多个测试脚本。c.复用性好,但维护复杂。-对象库文件(ObjectRepositoryFile):a.以.oir为扩展名的文件,存储对象库信息。b.可以导入和导出,方便对象库的备份和迁移。-对象库管理器(ObjectRepositoryManager):a.用于管理对象库的工具,可以创建、编辑、导入和导出对象库。b.可以合并多个对象库,也可以拆分大型对象库。3.解释QTP中描述性编程的原理和应用场景。答:QTP中描述性编程的原理和应用场景如下:-原理:描述性编程使用对象的属性值直接描述对象,而不需要使用对象库。它通过描述对象的属性来唯一标识对象,然后使用这些属性来操作对象。-应用场景:a.对象库无法满足需求:当对象库无法存储某些对象时,可以使用描述性编程。b.动态对象:当对象的属性是动态变化的,可以使用描述性编程。c.跨应用程序测试:当需要在多个应用程序之间共享测试脚本时,可以使用描述性编程。d.快速测试:当需要快速编写测试脚本时,可以使用描述性编程。4.描述QTP中解决对象识别问题的方法。答:QTP中解决对象识别问题的方法如下:-使用唯一的属性组合:确保对象的属性组合是唯一的,避免使用可能变化的属性。-使用OrdinalIdentifier:当对象的属性相同时,可以使用OrdinalIdentifier来区分对象。-使用描述性编程:当对象库无法满足需求时,可以使用描述性编程来识别对象。-使用ObjectSpy:使用ObjectSpy查看对象的属性和方法,了解对象的特性。-使用Add-inManager:确保安装了正确的插件,以便正确识别对象。-使用SmartIdentification:当对象的属性发生变化时,可以使用SmartIdentification来识别对象。-使用Wait语句:当对象加载需要时间时,可以使用Wait语句等待对象加载完成。5.解释QTP中SmartIdentification的工作原理。答:QTP中SmartIdentification的工作原理如下:-BaseFilterProperties:QTP首先使用BaseFilterProperties来尝试识别对象。BaseFilterProperties是对象的必要属性,通常不会发生变化。-OptionalFilterProperties:如果BaseFilterProperties无法唯一标识对象,QTP会使用OptionalFilterProperties来尝试识别对象。OptionalFilterProperties是对象的辅助属性,可能会发生变化。-智能匹配:QTP会尝试不同的属性组合,以找到最匹配的对象。-备用机制:SmartIdentification是一种备用机制,只在正常对象识别失败时使用。-可配置性:用户可以配置SmartIdentification的属性,以提高识别的准确性。三、QTP脚本编写1.选择题1.A.Dimx解释:QTP中,VBScript的变量声明使用Dim关键字,如Dimx。2.A.Fori=1To10解释:QTP中,VBScript的循环语句有For...Next循环,如Fori=1To10。3.A.IfconditionThen解释:QTP中,VBScript的条件语句有If...Then语句,如IfconditionThen。4.A.Functionname()解释:QTP中,VBScript的函数定义使用Function关键字,如Functionname()。5.A.Subname()解释:QTP中,VBScript的子程序定义使用Sub关键字,如Subname()。6.A.Dimarr(5)解释:QTP中,VBScript的数组声明使用Dim关键字,如Dimarr(5)。7.A.str1&str2解释:QTP中,VBScript的字符串连接使用&运算符,如str1&str2。8.A.'Thisisacomment解释:QTP中,VBScript的注释使用'字符,如'Thisisacomment。9.A.Browser("Google").Page("Google").WebEdit("q")解释:QTP中,VBScript的对象引用使用.运算符,如Browser("Google").Page("Google").WebEdit("q")。10.C.Wait5解释:QTP中,VBScript的等待语句使用Wait方法,如Wait5。2.填空题1.Dim解释:QTP中,VBScript的变量声明使用Dim关键字。2.For...Next,Do...Loop,While...Wend解释:QTP中,VBScript的循环语句有For...Next、Do...Loop和While...Wend。3.If...Then,Select...Case,If...Then...Else解释:QTP中,VBScript的条件语句有If...Then、Select...Case和If...Then...Else。4.Function解释:QTP中,VBScript的函数定义使用Function关键字。5.Sub解释:QTP中,VBScript的子程序定义使用Sub关键字。6.Dim解释:QTP中,VBScript的数组声明使用Dim关键字。7.&解释:QTP中,VBScript的字符串连接使用&运算符。8.'解释:QTP中,VBScript的注释使用'字符。9..解释:QTP中,VBScript的对象引用使用.运算符。10.Wait解释:QTP中,VBScript的等待语句使用Wait方法。3.判断题1.√解释:QTP的脚本只能使用VBScript编写,这是QTP默认的脚本语言。2.×解释:QTP的脚本不能直接使用JavaScript编写,QTP只支持VBScript。3.√解释:QTP的脚本可以包含多个Action,每个Action负责一个特定的功能。4.√解释:QTP的脚本可以包含外部函数库,可以通过Include语句引入外部函数库。5.√解释:QTP的脚本可以使用描述性编程,通过描述对象的属性来操作对象。6.√解释:QTP的脚本可以使用对象库,通过对象的名称来操作对象。7.√解释:QTP的脚本可以使用参数化,通过参数来传递测试数据。8.√解释:QTP的脚本可以使用Checkpoints,通过检查点来验证应用程序的功能。9.√解释:QTP的脚本可以使用RecoveryScenarios,通过恢复场景来处理测试过程中出现的错误。10.√解释:QTP的脚本可以使用DataTable,通过数据表来存储和管理测试数据。4.简答题1.解释QTP中VBScript的基本语法特点。答:QTP中VBScript的基本语法特点如下:-变量声明:使用Dim关键字声明变量,如Dimx。-数据类型:VBScript只有一种数据类型,Variant,可以存储不同类型的数据。-运算符:VBScript支持算术运算符、比较运算符、逻辑运算符等。-控制结构:VBScript支持条件语句(If...Then、Select...Case)和循环语句(For...Next、Do...Loop、While...Wend)。-函数和子程序:VBScript使用Function关键字定义函数,使用Sub关键字定义子程序。-数组:VBScript使用Dim关键字声明数组,如Dimarr(5)。-字符串操作:VBScript支持字符串连接、字符串分割、字符串替换等操作。-日期和时间:VBScript使用Date和Time函数处理日期和时间。-错误处理:VBScript使用OnError语句处理错误。2.描述QTP中Action的作用和类型。答:QTP中Action的作用和类型如下:-作用:Action用于组织测试脚本,提高测试脚本的可维护性和复用性。Action可以将测试脚本分解为多个模块,每个模块负责一个特定的功能,便于测试脚本的维护和管理。-类型:QTP中有三种类型的Action:a.可重用Action:可重用Action可以在多个测试脚本中重复使用,提高测试脚本的复用性。b.外部Action:外部Action是从其他测试脚本中导入的Action,可以在当前测试脚本中使用。c.本地Action:本地Action是在当前测试脚本中创建的Action,只能在当前测试脚本中使用。3.解释QTP中描述性编程的原理和应用场景。答:QTP中描述性编程的原理和应用场景如下:-原理:描述性编程使用对象的属性值直接描述对象,而不需要使用对象库。它通过描述对象的属性来唯一标识对象,然后使用这些属性来操作对象。-应用场景:a.对象库无法满足需求:当对象库无法存储某些对象时,可以使用描述性编程。b.动态对象:当对象的属性是动态变化的,可以使用描述性编程。c.跨应用程序测试:当需要在多个应用程序之间共享测试脚本时,可以使用描述性编程。d.快速测试:当需要快速编写测试脚本时,可以使用描述性编程。4.描述QTP中参数化的方法和应用场景。答:QTP中参数化的方法和应用场景如下:-方法:a.数据表参数:使用数据表中的数据作为参数,可以在测试脚本中引用数据表的单元格。b.环境变量参数:使用环境变量作为参数,可以在测试脚本中引用环境变量的值。c.随数参数:使用随机数作为参数,可以在测试脚本中生成随机数。d.数据库参数:使用数据库中的数据作为参数,可以在测试脚本中查询数据库并获取数据。-应用场景:a.数据驱动测试:当需要使用不同的测试数据运行测试脚本时,可以使用参数化。b.性能测试:当需要模拟多个用户同时访问应用程序时,可以使用参数化。c.回归测试:当需要测试应用程序的修改是否引入了新的错误时,可以使用参数化。d.集成测试:当需要测试应用程序的各个模块之间的接口是否正常时,可以使用参数化。5.解释QTP中Checkpoints的类型和应用场景。答:QTP中Checkpoints的类型和应用场景如下:-类型:a.文本检查点:用于验证文本内容是否符合预期。b.数据库检查点:用于验证数据库中的数据是否符合预期。c.位图检查点:用于验证图像是否符合预期。d.表格检查点:用于验证表格数据是否符合预期。e.XML检查点:用于验证XML数据是否符合预期。f.页面检查点:用于验证页面属性是否符合预期。-应用场景:a.功能测试:当需要验证应用程序的功能是否符合需求时,可以使用检查点。b.回归测试:当需要验证应用程序的修改是否引入了新的错误时,可以使用检查点。c.集成测试:当需要验证应用程序的各个模块之间的接口是否正常时,可以使用检查点。d.系统测试:当需要验证整个系统的功能和性能是否满足需求时,可以使用检查点。5.编程题1.编写一个VBScript函数,用于计算斐波那契数列的第n项。```vbscriptFunctionFibonacci(n)Ifn<=1ThenFibonacci=nElseFibonacci=Fibonacci(n-1)+Fibonacci(n-2)EndIfEndFunction```2.编写一个VBScript脚本,用于在网页上搜索指定的关键词,并验证搜索结果是否包含该关键词。```vbscript'打开浏览器SystemUtil.Run"iexplore.exe",""'输入搜索关键词Browser("Google").Page("Google").WebEdit("q").Set"QTPinterviewquestions"'点击搜索按钮Browser("Google").Page("Google").WebButton("btnG").Click'验证搜索结果IfBrowser("Google").Page("Google").WebElement("results").Exist(5)Then'获取搜索结果文本resultsText=Browser("Google").Page("Google").WebElement("results").GetROProperty("innertext")'检查搜索结果是否包含关键词IfInStr(resultsText,"QTPinterviewquestions")>0ThenReporter.ReportEventmicPass,"SearchTest","Searchresultscontainthekeyword"ElseReporter.ReportEventmicFail,"SearchTest","Searchresultsdonotcontainthekeyword"EndIfElseReporter.ReportEventmicFail,"SearchTest","Searchresultsnotfound"EndIf'关闭浏览器Browser("Google").Close```3.编写一个VBScript脚本,用于读取Excel文件中的数据,并将其输入到网页表单中。```vbscript'创建Excel对象SetexcelApp=CreateObject("Excel.Application")SetexcelWorkbook=excelApp.Workbooks.Open("C:\TestData.xlsx")SetexcelSheet=excelWorkbook.Worksheets(1)'打开浏览器SystemUtil.Run"iexplore.exe","/form"'读取Excel数据并输入到表单Fori=2To10'假设数据从第2行开始'输入姓名Browser("ExampleForm").Page("ExampleForm").WebEdit("name").SetexcelSheet.Cells(i,1).Value'输入邮箱Browser("ExampleForm").Page("ExampleForm").WebEdit("email").SetexcelSheet.Cells(i,2).Value'输入电话Browser("ExampleForm").Page("ExampleForm").WebEdit("phone").SetexcelSheet.Cells(i,3).Value'点击提交按钮Browser("ExampleForm").Page("ExampleForm").WebButton("submit").Click'等待页面加载Wait(2)'验证提交是否成功IfBrowser("ExampleForm").Page("ExampleForm").WebElement("success").ExistThenReporter.ReportEventmicPass,"FormSubmission","Formsubmittedsuccessfullyforrow"&iElseReporter.ReportEventmicFail,"FormSubmission","Formsubmissionfailedforrow"&iEndIf'返回表单页面Browser("ExampleForm").Navigate"/form"Next'关闭Excel和浏览器excelWorkbook.CloseexcelApp.QuitSetexcelSheet=NothingSetexcelWorkbook=NothingSetexcelApp=NothingBrowser("ExampleForm").Close```4.编写一个VBScript脚本,用于处理测试过程中出现的异常情况,并记录错误信息。```vbscript'启用错误处理OnErrorResumeNext'打开浏览器SystemUtil.Run"iexplore.exe",""'检查浏览器是否成功打开IfErr.Number<>0ThenReporter.ReportEventmicFail,"BrowserLaunch","Failedtolaunchbrowser.Error:"&Err.Description'记录错误信息到日志文件Setfso=CreateObject("Scripting.FileSystemObject")SetlogFile=fso.OpenTextFile("C:\QTP_Log.txt",8,True)logFile.WriteLine"Failedtolaunchbrowser.Error:"&Err.DescriptionlogFile.CloseSetlogFile=NothingSetfso=Nothing'退出测试ExitTestEndIf'输入用户名Browser("Example").Page("Example").WebEdit("username").Set"testuser"'检查输入是否成功IfErr.Number<>0ThenReporter.ReportEventmicFail,"UsernameInput","Failedtoinputusername.Error:"&Err.Description'记录错误信息到日志文件Setfso=CreateObject("Scripting.FileSystemObject")SetlogFile=fso.OpenTextFile("C:\QTP_Log.txt",8,True)logFile.WriteLine"Failedtoinputusername.Error:"&Err.DescriptionlogFile.CloseSetlogFile=NothingSetfso=Nothing'关闭浏览器Browser("Example").Close'退出测试ExitTestEndIf'输入密码Browser("Example").Page("Example").WebEdit("password").Set"testpass"'检查输入是否成功IfErr.Number<>0ThenReporter.ReportEventmicFail,"PasswordInput","Failedtoinputpassword.Error:"&Err.Description'记录错误信息到日志文件Setfso=CreateObject("Scripting.FileSystemObject")SetlogFile=fso.OpenTextFile("C:\QTP_Log.txt",8,True)logFile.WriteLine"Failedtoinputpassword.Error:"&Err.DescriptionlogFile.CloseSetlogFile=NothingSe

温馨提示

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

最新文档

评论

0/150

提交评论