QTP学习资料.docx
《QTP学习资料.docx》由会员分享,可在线阅读,更多相关《QTP学习资料.docx(27页珍藏版)》请在冰豆网上搜索。
![QTP学习资料.docx](https://file1.bdocx.com/fileroot1/2023-2/3/4c9d1a95-0520-4e46-ae90-fd3fb07fcad0/4c9d1a95-0520-4e46-ae90-fd3fb07fcad01.gif)
QTP学习资料
手工测试与自动化测试
手工测试和自动化测是是很多测试人员争相讨论的两种测试方法,对于手工和自动化测试都各有说法,其实不论是手工测试还是自动化测试都是各有各的优点,而且谁也不会相互取代谁的。
手工测试的缺点:
软件测试显然的特点是一个重复性的工作,重复容易让人产生厌倦的心里,而且使工作量增倍,因此人们想到用工具来解决重复的问题,另外手工测试还存在精准性的问题,尤其是面对大量的数据需要检查时,人工测试不仅仅存在效率问题,而且容易出错,覆盖面偏低。
在软件产品研发的后期阶段尤其明显,随着产品的不断完善,功能不断增多,需要测试的内容和检查的内容也越来越多,很容易有遗漏,如果在加上产品的发布日期日益临近,人工进行回归测试的难度也就加大,很难再短时间内完成大面积的测试覆盖。
手工测试有不可取代的地方,因为人是具有很强的只能判断能力的,虽然说工具是人开发出来的,但是也是机械化,缺乏思维能力的,手工测试不可取代的地址最少包括以下几点:
测试用例的设计:
测试人员的经验和对错误的猜测能力工具是没有的
界面和用户体验:
人的审美观和心里体验工具是不可模拟的
正确性的检查:
人们对是非的判断,逻辑的推理是工具不具备的
但是自动化测试有很强的优势,它的优势借助了计算机的计算能力。
可以重复地,不知疲倦的运行。
对数据可以进行精确的,大批量的比较,而且不会出错。
因此自动化测试适宜用在需要重复的执行操作,计算,数值比较,搜索等方面。
因此自动化测试的优点有以下几个方面。
快速,可靠,可重复,可编程,全面,可重用
快速:
工具运行测试比手工测试要快得多。
可靠:
测试每次运行时都会准确执行相同的操作,消除了人为错误。
可重复:
可以通过重复执行相同的操作,来测试网站或应用程序的反应
可编程:
可以编写复杂的脚本来测试找出隐藏的信息
全面:
可以建立一套测试来测试网站或应用程序的所有功能
可重用:
可以在不同版本的网站或应用程序上重复使用测试
选取合适的项目来开展自动化测试
自动化测试只有在多次运行后,才能体现出自动化的优势,只有不断的运行自动化测试,才能有效的预防缺陷,减轻测试人员手工的回归测试的工作量。
如果一个项目是短期,并且是一次性的项目,则不适合开展自动化测试,因为这种项目得不到自动化测试的应有效果和价值体现。
另外,不适合在一个进度非常紧迫的项目中开展自动化测试,有些项目经理期待在一个进度严重拖延的项目中引用自动化测试来解决测试效率的问题,结果确适得其反,因为自动化测试需要测试人员投入测试脚本的开发,同时,需要开发人员配合,提供更好的可测程序,还有可能对被测试的软件进行一些简单的修改,以适应自动化测试的基本要求,所以在一个严重拖延的项目中展开自动化测试,肯定会带来相反的效果。
自动化测试工具类型
测试工具种类很多,有用于管理测试的,有帮助实现测自动化的,有开源的,也有免费共享的,软件测试工具按照其用途有很多种,例如单元测试,集成测试,系统测试,白盒测试等都有相对应的工具。
如果按照工具的收费方式,又可以分为:
商业的,开源的,免费的
商业的测试工具:
特点需要花钱购买,相对成熟和稳定,并且有一定的售后服务和技术支持,但是由于价格昂贵,并不是每一个企业都能负担的起。
开源的测试工具:
指定软件的源代码是公开发布的,通常是由自愿者开发和维护的软件,目前越来越多的软件企业开始使用开源的测试工具。
但是开源的并不意味的完全免费,同样需要考虑使用成本的问题,并且在某些方面可能要比商业测试工具成本还高。
随着社会的经济不断变化,商业工具的价格也不断的提高,对于中小型企业来说,无疑加大的测试的成本,开源的工具相对于商业的工具拥有以下的优势:
相对成本低:
大部分开源测试工具可以免费使用,只要不做商业用途即可。
更大的选择余地:
可以打破商业测试工具垄断地位,给测试人员更多的选择空间。
可自己改造:
源代码开放,意味着可对其进行修改,补充和完善,以及个性化改造。
开源的工具既然存在着优势,肯定也存在很多不足之处,以下:
安装和部署相对困难:
大部分开源测试工具的安装配置过程比较繁琐,需要测试人员付出一定的努力。
易用性:
开源测试工具在易用性,用户体验方面做得不够完善
稳定性:
部分开源测试工具的稳定性不够强
学习和技术支持有难度:
大部分开源测试工具不提供培训指导和技术支持服务,帮助文档和用户手册不够完善,增加了学习的难度。
自动化测试工具的原理
测试工具的优势在于可部分的替代人工的测试过程,能重复的不断的执行,并精确判断数值和字符对象,自动化测试工具把测试用例用自动的方式执行,例如:
自动的产生数据,自动的打开应用程序,自动查找控件,自动的输入数据,自动的操作控件,自动的收集测试结果,自动的与预期结果进行比较等。
自动化功能测试工具可以基于GUI层面进行测试,也可以基于代码层面进行测试。
只要实现了自动化执行测试用例,自动化的检查测试数据的测试工具,替代人工进行测试步骤的执行,从而验证应用程序是否满足了特定功能的测试工具,都可以成为自动化功能测试工具。
QTP安装后目录介绍
部分目录介绍
1.Addins---插件包
2.AddinsUpgrade---插件升级包
3.Bin---可执行文件
4.CodeSamplesPlus---一些示例代码【这个文件里面存放着都是一些代码,如果想学习写代码的话可以参考里面的代码都是一些vbs编程高手写的脚本文件,可以参考下,看看高手是如何写的代码,研究研究是非常不错的】
5.Dat---备份和配置信息
6.Recovery---恢复文件存放的位置
7.Samples---示例程序【这个对于新手来说也有帮助,里面有3个飞机订票系统,好像哪个都存在着一些bug,学习QTP一些操作,完全可以用它来做联系,也是不错的。
】
8.Help---帮助中心【这个非常重要,可以说学习QTP的一个知识宝库,很多重要的说明全在这个目录下面,里面还有一些QTP的视频,帮助文档,建议大家对于入门者来说先看(QTTutorial.pdf)这份文档对于新手来说非常好。
】
9.Tests---安装路径的注册信息
QTP的插件设置于管理
如图:
QTP默认支持【ActiveX】【VB】【Web】插件,如果安装了其它类型的插件也将显示此列表中。
QTP的初始界面
如图:
初始界面,对QTP的一个简介,左侧上面可以看到(欢迎使用)(过程指导列表)(最近使用的文件)。
右侧是QTP新增的一些功能介绍。
如果不想每次启动QTP时候都出现起始页可以把它设置,启动是不显示起始页窗口。
在左侧(最近使用的文件下选中勾选框)这样下次在启动QTP的时候就不会出现此页了。
如果想恢复起始页,打开【Tools】下Options。
打开以后如图下:
在常规选项中,第二个启动时显示起始页前面勾选上。
第一个是启动时显示插件管理器。
第三个是自动检查软件更新,第四个是录制时禁止识别虚拟对象。
QTP中录制和运行设置
打开【Automation】中的recordandrunSettings(录制和运行设置)
如图:
由于我们在插件设置的时候加载了Web和ActiveX所以在录制的时候会出现两个选项,一个是针对于Web录制。
一个是针对于WindowsApplications录制。
对于Web录制可以看出有两种选项它们之间有什么区别呢?
第一个选项,是说“在任何打开的浏览器上录制和运行测试”操作演示。
第二个选项,是说“录制或运行会话开始时打开以下的网址”操作演示。
对于WindowsApplications录制。
如图:
从界面可以看出它的也是有两种选项它们的区别是什么?
第1个选项,是说,在任何开打的基于Windows的应用程序上录制并运行测试。
第2个选项,是说,仅在以下应用程序上录制和运行。
(这种方式可以进一步指定录制和运行所针对的应用程序,避免录制一些无关紧要的,多余的界面操作。
)
若选择2.1,是说,仅录制和运行由QTP调用的程序,例如:
通过QTP的脚本去启动的应用程序
若选择2.2,是说,仅录制哪些通过开始菜单选择启动的应用程序,或者是在Windows桌面双击快捷方式图标启动的应用程序
若选择2.3,是说,指定的应用程序,把程序添加到别表中。
QTP基本功能
QTP的基本功能包括两大部分,一部分是提供给触及用户使用的关键
字视图【KeywordView】。
另一部分是提供给熟悉的VBScript脚本
编写的自动化测试工程师使用的专家视图【ExpertView】。
而在实
上我认为是各有各的优点,在工作中两者完全可以结实使用。
QTP自动化测试的基本过程:
使用QTP进行自动化测试的基本过程一般包括以下5个步骤
1.录制测试脚本。
利用QTP先进的对象识别,鼠标和键盘监控机制来录制测试脚本,测试人员只需要模拟用户操作,像执行手工测试的测试步骤一样操作被测试应用程序的界面即可。
2.编辑测试脚本(增强测试脚本)。
主要包括调整测试步骤,编辑测试逻辑,插入检查点,添加注释,添加测试输入信息等。
3.调试测试脚本。
利用QTP脚本编辑界面的调试功能检查测试脚本逻辑的正确性。
4.运行测试脚本。
可以运行单个Action,可以批量运行测试脚本
5.分析测试结果。
使用QTP的测试结果查看工具检查的测试结果,检查测试运行过程的正确性。
关键字驱动测试
关键字驱动测试方法是QTP重点支持的一种自动化测试脚本开发方法,关键字驱动测试方法让脚本开发工作量变得直观简单,也让初级自动化测试工程师可以轻易的使用QTP进行复杂的自动化测试脚本开发。
QTP号称是“高级关键字驱动测试工具”(AdvancedKeyword-DrivenTesting)。
在启动QTP界面的时候可以看到。
如图:
在QTP中有专门的关键字脚本开发视图,称为“关键字视图”。
那什么是关键字驱动测试方法?
关键字驱动测试方法(Keyword-DrivenTesting),也叫表格驱动测试方法(Table-DrivenTesting),是软件自动化测试的一种方法。
关键字驱动测试把测试脚本的编程工作分离出去,让那些没有编程技巧的人也能开发自动化测试脚本。
编辑对象库(ObjectRepository):
使用QTP的关键字驱动框架进行自动化测试的第一步是收集关于测试对象的信息,存储到对象库中,这一步可以利用录制来产生,因为QTP在录制脚本的同时,就会把录制过程中所操作的界面控件都自动存储到对象库中。
例如,以Windows的计算机为试验
录制个简单的计算器“2+1=3”录制完后如图:
这时录制好以后可以点击对象库看看QTP刚才所录制的界面控件已经存到的对象库中,打开对象库的方法,点击菜单栏中Resources(资源)—ObjectRepository(对象库)或者通过快接图标打开
(快捷图标),打开以后如图下:
从图中可以看到,刚才我们所录制的都已经被存入到对象库中了对吧。
这时我们可以运行一下,QTP在运行中会跟对象库对比,找到存储在对象库中的那些控件。
假如我把对象库中“=”控件删除掉,这时后再次运行,你会发现在在运行过程中,会出现报错的窗口,因为它与对象库匹配的时候找不到相应的控件。
如果想把删除的控件再次添加到对象库中,(前提条件是打开计算器窗口和打开对象库)点击
AddObjectstoLocal(将对象库添加到本地),这时点击窗口中计算器上的=键。
会出现如图下:
点击OK按钮,此时=键的控件就添加到对象库中了,再次运行,你会发现不会在有任何错误的提示了。
也可以把测试的应用程序中所有的对象都预先添加到对象库中,例如可以把Windows计算器中的所有界面元素都加入到对象库中,这样就可以在关键字视图中编辑测试步骤时,从下拉列表中选择测试对象了。
怎么Windows计算器中的所有界面元素都加入到对象库中。
(前提条件是打开计算器窗口和打开对象库)。
点击
AddObjectstoLocal(将对象库添加到本地)。
点击计算器显示框中的蓝条中的计算器字体。
这时会出现如图:
点击OK按钮。
会出现以下情况如图:
这时界面默认选则的意思是(默认对象类型),然后点击OK按钮。
会出现以下情况,如图:
可以清楚的看到,计算器中所有的元素已经添加到对象库中了。
然后我们可以随意通过下拉列表中,选择计算器中的测试对象了。
如图:
在Item中点击“控件2”这时2会后会出现一个下拉选项,点击它就可以选择对象了。
假如在列表中没有你想要的对象,在下拉列表中最下面有一个
“ObjectFromRepository”(从对象库中选择)。
点击它以后会出现如图:
这时就可以从对象库中选择你想要的对象了。
假如对象库中在没有当然可以通过“图片中的手指”去添加你想要的对象。
导出对象库文件
测试对象作为资源,可以导出到文件夹中,以方便其它测试脚本的使用,方法是在打开对象库,在界面中“File|ExportLocalObject”。
增加对象和删除对象:
在关键字视图中甚至专家视图中,当录制好一个脚本以后,难免在有的时候去增加一些对象等,关键字视图中增加对象的方法:
例如以计算器为例,新建一个test录制一个计算器2+3=的脚本。
如图:
从图中可以看到录制的脚本内容是“2+3=”,如果现在想在3后面继续添加一个“+4”如同就是“2+3+4=”这个时候不用说,要先添加一个新的步骤,对吧!
我们现在要在3后面添加,所以要选中3
点击鼠标右键选择InsertNewStep(插入新步骤)。
会出现如图下:
然后在点击下拉列表选择你要添加的对象,如果下拉列表中没有要添加的对象,在下拉列表中最下面有一个“ObjectFromRepository”(从对象库中选择)。
点击它,打开对象库去选择。
如果对象库中没有可以点击,小手指
把对象添加到对象库中。
(要添加的对象必须是在窗口中打开的)
删除对象操作,选中要删除的对象,点击鼠标右键,选择“Delete”(删除)。
设置测试逻辑:
在关键字视图中和专家视图中,同样都支持测试逻辑设置,例如:
条件判断,循环等。
我们要知道在关键字视图中和专家视图中如何的设置一个For循环语句。
我们可以先输入一个简单的命令。
首先我们先看下专家视图,要知道输入命令只能在专家视图下可以操作。
如图下:
从脚本中我们可以看到它的操作记录,1,是Windows中的计算器,2,计算器键盘上的2按钮。
。
。
。
。
。
。
整体来说打开计算器,选择了”2+3=”然后关闭了计算器。
对吧!
例如我们想让脚本自动多执行三次“=”按钮。
(都知道2+3=5对吧如果我要按三次“=”按钮,最后的实际结果是等于多少呢?
=11)。
我们可以在专家视图中“Window("计算器").WinButton("=").Click”上面输入这样一段代码:
【For空格Iterator空格=空格1空格To空格3空格Step空格1】。
在“Window("计算器").WinButton("=").Click”下面输入:
【Next】
在专家视图中是以命令的方式去输入,在关键字视图中呢怎么去操作。
首先我们看下关键字视图中的测试脚本,如图下:
不用说步骤和内容都很一目了然对吧。
首先选中“=”按钮,点击右键,InsertNewStep(插入新步骤),如图:
这时选中“新增加的步骤”点击鼠标右键选中“Insertstep”(插入步骤)|“LoopStatement”(语句循环)|“For…Next”。
然后如图:
这时把“=”按钮拉到For循环下面如图:
此时在关键字视图中设置循环语句就算完事了,下面可以针对“Value”(值)下面的循环次数更改下,现在默认可以看出是1次,把To后面的1换成你想循环的次数,就可以了。
在关键字视图中为测试步骤添加注释
虽然QTP可以为每一个录制的测试步骤自动生成文档,但是,未必能满足测试脚本理解上的要求,因此为了更好的看懂脚本,还需要为测试步骤添加必要的注释。
录制一个QTP自带的飞机订票程序,做个基本的录制,如图:
从图中可以看到在关键字视图中录制的脚本,可读性并不是很强,我们可以在视图中添加注释,这样脚本的可读性会增强很多,添加注释的方法是,在关键字视图中表格列头中(就是Value那地方)单击鼠标右键,把“Comment”选择上,则会多出一列名为“Comment”的列。
如图:
从关键字视图中可以看到表格里多出了一个“Comment”的列。
在这列中,为每一个步骤添加注释。
如图:
这样可以明显看出,脚本的可读性增强了。
QTP在录制过程中,QTP为每一步骤的操作自动生成操作文档,放在关键字视图中的“Documentation”列显示出来,在“Documentation”列头点击鼠标右键选择“CopyDocumentationtoClipboard”可以导出测试步骤文档,生成测试用例,可以用于指导手工测试进行。
(导出测试用例,必须要先新建一个txt文档,然后在文档中粘贴就可以了)
增加对象如图:
从图中可以看到,在关键字视图中的每一步的测试步骤,如果我想把这个程序的“帮助”也增加到关键字视图中,使用什么方法:
之前我们以计算器为例的时候知道怎加步骤,就要先去添加一个新的步骤,然后通过下拉列表去选择对象库,在去添加要被测试的对象。
也可以使用其它的方法,使用步骤从生成器,其实无论哪种方法都是把对象加入到对象库中,使用步骤生成器有两种方法,第一种呢,选中“Login”
单击鼠标右键,选择“InsertNewStep”(插入新步骤)。
然后通过下来选项来选择“StepGenerator”(步骤生成器)。
第二种是,选中“Login”单击鼠标右键,选择“InsertStep|StepGenerator”(插入步骤|步骤生成器)。
选择后会出现如图:
然后点击“彩色的方块,其实就是对象库”,选择以后如图:
这一步相信已经很眼熟了吧,不用说去点击小手指
把对象添加到对象库中。
(要添加的对象必须是在窗口中打开的)。
然后如图下:
从图中可以看到“帮助”控件已经被添加到对象库中了,然后点击OK.出现如图:
“Help”按钮已经被添加到关键字视图中,这时把“Help”按钮拉到Login下面,并添加注释。
如图下:
这时就步骤就添加完成了,可以运行回放下,检查脚本是否存在问题。
在执行脚本过程中,会发现,运行到点击“Help”帮助的时候运行会停止,弹出一个对话框,如图:
然后点击确定,脚本会继续执行,这是为什么?
因为我们知道刚才我们增加的步骤中并没有增加确定这个步骤,所以这时要增强脚本。
我们可以通过一个简单的描述性编程来增强脚本,使用If判断语句和Exist方法(判断是否存在)。
首先切换到专家视图中,如图:
然后在第二行开始写If判断语句,因为我们只有先点击“Help”按钮才可以在点击“确定”按钮。
如图:
然后在If中输入Dialog(“Login”).Dialog(“”).Exist如图:
这个时候我们就可以用“对象侦测器”来查看“确定显示框的”属性了。
点击对象侦测器选择里面的小手指然后指向“Help”下的
“确定”显示框。
如图:
图中显示的是属性栏,因为我们要知道确定显示框的属性所以我们要选择text属性和FlightReservations值(text:
主题,文本的意思)。
然后在选择方法如图:
方法不用说也知道要选择什么,因为我们在编程的时候已经突显出采用的方法了。
所以我们要选择方法是Exist判断是否存在。
选完以后再Dialog(“Login”).Dialog(“”).Exist输入:
text:
=FlightReservations如图:
然后我们在把确定显示框中的确定按钮加载到对象库里。
然后在专家视图中在输入一行代码。
Dialog(“Login”).Dialog(“FlightReservations”).WinButton(“确定”).Click
如图:
这时再次运行脚本,会发现脚本的步骤已经通过一个简单的编程,而增强了脚本。
QTP的录制模式
QTP的录制模式有3种:
正常录制,模拟录制,低级录制
正常录制模式是QTP默认的录制模式,这种录制模式是直接对对象的操作,录制完之后,不管再次打开的对象位置在哪,它都能执行到,(因为在录制的时候已经把对象添加到对象库中了)。
录制方式为—
直接从“Automation|Record”或者按快捷键“F3”录制。
模拟录制(Analogrecording)模式是对鼠标和键盘的精准操作的录制,用来录制正常录制模式不能录制到的动作,比如说一个鼠标移动的动作,正常录制模式就是录制不下来的,这时就直接可以使用模拟录制模式,录制方式为—直接从“Automation|Analogrecording”或者工具栏上的鼠标快捷键。
如图:
模拟录制模式分为两种:
一种是相对于指定窗口录制;另一种是相对于屏幕录制。
指定窗口录制:
只会录制鼠标键盘的指定窗口内的所有动作,在窗口外的动作不会录制。
当使用这种模式时,QTP不会捕捉任何ActiveScreen图像。
屏幕录制:
可以录制在整个屏幕内所做的操作。
包括Windows任务栏上的QTP图标,但是在QTP窗口内所做的操作不会进行录制,当使用这种模式时,QTP将会捕捉你在其中进行录制的窗口的最终状态和ActiveScreen图像。
低级录制(LowLevelRecording)模式:
是用来录制QTP不能识别的环境或对象,它录制鼠标及键盘的所有操作,对对象的位置要求非常严格,如果对象的坐标有一点改变就会录制失败,录制方式为—直接从“Automation|LowLevelRecording”或者工具栏上的指针箭头快捷键。
如图:
。
只有正常录制模式不能录制自己想要的操作时才会使用模拟录制和低级录制,模拟录制和低级录制比正常录制占用的硬盘资源大的多,所以硬盘资源也需注意,以免录制的时候因为资源问题,到时录制失败,不过想要直接使用模拟录制或者低级录制是不行的,需要先使用正常录制,然后在切换到模拟录制或者低级录制。
最后在切换回来。
小结:
当以正常模式录制时,不用关心对象控件具体在什么位置,即使该控件每次都移动到屏幕上的新的位置也没关系,但是如果对象的位置对于测试或者组件非常重要的话,需要切换到“低级录制”以保证能够按照屏幕上的精准坐标录制该对象,这样,该步骤只有在对象位于正确的位置时候才能通过。
模拟录制和低级录制的限制:
模拟录制和低级录制产生的脚本无法插入检查点,而且应用程序界面稍有变动则监本无法正常运行,所以万不得已的时候应该避免这两种录制方式。