版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
QTP工具使用培训基础应用自动化测试介绍
自动化测试基本概念自动化测试通俗易懂的说就是能够自动输入测试数据,自动检查被测对象响应的一种测试方法。自动化测试目的自动化测试的目的是通过自动执行测试脚本,使测试人员在更短的时间内能够更快地完成更多的软件测试,并提供以更高的频率执行测试的能力,从而有效降低测试成本、提高测试效率。自动化测试解决的问题在实际的测试工作中,一般说来,我们选择自动化的功能测试工具无外乎要解决以下三个问题:自动化的功能回归测试大批量数据驱动的软件测试整个软件测试生命周期的管理但自动化测试并非万能,手工测试是不可替代的,因为人有很强的判断能力:测试用例的设计界面和用户体验测试开始QTP之旅
QTP简介QTP是惠普一款功能强大的自动化测试工具,它是用于功能测试和回归测试自动化的高级解决方案。它能自动捕获、验证和重放用户的交互行为。最大程度提高测试效率,减少人力成本,保证测试质量。采用VBScript作为其脚本语言。插件管理
插件管理器
启动QTP,首先需要根据被测应用程序来选择合适的插件QTP向导向导QTP主窗口QTP主窗口描述QTP主窗口标题栏:显示当前测试脚本的名称菜单栏:显示QTP的菜单项文件工具栏:管理测试脚本常用的工具列调试工具栏:对测试脚本除错常用的工具列测试工具栏:录制测试脚本常用的工具列操作工具栏:查看单项操作或整个测试流的详细信息测试窗格:关键字视图和专家视图数据表:对测试脚本做参数化时存放参数数据的地方,默认有两个数据表,一个是Golbal,另一个对应的操作的数据表,其中每个操作会对应各自的数据表ActiveScreen:录制会话过程中执行某个特定步骤时,提供了出现的应用程序快照QTP测试过程录制测试脚本前的准备测试什么功能、操作步骤、预期结果、QTP设置录制测试脚本每一个操作步骤都会被录制下来编辑测试脚本调整测试步骤、插入检查点、参数化等调试测试脚本对修改的测试脚本进行调试,确保脚本的正确性运行测试脚本、分析结果分析结果,回报问题到测试管理工具(QC)或自有管理工具QTP测试流程图一个简单的Web测试演示实例
开始Web测试
使用QTP自带的Web示例网站进行测试首先需要明确测试内容:譬如简单的注册功能其次明确被测功能的测试步骤:按照注册向导进行注册再次需要明确被测功能的预期结果是什么:这里注册成功的标志是显示一段文本:Note:YourusernameisXXXXXX.
最好关闭与测试不相关的程序窗口IE浏览器设置如果使用IE浏览器,需要先取消【自动完成】的功能,不要让浏览器帮你记住自动输入帐号与密码,以确保在录制的过程中所有的操作都会被录制下来。取消【自动完成】的设定:QTP设置QTP设置(续)QTP设置(续)录制测试脚本关键字视图专家视图执行测试脚本测试结果保存路径测试结果QTP到底是如何工作的呢?
测试对象模型概述 QuickTest通过记住和标识测试对象及其预期的属性和属性值,对动态更改的应用程序进行测试。在录制期间,QuickTest对应用程序中每个对象进行分析的方式就跟一个人看一张图片然后记住其细节的方式大致相同。也就是说每一个测试对象都有其唯一的属性标识来确定这个对象。QTP中的对象模型标准windows对象Web对象ActiveX对象VB对象.Net对象。。。。。。QTP中的对象测试对象(TestObjects)
静态的一组Application对象,提供接口访问对象的属性和方法(GetToProperty)。它是对象库文件里定义好的对象。首先通过录制的方式获取到对应对象,将其进行存储,并确定该对象符合的测试对象类。譬如,标准Windows对话框、WebButton或者VB滚动条对象等。然后,对于每个测试对象类,QuickTest始终记住这些默认的属性值,如果检查的对象不足以唯一标识该对象,那么QuickTest将逐项添加辅助属性,直到成为唯一标识为止。运行时对象(Run-TimeTestObjects)
展现的是脚本运行时的对象,是被测软件的实际对象,其运行时属性可能与测试对象属性不同。在脚本中可以通过GetRoProperty属性或者Object对象自身来访问和获取到。要求必须熟悉GUI对象的属性,运行机制有一定的编程开发经验例如:Web控件:熟悉HTML,熟悉HTML中的控件对象属性和方法(Page、Body、Table、Div等Object)Browser类Page类WebEdit类测试对象管理对象库QTP采用对象库来管理脚本中的测试对象QTP在录制过程中,根据定义的TestObject识别规则自动生成objectrepository
可以手动添加、删除、修改TestObjects多个脚本可以共享同一个objectrepository
对象探测器对象库管理工具QTP提供了一个很强大的对象库管理工具,可以通过这个工具实现多个对象库的比较、合并等功能。合并的时候,在两个对象库文件中,相同的对象合并成一个,不同的对象全部被完整增加进去。然后形成一个大的对象库。如何共享对象库概述
随着项目需求的不断增加,需要的脚本开发人员也会增多,这种情况如果还是局限于单人作战的方式会很影响脚本开发的效率,这种情况下可以考虑对象库的共享,多人协作开发脚本但共用一个公共对象库。步骤将本地对象库保存到本地为.tsr文件其他人使用时将该.tsr文件关联到本地QTP脚本中关键字视图关键字视图为用户提供了一种以易于使用的图形格式创建、查看以及修改测试脚本的简单方法。通过关键字视图,可以用模块化的表格格式创建和查看测试脚本步骤。每个步骤在关键字视图中对应一行,由可以轻松修改的单独部分组成。使用关键字视图如何使用关键字视图?(无需录制即可添加步骤)
在需要添加的步骤处打开右键菜单,可以根据需要插入步骤,步骤包含了报告、注释、步骤生成器、条件语句、循环语句、开始事务和结束事务。录制模式分类普通录制模拟录制低级录制
普通录制是录制模式中的默认录制方式,这种录制模式是QTP最突出的特点。是直接操作对象,譬如对标准windows控件的操作,录制完之后,不管再次打开的对象位置坐标在什么位置,它都能根据对象的唯一标识来执行到。这种模式的优势是可以录制对于应用程序的对象的一系列操作,但劣势就是对于鼠标的运动轨迹无能为力,譬如windows自带的画图程序,通过这种模式就无法进行录制。录制模式详细描述录制模式详细描述(续)模拟录制模式是对鼠标和键盘的精确操作进行录制。录制鼠标的拖动,捕捉鼠标的运动轨迹,主要用于绘图此类软件的录制。模拟录制是在普通录制过程中切换到此种模式的,无法在录制之前设置。分类相对于指定窗口录制:只录制鼠标键盘的指定窗口内的所有动作,在窗口外的动作不会录制相对于屏幕录制:可以录制在整个屏幕内所做的所有动作。录制模式详细描述(续)低级录制是把所有对象识别为WinObject对象,是对正常录制下不能是别的环境和对象的一个补充。对对象的位置要求非常严格,是记录屏幕坐标点上的操作。对象的坐标有一点改变就有可能录制失败,这种模式的录制稳定性较差。赶快动手试一下共享对象库的妙处吧…别忘了还有三种不同的录制模式也要熟悉一下检查点概述检查点是将指定属性的当前值与该属性的期望值进行比较的验证点,这样就能使用户确定被测应用程序功能是否正常运行。当添加检查点后,QuickTest会将检查点添加到关键字视图中的当前行并在专家视图中添加一条“检查检查点”语句。当回放脚本时,QuickTest就会将检查点的期望结果与当前结果进行比较,如果结果不匹配,检查点就会报错,检查点结果可以在“测试结果”中进行查看。检查点分类描述检查点分类标准检查点
Browser("Browser").Page("Register:MercuryTours_2").CheckCheckPoint("Register:MercuryTours")检查点分类(续)位图检查点表和数据库检查点QTP提供的DatabaseCheckPoint采用ODBC数据源,需要在控制面板中定义数据源麻烦可采用ADODB的方式自定义Database检查点SetadoCon=CreateObject("ADODB.Connection")SetadoRec=CreateObject("ADODB.Recordset")文本检查点文本区域检查点XML检查点自定义检查点正则表达式
对于上述各检查点的属性值进行设定时,还可以使用正则表达式来表示,以更好的进行对象匹配。正则表达式是指定复杂搜索短语的字符串,通过使用特殊字符,如*.[]\b等等来定义搜索条件。现在动手实践下检查点的用处,看看运行的测试结果又是怎样呢?参数化概念
在测试过程中,用户会想到使用各种各样的测试数据代表,针对同样的操作或功能进行验证。譬如,对于普通的登录操作,用户可能会有四组不同的数据来验证登录的权限问题,如超级管理员、普通管理员、部门经理、员工。最直接的方法就是将这四组数据依次来进行录制操作,但如果数据量过大的情况下那么录制的成本会非常高。这种方式是不可取的。现在我们可以考虑使用数据的参数化来进行大批量数据的操作,只简单复用一个脚本即可实现所有的不同权限用户的登录验证问题。参数化形式数据表GlobalAction环境变量内置环境变量用户自定义环境变量随机数Test/Action调用Action输入参数Action参数只能应用在当前的ActionAction中不能直接使用Test参数可以把Test参数传送给Action调用Test输入参数DataTable参数化DataTable参数化可以加载默认的Excel文件,也可以加载外部Excel文件当加载默认Excel文件时,有两种方式:Global:全局的,在整个生命周期中都可调用Browser("Browser").Page("Register:MercuryTours").WebEdit("firstName").SetDataTable("firstName",dtGlobalSheet)Action:只用于当前Action的调用Action输入参数Action输入参数 Browser("Browser").Page("Register:MercuryTours").WebEdit("firstName").SetParameter("InAction1")
注意:上面的InAction1输入参数是不能在其他Action中调用的,只能用于自身ActionTest输入参数Test输入参数可以通过TestArgs方法获得参数值:TestArgs(“firstName”)可以将Test参数传给相应的ActionTest和ActionTest包括一个或多个Actions,按照一定的规则组织Action为一个测试流程。Test可以引用外部的ActionsActionnon-reusablereusableexternal流程图TestActionActionActionFunctionFunctionLibraryStepStepStep
以Test为测试运行单位,每个Test包含若干类型Action。
以Action为最小单位映射对象库,多个Action之间可以共享统一对象库
Action内的Step可以包含用户录制操作或者函数库内对Function的调用Step参数化是非常重要的内容,让我们继续前面的成果吧…创建复用Action添加Action的方法插入一个Action有以下几种方法:在当前Test中创建一个新的操作插入拷贝的外部操作,这种方式是可以编辑的,外部引用的操作不受影响调用一个存在的操作,这种情况下外部操作是不可以编辑的分割操作为一个个的单体通过一个简单实例讲解上述重点知识点:
Test和Action的关系
Test和Action的循环设置
输出值概述
输出值是一个步骤,在该步骤中,捕获到测试中某个特定点的一个或多个值,并在运行会话持续时间存储这些值。随后,在运行会话中的不同点,可以将这些值作为输入来使用。输出值分类标准输出值
标准输出值能够输出大多数对象的属性值,还可以输出表单元格的内容。可以在录制或编辑测试脚本时创建标准输出值。文本输出值
文本输出值可以从屏幕中的显示的文本字符串中创建,可以将输出值定义为显示的文本的一部分,也可以指定输出文本之前或之后的文本。数据库输出值
可以通过定义数据库中检索数据的查询,并选择要从查询结果集中输出地值来创建数据库输出值。可以指定选定值的输出设置,在运行会话过程中,QTP从数据库中捕获当前的数据,并根据指定的设置输出值。XML输出值
可以从XML网页或框架中包含的任何XML文档中创建XML输出值,或直接从XML文件创建XML输出值。可以输出XML输出值步骤中的元素或属性值。输出值的存储测试/操作输出参数运行时数据表环境变量运行时数据表
对于要运行多次的由数据驱动的测试或操作来说,将值输出到运行时数据表的选项是很有用的。在每次重复或循环中,QTP检索当前值并将其存储在运行时数据表的相应的行中。调试概述 QTP工具为测试脚本开发工程师提供了强大的脚本调试功能,可以通过调试功能很容易的发现问题、解决问题。设置断点调试查看器(AddtoWatch)场景恢复概述
场景恢复是QTP在运行会话期间测试环境发生的意外事件和错误时进行恢复的一种手段。在会话运行期间的意外事件和错误以及应用程序的崩溃都可能破坏运行会话并歪曲结果,尤其在测试被挂起后,需要人为干预执行恢复所需的操作后才会继续执行脚本,这时候我们可以考虑采用场景恢复的方式来解决掉此类问题。场景恢复步骤<1>定义触发事件弹出式窗口:在应用程序运行期间弹出的一个未知window对话框对象状态:应用程序中的对象属性值与指定值匹配,可以指定每个对象的属性值测试运行错误:测试运行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模拟酸雨与氮沉降对亚热带典型树种凋落叶分解的差异化影响探究
- 足脓肿的护理
- 河南省湘豫联盟2025-2026学年高三下学期四月阶段检测物理+答案
- 浙江省金华十校2026年4月高三模拟考试语文+答案
- 未成年人员安全保障措施承诺书4篇
- 对2026年重要业务变更的告知函(9篇)
- 食品加工车间卫生管理手册
- 2025年江苏省南京市雨花台区小升初数学试卷
- 数据安全义务及用户信息安全承诺书3篇
- 物流管理部跨境冷链运输合作意向函6篇
- 区块链金融(第二版)课件 项目三 区块链赋能数字银行业务
- 英语试卷+答案广东省江门市2026届普通高中高三调研测试(江门一模)(.5-.6)
- 2026年见证取样员试卷含答案详解【培优】
- 2025-2026学年苏教版小学四年级数学下册教学计划及进度表
- 雨课堂学堂在线学堂云人工智能技术与应用(江南大学)单元测试考核答案
- 2026中国商用飞机公司招聘面试题库
- 4.1《致敬劳动者》课件 统编版道德与法治三年级下册
- 宝钢采购管理制度
- 公安机关人民警察内务条令试题库(附答案)
- 南京2025年江苏南京师范大学招聘专职辅导员9人笔试历年参考题库附带答案详解
- 施工导流方案及实施要点
评论
0/150
提交评论