软件测试5.docx
- 文档编号:8592647
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:25
- 大小:1.15MB
软件测试5.docx
《软件测试5.docx》由会员分享,可在线阅读,更多相关《软件测试5.docx(25页珍藏版)》请在冰豆网上搜索。
软件测试5
5.1 QTP基本功能的使用
QTP的基本功能包括两大部分:
一部分是提供给初级用户使用的关键字视图;另一部分是提供给熟悉VBScript脚本编写的自动化测试工程师使用的专家视图。
但是,并没有严格的区分,在实际的自动化测试项目中完全可以两者结合着使用。
5.1.1 QTP自动化测试的基本过程
使用QTP进行自动化测试的基本过程与使用其他自动化测试工具进行自动化功能测试的过程基本是一致的,一般包括以下5个步骤:
(1)录制测试脚本。
利用QTP先进的对象识别、鼠标和键盘监控机制来录制测试脚本,测试人员只需要模拟用户的操作,像执行手工测试的测试步骤一样操作被测试应用程序的界面即可。
(2)编辑测试脚本。
主要包括调整测试步骤、编辑测试逻辑、插入检查点(CheckPoint)、添加测试输出信息、添加注释等。
(3)调试测试脚本。
利用“CheckSyntax”功能检查测试脚本的语法错误,利用QTP脚本编辑界面的调试功能检查测试脚本逻辑的正确性。
(4)运行测试脚本。
可运行单个“Action”,也可批量运行测试脚本。
(5)分析测试结果。
使用QTP的测试结果查看工具查看测试结果,检查测试运行过程的正确性。
5.1.2 在关键字视图中编辑测试脚本
对于录制下来的测试脚本,需要进一步修改和调整,这些工作可在关键字视图(KeywordView)中进行,也可在专家视图(ExpertView)中进行。
对于新手而言,关键字视图可能会更容易理解和使用一些,因为它不需要理解和熟悉测试脚本语言。
例如,通过查看如图5.1所示的关键字视图,可以很容易地知道这个测试经过了4个测试步骤,分别是:
(1)让Login窗口处于激活状态。
(2)在“AgentName”输入框中输入字符串“MERCURY”。
(3)在“Password”输入框中输入密码。
(4)单击“OK”按钮。
图5.1 查看测试步骤
技巧:
在录制过程中,QTP为每一步操作自动生成操作文档,放到关键字视图的“Documentation”列中显示出来,在“Documentation”列的列头单击鼠标右键,选择“CopyDocumentationtoClipboard”可以导出测试步骤文档,生成测试用例,用于指导手工测试的进行。
5.1.3 在关键字视图中为测试步骤添加注释
虽然QTP能为每一个录制的测试步骤自动生成文档,但是,未必能满足对测试脚本的理解上的要求,因此,还需要为测试步骤添加必要的注释。
方法是:
首先在关键字试图的表格列头中单击鼠标右键,选择“Comment”,则会多出一列名为“Comment”的列,在这一列中可为每一个测试步骤添加注释,如图5.2所示。
5.1.4 在关键字视图中添加测试信息的输出
如果想在某个测试步骤完成后,输出相应的测试信息到测试报告中,则可单击鼠标右键,选择“InsertStep|Report”,出现如图5.3所示的界面。
图5.3 插入报告
在界面中的“Status”下拉框中,选择写入测试报告的状态(可以是Done、Passed、Failed、Warning这4种状态中的一种);在“Name”中输入信息摘要;在“Details”中输入详细的测试步骤信息。
例如,可在激活Login界面之前报告“开始登录操作”,在单击OK按钮后报告“完成登录操作”,如图5.4所示。
图5.4 添加报告
5.1.5 插入检查点(Checkpoint)
如果想检查Login窗口的名称是否为“Login”,如果窗口名称不是“Login”,那么认为测试不通过。
这可在关键字视图中通过QTP的检查点插入功能来实现。
方式如下:
(1)首先,定位到激活Login窗口所在的测试步骤。
(2)然后单击鼠标右键,选择菜单“InsertStandardCheckpoint”,出现如图5.5所示的界面。
图5.5 插入标准检查点
(3)在界面中,选择需要检查的属性,例如,选择“Enabled”属性,设置为“True”,选择“Text”属性,设置为“Login”。
单击“OK”按钮后,则可在关键字视图中看到新添加的检查点步骤,如图5.6所示。
图5.6 添加新的检查点步骤
前面的章节介绍了QTP的安装和设置,并且利用录制功能创建了一个基本的自动化测试脚本。
在本章,将基于这个基本的测试脚本介绍QTP基本功能的使用,包括如何利用QTP提供的各种辅助功能来创建测试脚本,编辑和调试测试脚本,运行测试脚本,以及查看和分析测试结果。
5.1 QTP基本功能的使用
QTP的基本功能包括两大部分:
一部分是提供给初级用户使用的关键字视图;另一部分是提供给熟悉VBScript脚本编写的自动化测试工程师使用的专家视图。
但是,并没有严格的区分,在实际的自动化测试项目中完全可以两者结合着使用。
5.1.1 QTP自动化测试的基本过程
使用QTP进行自动化测试的基本过程与使用其他自动化测试工具进行自动化功能测试的过程基本是一致的,一般包括以下5个步骤:
(1)录制测试脚本。
利用QTP先进的对象识别、鼠标和键盘监控机制来录制测试脚本,测试人员只需要模拟用户的操作,像执行手工测试的测试步骤一样操作被测试应用程序的界面即可。
(2)编辑测试脚本。
主要包括调整测试步骤、编辑测试逻辑、插入检查点(CheckPoint)、添加测试输出信息、添加注释等。
(3)调试测试脚本。
利用“CheckSyntax”功能检查测试脚本的语法错误,利用QTP脚本编辑界面的调试功能检查测试脚本逻辑的正确性。
(4)运行测试脚本。
可运行单个“Action”,也可批量运行测试脚本。
(5)分析测试结果。
使用QTP的测试结果查看工具查看测试结果,检查测试运行过程的正确性。
5.1.2 在关键字视图中编辑测试脚本
对于录制下来的测试脚本,需要进一步修改和调整,这些工作可在关键字视图(KeywordView)中进行,也可在专家视图(ExpertView)中进行。
对于新手而言,关键字视图可能会更容易理解和使用一些,因为它不需要理解和熟悉测试脚本语言。
例如,通过查看如图5.1所示的关键字视图,可以很容易地知道这个测试经过了4个测试步骤,分别是:
(1)让Login窗口处于激活状态。
(2)在“AgentName”输入框中输入字符串“MERCURY”。
(3)在“Password”输入框中输入密码。
(4)单击“OK”按钮。
图5.1 查看测试步骤
技巧:
在录制过程中,QTP为每一步操作自动生成操作文档,放到关键字视图的“Documentation”列中显示出来,在“Documentation”列的列头单击鼠标右键,选择“CopyDocumentationtoClipboard”可以导出测试步骤文档,生成测试用例,用于指导手工测试的进行。
5.1.3 在关键字视图中为测试步骤添加注释
虽然QTP能为每一个录制的测试步骤自动生成文档,但是,未必能满足对测试脚本的理解上的要求,因此,还需要为测试步骤添加必要的注释。
方法是:
首先在关键字试图的表格列头中单击鼠标右键,选择“Comment”,则会多出一列名为“Comment”的列,在这一列中可为每一个测试步骤添加注释,如图5.2所示。
5.1.6 在关键字视图中插入新的测试步骤
如果想在打开登录界面并激活Login窗口的测试步骤之后,而在输入代理机构名的测试步骤之前,先单击“Help”按钮查看帮助,则需要使用插入测试步骤的功能。
(1)选择“打开登录界面”所在的测试步骤,单击鼠标右键,选择菜单“InsertStep|StepGenerator”,则出现如图5.7所示的界面。
图5.7 测试步骤产生器
“Category”包括“TestObjects”、“UtilityObjects”和“Functions”,分别代表如下含义:
TestObjects:
测试对象,即被测试应用程序的界面上的控件元素。
UtilityObjects:
工具对象,是QTP内建的各种用于编写测试脚本、辅助建立测试逻辑的工具类对象。
Functions:
各种函数,包括库函数、内建函数、本地脚本函数。
(2)在这里,选择“TestObjects”,然后单击“Object”下拉框旁边的图标按钮,出现如图5.8所示的界面,在界面中选择“Help”对象,然后单击“OK”按钮。
图5.8 为测试步骤选择测试对象
注意:
如果“Help”对象不在列表中,则可单击界面中的手型按钮,然后移动到Flight程序的“Login”界面,从中选择测试对象“Help”按钮,则出现如图5.9所示的界面。
单击“OK”按钮,把“Help”按钮对象添加到测试对象列表中。
5.2 编辑测试脚本象
在掌握了QTP的关键字视图和专家视图的基本使用方法后,就可以综合使用这两个测试视图,结合对象库、函数库等辅助手段来编辑测试脚本。
5.2.1 识别对象
编辑测试脚本的第一步是识别测试对象,因为基于GUI的自动化测试主要是围绕着界面的控件元素来进行的。
QTP针对不同语言开发的控件,采取不同的对象识别技术,根据加载的插件来选择相应的控件对象识别的依据。
在QTP中,选择菜单“Tools | Object Identification”,出现如图5.14所示的界面。
图5.14 对象识别定义界面
在界面中可看到各种标准Windows控件对应的对象识别方法,例如,对于Dialog控件,使用的是“is child window”、“is owned window”、“nativeclass”和“text”这四个控件对象的属性来区别出一个唯一的Dilalog控件对象。
可以单击“Add/Remove”按钮,在如图5.15所示的界面中,选择更多的控件属性来唯一识别控件。
图5.15 选择或移除属性
5.2.2 Object Spy的使用
QTP提供的“Object Spy”工具可用于观察运行时测试对象的属性和方法。
选择菜单“Tools | Object Spy”,则出现如图5.16所示的界面。
图5.16 Object Spy的界面
在界面中,单击右上角的手型按钮,移动到测试对象上,单击鼠标左键选择测试对象,会自动获取到该测试对象的所有属性和方法,如图5.17所示。
从图中可看到,所选择的是标准Windows控件中的“Dialog”对象。
切换到“Methods”页,则可看到如图5.18所示的控件方法,如“Activate”、“Click”、“Close”等。
图5.17 查看控件可用的属性 图5.18 查看控件可用的操作
Object Spy对于观察测试对象的属性,了解测试程序的控件属性和行为都非常有用,尤其是对于那些界面控件元素比较多、层次关系比较复杂的应用程序。
可在测试程序的界面上不断改变测试对象,然后多次使用Object Spy来观察其属性的变化,通过这种方式来了解控件的行为,以及判断哪些控件属性可放到测试脚本中,用于判断测试结果。
5.2.3 对象库管理
另外一种观察和了解测试程序的界面控件元素,以及它们的层次关系的方法是通过对象库(“Object Repository”)。
在QTP中,选择菜单“Resources | Object Repository”,出现如图5.19所示的界面。
图5.19 对象库管理
QTP在录制测试脚本的过程中会把界面操作涉及的控件对象都自动添加到对象库中,但是那些未被鼠标点击或键盘操作的界面控件则不会添加到对象库中。
5.2.4 把测试对象添加到对象库中
在对象库管理界面中,选择菜单“Objects | Add Object to Local”,然后选择测试程序界面中的某个控件,例如,选择Flight程序的“Login”界面中的“Cancel”按钮,则出现如图5.20所示的界面。
单击“OK”按钮,把测试对象添加到对象库中,如图5.21所示。
图5.20 对象选择
图5.21 添加测试对象到对象库
从右边的对象属性窗口中可看到,对于“Cancel”这个“WinButton”类型的控件,QTP使用“text”和“nativeclass”两个属性来唯一区分和识别。
这两个属性将作为测试脚本运行时找到测试程序界面上的相应控件的依据。
界面中的某些控件对象是有层次关系的,例如,按钮、输入框等控件包含在窗口控件中,在添加测试对象到对象库时,可以选择窗口对象,然后在如图5.22所示的界面中选择“All object types”,单击“OK”按钮,则会把选择的窗口对象中的所有控件对象添加到对象库中。
图5.22 定义对象过滤
5.2.5 导出对象库文件
测试对象作为资源,可导出到文件中,以方便其他测试脚本的使用,方法是在对象库管理界面中,选择菜单“File | Export Local Object”,存储到某个文件夹中。
5.2.6 在测试脚本中访问对象库的测试对象
把界面的控件作为测试对象添加到对象库中之后,就可以把这些测试对象作为测试资源来访问,例如,在关键字视图中可从对象库中选择需要的测试对象,如图5.23所示。
图5.23 从对象库选择测试对象
在下拉列表中选择“Objectfromrepository”,出现如图5.24所示的界面,在界面中选择对象库中的测试对象。
图5.24 为测试步骤选择对象
而在专家视图中,同样可以访问到对象库的测试对象,以及它们的属性和方法,如图5.25所示。
图5.25 在专家视图访问对象库的测试对象
5.2.7 添加新的Action
在QTP中,“Action”相当于测试脚本的文件,可使用Action来划分和组织测试流程,例如,把一些公用的操作放到同一个Action中,以便重用。
如果想在当前Action的某个测试步骤之后添加新的Action,则可选择菜单“Insert|CalltoNewAction”,出现如图5.26所示的界面。
图5.26 添加新的Action
在“Name”中输入Action的名称,例如“Action_Help”,在“Description”中输入对该Action的描述,例如“处理Help窗口”,在“Location”中选择“Afterthecurrentstep”,然后,单击“OK”按钮,返回关键字视图,则可看到新的名为“Action_Help”的Action已经成功被添加,如图5.27所示。
图5.27 成功添加“Action_Help”
5.2.8 关联Action的对象库
双击新添加的Action,可在该Action中添加新的测试代码。
由于QTP为每一个Action生成相应的测试文件和目录,而对象库作为资源,也是与Action绑定的,因此,新添加的Action不能直接使用前一个Action中的测试对象。
解决方法有两种,一种是通过录制新的测试脚本来产生新的测试对象库,另外一种是通过关联前一个Action所导出的对象库文件来使用其测试对象。
下面介绍第二种方法:
(1)选择菜单“Resources|AssociateRepositories”,出现如图5.28所示的界面。
(2)单击“+”按钮,选择前一个Action导出的对象库文件,然后,把左边的“AvailableActions”中的“Acton_Help”移动到右边的“AssociatedActions”列表中,如图5.29所示。
图5.29 关联对象库与Action
(3)这样,就可在“Action_Help”的测试脚本中使用Action1的对象库中的测试对象,打开对象库,在“Action”的下拉框中选择“Action_Help”,可看到“Action_Help”可用的测试对象,如图5.30所示。
图5.30 “Action_Help”可用的测试对象
提示:
这些对象与Action1中的是一致的,但是不能进行修改,用灰色显示。
在右边的“Repository”中,显示对象库文件的路径为“D:
\QTP\C5\SimpleTest2\OR\OR1.tsr”,而不是“Local”,表明这些对象是引用对象库文件而来的。
5.2.9 编辑新的Action
为新的Action建立了对象库后,就可以在测试脚本中访问和使用这些测试对象,例如,可在专家视图的脚本编辑器中输入以下代码:
Dialog("Login").WinButton("Help").Click'打开帮助界面
Dialog("Login").Dialog("FlightReservations").Activate
Dialog("Login").Dialog("FlightReservations").WinButton("确定").Click'单击确定按钮关闭帮助界面
这些代码在Action_Help的关键字视图中对应地如图5.31所示。
图5.31 关键字视图
5.2.10 在函数库中创建自定义函数
在测试脚本中,除了访问和调用测试库的测试对象、QTP内建的函数外,自动化测试工程师还可以自己定义函数库,把一些可重用的VB脚本封装到函数库中,然后,在测试脚本中调用。
创建自定义函数的方法如下:
(1)选择菜单“Insert|FunctionDefinitionGenerator”,出现如图5.32所示的界面。
图5.32 函数定义产生器
(2)在“Functiondefinition”中的“Name”输入框中输入函数的名称,在Type中选择“Function”,在“Scope”中选择“Public”,在“Description”中输入函数的描述信息,例如“用于演示如何利用FunctionDefinitionGenerator创建函数”,如图5.33所示。
图5.33 定义函数
提示:
如果函数有输入参数,则可以在“Arguments”中单击“+”按钮进行添加。
(3)单击“OK”按钮,则会在当前Action的测试代码中,添加如图5.34所示的函数框架代码。
图5.34 产生函数框架代码
在这里可以简单地写一个函数,用于往测试报告中添加一条信息,代码如下所示:
'@Description用于演示如何利用FunctionDefinitionGenerator创建函数
PublicFunctionTest1
'TODO:
addfunctionbodyhere
Reporter.ReportEventmicDone,"Test1","Test1"'往测试报告中添加一条信息
EndFunction
(4)添加完函数代码后,就可以在测试代码中调用这个函数,调用方法有两种,一种是在专家视图中编写代码调用,只需要简单地输入函数名即可,如下面代码所示:
Test1'调用函数Test1
Dialog("Login").WinButton("Help").Click'打开帮助界面
Dialog("Login").Dialog("FlightReservations").Activate
Dialog("Login").Dialog("FlightReservations").WinButton("确定").Click'单击确定按钮关闭帮助界面
'@Description用于演示如何利用FunctionDefinitionGenerator创建函数
PublicFunctionTest1
'TODO:
addfunctionbodyhere
Reporter.ReportEventmicDone,"Test1","Test1"'往测试报告中添加一条信息
EndFunction
另外一种方法是在关键字视图中,通过选择菜单“Insert|StepGenerator”,在如图5.35所示的界面中,选择“Category”为“Functions”,选择“Library”为“Localscriptfunctions”,然后选择“Operation”为“Test1”即可。
图5.35 通过StepGenerator来添加函数调用
添加对Test1的调用后,在关键字视图中可看到,新加了一个测试步骤“FunctionCall”,如图5.36所示。
图5.36 添加“FunctionCall”测试步骤
5.3 运行和调试测试脚本
编辑好测试脚本后,在运行测试之前,可利用QTP的语法检查功能和脚本调试功能对测试脚本的逻辑进行检查。
5.3.1 语法检查
选择菜单“Tools|CheckSyntax”,或者按快捷键“CTRL+F7”对测试脚本进行语法检查,如果语法检查通过,则在“Information”界面(可通过选择菜单“View|Information”打开)提示如图5.37所示的信息。
图5.37 语法检查通过
如果语法检查发现有问题,则会在Information界面中列出详细的信息,如图5.38所示,包括语法错误的信息描述,出现在哪个Action的哪行代码,双击该提示信息,将转到相应的测试脚本的代码行。
图5.38 语法检查的详细信息
5.3.2 使用断点
语法检查通过后,可直接运行测试脚本,也可设置断点对脚本进行调试。
例如,在如图5.39所示的代码行中设置断点(快捷键是F9)。
图5.39 设置断点
然后,按F5键运行测试脚本,运行过程中将在断点所在的代码行停住,如图5.40所示。
图5.40 运行脚本到断点处
5.3.3 单步调试
这时候,可以选择菜单“Debug|StepOver”,或者按快捷键“F10”跳到下一行代码,也可以选择“Debug|StepInto”,或者按快捷键“F11”进入代码行中所调用的函数“Test1”。
如图5.41所示。
图5.41 单步调试
5.3.4 调试查看器的使用
在调试过程中,可选择菜单“View|DebugViewer”,在如图5.42所示的界面中,输入测试对象属性或变量,查看其值。
图5.42 调试器
如果安装了VisualStudio.NET2008,则可以增强QTP的调试能力,在“DebugViewer”中可以查看到对象的大部分属性,如图5.43所示。
图5.43 增强的调试器
技巧:
可以通过安装VisualStudio.NET2008来增强QTP调试能力,也可以不安装,仅仅把
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试