QTP考点总结
- 格式:doc
- 大小:48.00 KB
- 文档页数:5
一、前言(了解)1. 为什么功能测试使用自动化工具1)测试项目中有大量的回归测试功能自动化测试工具可以更严格、更有效的回归测试2)无人值守2. 项目使用功能测试自动化工具的条件1)主要功能通过测试2)被测系统比较稳定3.常用的功能测试工具HP MI QTPHP MI WinrunnerQARunIBM Robot...4. 对测试工程师发展的影响待遇发展竞争二、QTP的简介(中级)1. QTP的全拼:QuickTest Professional2. QTP将被测系统的功能流程,拆解成对不同对象按照顺序做不同操作。
3. 默认使用的脚本语言是VBSQTP工作原理:1、封装对象到对象库中2、对比对象库中的对象和实际运行中的对象进行对比3、对比一致后将驱动脚本运行三、第一次启动QTP1. 插件管理界面2. 创建一个Test3. 设置QTP测试面板中的字体:Tools\View options\Fonts and colours...\Size4. 设置还原Test布局Tools\Options\Restore Layout四、被测系统Flight的使用1. 登录用户名:长度>=4的字符串密码:mercury2. 订票1)date的格式为月日年:mm/dd/yy有效值为明天以后(包含明天)的日期2)tickets的有效值:1~10的整数五、QTP测试的流程1)制定测试计划2)录制测试脚本3)增强测试脚本4)执行测试脚本5)提交测试结果报告六、QTP录制WinApp程序(重点)1、点击Record注意:将已经打开的被测程序关闭2、在Record and run Settings 中设置WinApp:1)选择Record and run only on;2)添加被测程序;3、开始录制代码4、点击Run回放代码5、查看测试结果:Automation\Results七、Mtours系统的使用1. 设置不自动完成密码的输入:IE\Internet 选项\内容\个人信息\自动完成,进行清除密码,去掉勾选提示保存密码2. Mtours 用户注册、登录、创建订单、打开订单、删除订单八、使用QTP录制Web系统的代码(重点)1. 点击Record;注意:关闭已打开的浏览器再录制代码2. 在弹出的Record and run settings中进行设置:1) web选项卡以外的选项要选择第一项2) web选项中,选择Open the following address...3)书写访问被测系统的URL地址。
QTP总结-WBlinbin文思创新自动化测试与QTP介绍,舒文林,----自动化测试的引入和QTP的简单介绍,姜林斌,目录,功能自动化测试介绍自动化测试意义引入自动化测试需要考虑的条件常用的功能自动化测试工具功能自动化和手工测试的优缺点功能自动化流程自动化测试的实施(重点)QTP常用功能QTP窗口介绍QTP录制QTP参数化QTP验证点QTP对象识别测试结果分析,目录,QTP脚本开发与实例VBS语法介绍QTP常用函数QTP描述性编程QTP典型实例脚本分析,:自动化测试目的是什么?这是一个值得深思的问题。
我考虑有以下几个优点1、自动化测试相对于手工测试的优点●优化测试速度:可非常快速的运行上万条记录●提高准确性、稳定性:可以不为外界因素干扰,准确运行测试用例●确定性:能真实快速搭建测试环境,测试数据,重现缺陷●提高工作效率:一边运行自动化测试,一边准备测试报告●测试环境搭建:可以结合多种编程语言及技术协助搭建测试环境,防止手工测试重复劳动,如批处理技术●提高技能:可提高测试人员技能,同时提高对测试的兴趣,防止对手工测试感觉枯燥2、数据处理方面的优点●测试数据:自动化测试工具可以根据需要,准备大量的测试数据●数据处理:测试结果有时需要再进行相应的数据处理●用例准备:可以使用相关脚本技术准备大量的测试用例3、对于自动化测试的误解●有自动化测试不再需要手工测试●自动化测试虽然有如此多的优点,但是有些测试比如:本地化测试、用户体验测试、测试环境搭建方面并不能完全代替手工测试●自动化测试的基础也必须是对产品的运行,测试点有一定的手工测试的基础,自动化测试和手动测试是相辅相成的●自动化测试并不仅指自动化运行测试产品,数据处理也是非常重要的一个环节●并非只是自动化测试工具如QTP,Loadrunner,等才可以做自动化测试,很多的编程语言都可以运行自动化测试。
比如QTP就是基于VBScript语言的一款自动化测试工具,只是在VBS上的一些封装,引入自动化测试需要考虑的条件:1)自动化测试能大大降低手工测试工作,但决不能完全取代手工测试。
第一部分基础知识1.QTP安装●主程序:进入下面目录运行:QTP90\QuickTest\setup.exe在没有Licence的情况下选择安装演示版,完成安装之后再破解,其它按照默认设置完成安装,可暂不重启;中途需要下载Microsoft Script Debugger(脚本调试器),如果下载失败,可以安装结束之后另行下载安装:..\..\ADD-INS\脚本调试器.exe●安装中文插件(可选):进入下面这个目录运行:QTP90CHS\QuickTestPro_CHS\ QuickTestPro_CHS.exe按照默认设置完成安装,可暂不重启;●关联QC插件(Mercury Quality Center Add-in):进入下面目录运行:QTP90\TDPlugin\ TDPluginsetup.exe按照默认设置完成安装,以上安装完成之后必须重新启动QTP才可以进行许可证的安装。
●安装插件许可证:1、使用并发许可证这需要有正版Lic的机器做服务器,在运行QTP的时候点击“修改插件许可证”,选择安装并发许可证,再入如服务器地址,如:192.168.168.892、使用单机许可证把mgn-mqt82.exe文件放到X:\Program Files\Mercury Interactive\QuickTest Professional下面,然后运行,退出重新运行QTP即可。
在已经安装并发许可证而又想修改许可证为单机许可证的话,可能上面的方法行不通,这种情况下可以试着先使用记事本或者相关的程序打开C:\Program Files\Common Files\Mercury Interactive\License Manager\lservrc文件,在打开的文件中,复制形如下面的一段字符串:D6BUM D6BUM D6BUM D6BUM D6BUM D6BUM D6BUM D6BUM 8QARH#,记得一定带上“#”号,在首次运行QTP的时候点击“修改插件许可证”,选择安装单机许可证,再将这段字符粘贴到里面重启QTP就行了。
QTP复习提纲一、你对自动化测试的理解是什么?二、把对象从被测软件ui中读取出主要特征,存入对象库,回放时在被测试软件中寻找指定对象,赋予对象一些方法,方法为windows win32或者web上的一些activex控件的通用方法(或者javascript应用于一些未支持的事件,比如link.click), 微软控件对外的接口,把其中一些方法进行封装,成为qtp自己的方法,比如getroproperty=对象.object.value ,然后运用这些方法属性驱动被测试对象完成一些指定的动作。
对于任何一个add-in都是先找到人家的对外接口,然后拿过来封装,需要的时候去调用接口事件,也就成为了QTP的动作。
什么是自动化测试工具?你知道的自动化测试工具有哪些?三、自动化测试和人工测试的优点和缺点是什么?自动化测试的优点:✓回归测试更方便✓可以运行更多更繁琐的测试✓可以执行一些手工测试困难或不可能进行的测试✓更好的利用资源✓测试具有一致性和可重复性✓测试的复用性✓可以让产品更快面向市场✓增加软件信任度自动化测试的缺点:✓不能取代手工测试✓手工测试比自动化测试发现的缺陷更多✓对测试质量的依赖性极大✓测试自动化不能提高有效性✓测试自动化可能会制约软件开发✓工具本身并无想像力四、QTP的实现原理是什么?分两个部分阐述。
GUI识别对象原理自动化测试工具生成脚本原理五、下图的界面如果消失了,要去哪里选择?图中的ActiveX Add-in支持什么语言的ActiveX?ActiveX与语言无关,具体参考我上课给你们的资料。
六、下图的各个选项的功能分别是什么?上面这张图的界面如果消失了,要去哪里选择?七、请大致介绍一下下图中QTP的界面组成、视图类型及用途八、什么是关键字驱动?✓关键字驱动测试是数据驱动测试的一种改进型✓用关键字的形式将测试逻辑封装在数据文件中,测试工具只要能够解释这些关键字即可对其应用自动化✓主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)✓将测试逻辑按照这些关键字进行分解,形成数据文件九、QTP的录制原理是什么?十、Analog Recording和Low Level Recording的区别?什么时候需要用到它们?十一、QTP的对象库和脚本分别以何种形式存放?它们之间有何联系吗?十二、如何显示代码行?十三、QTP的测试流程是什么样的?✓录制测试脚本前的准备✓录制测试脚本✓加强测试脚本(检查点、参数化、逻辑判断等)✓脚本调试✓运行脚本执行测试✓分析测试结果✓提交BUG十四、没有相关插件是否一定无法使用QTP进行自动化测试?请举例说明解决方案。
高效使用自动测试工具第一章QTP入门1.1 QTP介绍使用QTP进行功能测试的测试过程①制定测试计划②创建测试脚本③增强测试脚本的功能④运行测试⑤分析测试结果1.2 初识QTP 10.001.3 关于本课程的案例p111.4 QTP的测试过程1.4.1 录制测试脚本步骤:①打开QTP。
②单击测试工具栏上的Record按钮。
③通过选择“开始”“程序”QuickTest Professional Sample Application Flight命令④登录系统⑤保存1.4.2 查看测试脚本1.关键字视图关键字视图中各字段的含义·Item:以分层的形式显示所有操作到的组件(测试对象、工具对象、函数呼出或脚本)·Operation:表示在组件上执行的动作,如单击、选择·Value:执行动作时需要的参数值,或者动作设置的参数值,如在“UserName”一栏设置的用户名·Assignment:使用到的变量·Comment:在测试脚本中加入的批注·Documentation:用于描述操作步骤的文字说明2.专家视图它是QTP用VBScript记录的语句,测试人员可以根据需要进行修改,增强脚本功能。
1.4.3 运行测试脚本结果路径的设置有以下两个选项1.New run results folder 用于设置结果保存目录2.Temporary run rsults folder 选择它系统会将结果保存在一个临时目录中,每次运行时都会覆盖原来的结果1.4.4 分析测试结果1.5 QTP的测试对象管理·QTP是基于关键字驱动的测试工具·QTP使用的是VBScript脚本语言,采用基于对象的管理机制1.5.1 了解被测对象的属性●默认情况下,QTP录制脚本时会把一个链接对象的Test和HTML Tag属性作为识别属性,在最新链接对象中,text属性就是最新,经常会变动,而且会没有规律,此时可以修改这个链接对象对象的关键属性,把text属性删除,添加href的属性值1.5.2 QTP的自动识别机制设置是否启用自动识别机制的入口是选择File Setting Run命令1.5.3 在对象仓库中添加新对象·如果要添加对象所属的窗口被其他窗口遮住了,只需要让手型光标在对象所属窗口上停留一段时间,该窗口就会被激活并显示到前面。
QTP自动化测试实践(一)第8章数据驱动测试测试脚本的开发和维护是自动化测试的重要环节,适当地调整和增强测试脚本,能提高测试脚本的灵活性,增加测试覆盖面,以及提高应对测试对象变更的能力。
数据驱动方式的测试脚本开发是解决这类问题的重要手段。
本章介绍如何在自动化测试过程中使用数据驱动的测试脚本开发方式,对测试脚本进行参数化,包括如何使用QTP的Data Table参数化、Action参数化、环境变量参数化等脚本参数化的方法。
8.1 数据驱动测试方法数据驱动的测试方法要解决的核心问题是把数据从测试脚本中分离出来,从而实现测试脚本的参数化。
8.1.1 什么时候使用数据驱动测试方法自动化测试对录制和编辑好的测试步骤进行回放,这种是线性的自动化测试方式,其缺点是明显的,就是其测试覆盖面比较低。
测试回放的只是录制时做出的界面操作,以及输入的测试数据,或者是脚本编辑时指定的界面操作和测试数据。
如何让测试脚本执行时,不仅仅局限于测试录制或编辑时的测试数据呢?数据驱动的测试方式是解决这个问题的最佳方案。
数据驱动测试把测试脚本中的测试数据提取出来,存储到外部文件或数据库中,在测试过程中,从文件动态读入测试数据。
注意:如果希望测试的覆盖面更广,或者让测试脚本能适应不同的变化情况,则需要进行测试脚本的参数化,采用数据驱动的测试脚本开发方式。
8.1.2 数据驱动测试的一般步骤通常,数据驱动测试按以下步骤进行:(1)参数化测试步骤的数据,绑定到数据表格中的某个字段。
(2)编辑数据表格,在表格中编辑多行测试数据(取决于测试用例以及测试覆盖率的需要)。
(3)设置迭代次数,选择数据行,运行测试脚本每次迭代从中选择一行数据。
QTP提供了一些功能特性,让这些步骤的实现过程得以简化。
例如,使用“Data Table”视图来编辑和存储参数,如图8.1所示。
图8.1 Data Table视图另外,还提供“Data Driver向导”,用于协助测试员快速查找和定位需要进行参数化的对象,并使用向导进行一步一步的参数化过程。
6 关于regular expressionsA问题描述:在QTP中可以是使用regular expressions来完善你的参数化B处理流程:B1参数化你的系统B2将参数化设定为regular expressionsB3在表格中使用regular expressionsC术语说明C1 TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server 相连的计算机上实现测试用例的管理C2 QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试D实例:D1参数化你的系统,以参数1980-2000年中间相隔20年为例,需要比较1980-1990以及1990-2000之间的值,如果使用一般的参数化,那么需要设定20个参数1980,1981,....2000,使用regular expressions则不需要这么麻烦D2在参数化时选为regular expressions,选定你要参数化的步骤,参数化它在你参数化的过程中会遇到这如下对话框图6.D2.1选定regular expression,点击ok在QTP的table中会出现你参数化的一列图6.D2.2D3在表格中使用regular expressions以”[”,”]”为例,可以在table中输入198[0-9],199[0-9],2000如下图图6.D3.3这样只用三行参数,就可以满足20行参数达到的要求以上只是regular expression的一个例子, regular expression还有类似”[”的方便符号,详细可查阅QTP user help,通过如上方法就能将这些符号应用到你的测试中下面是对regular expression的一个简单介绍如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式;如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式。
QTP基础知识学习又有好长一段时间没接触QTP了,从去年本想在项目中使用一下QTP,但后来觉得不适用,而且其他项目着急,有新的任务需要测试,需要学习,所以就停了那么长时间没看QTP,也没继续学习了。
现在又开始准备好好的继续学习,那还是从最基本的知识开始,好好做个复习和积累,把学习的过程和遇到的问题都积累下来吧,1、QTP及其插件的安装仅支持英文路径,也就是说不能在包含中文命名的文件夹目录中安装QTP或QTP的插件。
2、在QTP中,对对个Action测试,可以进行批量运行测试:可以使用QTP自带的工具“Test Batch Runner”来批量运行测试脚本。
为了让“Test Batch Runner”可以运行测试脚本,需要在QTP中选择菜单“Tool | Option”,打开界面,确保“Allow other Mercury products to run tests and components”选项被勾选上。
然后,通过选择“开始| 所有程序| QuickTest Profesional | Tools | Test Batch Runner”启动,并通过Add来添加需要运行的测试脚本,然后通过Batch | Run 来批量运行列表中的所有测试脚本。
3、QTP与WinRunner的整合:a、可以在QTP中调用WinRunner编写的测试脚本。
在QTP中添加测试步骤,选择菜单“Insert | Call To WinRunner | Test”。
选择WinRunner测试脚本文件,如果测试脚本有参数,则需要设置调用的参数;如果想在调用WinRunner运行完测试脚本后关闭Winrunner,则需要把“Close WinRunner a fter running the test”选项选上。
b、在QTP中还可以调用WinRunner的函数4、QTP与LoadRunner的整合:利用Services对象,可以为QTP测试脚本添加事务。
QTP自动化测试考点总结1、什么是自动化测试是通过测试工具、测试脚本(TestScripts)等手段,按照测试工程师的预定计划对软件产品进行自动的测试,从而验证软件是否满足用户的需求2、自动化测试优势快速(Fast) :执行测试比人工测试速度快多了。
可靠(Reliable):每一次的测试都可以正确的执行相同的动作,可以避免人工测试的错误。
可重复(Repeatable): 可以重复执行相同的测试。
可程序化(Programmable): 可以程序的方式,撰写复杂的测试脚本,以带出隐藏在应用程序中的信息。
广泛的(Comprehensive): 可以建立广泛的测试脚本,涵盖应用程序的所有功能。
可再使用(Reusable): 可以重复使用测试脚本,即使应用程序的使用接口已经改变。
3、自动化测试劣势无法完全保证测试的正确性。
手工测试能发现的缺陷远比自动化测试多。
对测试质量的依赖性极大。
测试自动化可能会制约软件开发。
成本投入过高,风险大。
自动化测试对测试人员的技术要求较高,对测试工具同样有一定要求4、何时适合引入自动化测试项目周期长,系统版本不断。
需求变更不频繁。
系统中的测试对象基本可以正常识别。
系统中不存在大批量第三方控件。
需要反复测试,如可靠性测试需要进行上千次的系统测试。
5、何时避免展开自动化测试局限性:在以下方面不适用周期短的项目定制型的项目业务规则复杂的项目硬件测试易用性测试6、自动化测试用例设计原则1. 自动化测试用例的范围往往是核心业务流程或者重复执行率较高的。
2. 自动化测试用例的选择一般以“正向”为主。
3. 不是所有手工测试用例都可以使用自动化测试来实现的。
4. 手工测试用例可以不用回归原点,而自动化用例往往是必须的。
5. 自动化测试用例和手工测试用例不同,不需要每个步骤都写预期结果7、测试测应用程序类型:标准Windows应用程序Web页面ActiveX控件Visual Basic8、QTP三种录制模式(1)正常录制模式,是直接对对象的操作,此模式继承了对象模型的所有优点,能够充分发挥对象库的威力;(2)模拟录制,录制了所有键盘和鼠标的精确操作;(模拟录制模式分为两种:一种是相对于指定窗口的录制,另一种是相对于屏幕的录制。
)(3)低级录制,应用于在不受QTP支持的环境或对象上进行录制应用程序。
9、QTP自动化测试的基本过程1. 录制脚本前的准备2. 录制测试脚本3. 加强测试脚本4. 调试测试脚本5. 运行测试脚本6. 分析测试结果7. 回报问题10、QTP自动化测试的原理1. 封装真实被测对象并转化为QTP对象到对象库。
2. 对比对象库里的对象鉴别属性和运行时的真实被测对象的鉴别属性。
3. 对比后如果一致,则说明对象成功匹配并可以继续对该真实被测对象进行后续操作,如果两者不一致则报错,提示为对象无法识别。
11、OBJECT SPY显示对象的区域,显示区域会显示Object Spy探测到的对象及其父对象、祖父对象。
Native Properties本地的属性一个对象控件的自身接口的属性Identification Properties鉴别属性是QTP默认为该对象控件封装的属性12、手写代码的3种方式步骤生成器Complete Word对象拖动生成13、测试对象(TO)与运行时对象(RO)的区别TO就是被添加到对象库中的对象,RO其实就是被测试软件在运行时实际所运行的那个对象14、对象库编程(OP)VS描述性编程(DP)对象库的优势:可以通过Complete Word、“F7” 高效编程。
对象库对对象进行更名,脚本便会批量自动更新对象库编程不容易打错字。
描述性编程的优势:不用维护庞大的对象库,不过需要维护庞大的代码。
描述性编程可以完成一些特殊的需求。
15、数据驱动测试方法把数据从测试脚本中分离出来,存放到文件或者数据库中,从而实现测试脚本的参数化。
覆盖范围更广脚本适应不同的变化情况16、Report的四种状态:DonePassedFailedWarning例子b=Window("计算器").WinEdit("Edit").GetROProperty("text")If b="100. " thenReporter.ReportEvent micPass,"Edit","pass Edit"elsereporter.ReportEvent micFail,"Edit","fail edit"en d if17、字符串函数函数功能Len(String)取得字符串String的字符个数。
中英文同等对待Trim(String) 将字符串String前后的空格符号给去掉,保留中间空格Ltrim(String)去掉字符串左面的空格Rtrim(String)去掉字符串右面的空格Left(String,length)从String字符串左边开始向后取length个字符Right(String,length)从String字符串右边开始向前取length个字符Mid(String,start[,length])从String字符串的start个字符开始向后取得length个字符,如果省略length参数就代表一直取到字符串结尾Ucase(String)将字符串中的所有的字符转换成大写Lcase(String) 将字符串中的所有的字符转换成小写InStr(string1,string2) 取得字符串string1在string2字符串中首次出现的位置Replace(string1,string2,string3)在string1中,将string2字符串替换成string3Split(string,delimiter)以delimiter为定界符将字符串String分段,保存在一个数组中,如果省略delimiter则用空格作为分界18、日期时间函数函数功能Now() 取得系统当前时间和日期Date() 取得系统当前日期Time() 取得系统当前时间Year(Date) 取得日期变量Date的年数,注意如果Date是非合法日期变量就会出错Month(Date) 取得日期变量Date的月份Day(Date) 取得日期变量Date的日期Hour(time) 取得时间变量time的小时Minute(time) 取得时间变量time的分钟Second(time) 取得时间变量time的秒WeekDay(Date[,start])取得该日期的星期数,返回值是整数,如果省略第二个参数,则:1表示星期天,2表示星期一,依此类推。
DateDiff(“Var”,Var1,Var2)计算Var1与Var2两个日期之间间隔的时间,var是间隔单位(yyyy表示年,m表示月,d 表示天,h表示小时,min表示分钟,s表示秒),DateAdd(“Var”,V ar1,Var2)对时间做加法,Var是间隔单位,举例:DateAdd(“d”,10,Date())计算10天之后的日期FormatDateTime(Date,Format)将Date转化成指定日期格式。
format的取值vbShortDate:短日期格式vbLongDate:长日期格式vbShortTime:短时间格式vbLongTime:长时间格式同时加载多个文件ExecuteFile “函数库文件1”;ExecuteFile “函数库文件2”;ExecuteFile “函数库文件3”;19、保留对象DataTable做数据处理,Environment环境变量ReporterCrypt:加密模块保留对象PwStr=Crypt.Encrypt("mercury")Desktop:桌面保留对象Desktop.CaptureBitmap"D:\1.bmp"MercuryTimes:计时保留对象MercuryTimers("LoginPage_MainPage").StartPathFinder:路径保留对象Msgbox PathFinder.Locate("Default.xls") RandomNumber:随机数保留对象Print RandomNumber.Value(0,100)20、正则表达式\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。
例如,'n' 匹配字符"n"。
'\n' 匹配一个换行符。
序列'\\' 匹配"\" 而"\(" 则匹配"("。
^匹配输入字符串的开始位置。
如果设置了RegExp 对象的Multiline 属性,^ 也匹配'\n' 或'\r'之后的位置。
$匹配输入字符串的结束位置。
如果设置了RegExp 对象的Multiline 属性,$ 也匹配'\n' 或'\r'之前的位置。
*匹配前面的子表达式零次或多次。
例如,zo* 能匹配"z" 以及"zoo"。
* 等价于{0,}。
+匹配前面的子表达式一次或多次。
例如,'zo+' 能匹配"zo" 以及"zoo",但不能匹配"z"。
+ 等价于{1,}。
?匹配前面的子表达式零次或一次。
例如,"do(es)?" 可以匹配"do" 或"does" 中的"do" 。
? 等价于{0,1}。
{n}n 是一个非负整数。
匹配确定的n 次。
例如,'o{2}' 不能匹配"Bob" 中的'o',但是能匹配"food" 中的两个o。