QTP中使用描述性编程

合集下载

QTP脚本编程指导教程

QTP脚本编程指导教程
脚本编程环境
在QTP软件中,用户可以创建脚本项目,设置脚本语 言和运行环境等参数。
QTP脚本编程语言基础
VBScript语言
QTP脚本编程使用VBScript语言,这是一种简单 易学的脚本语言,用于编写自动化测试脚本。
关键字和数据池
QTP提供关键字和数据池功能,用于定义测试数 据和参数化测试用例。关键字可以用于编写条件 判断、循环控制等逻辑语句。
问题3
如何处理异常和错误?
问题4
如何提高脚本的稳定性和可维护性?
QTP脚本编程解决方案
01
解决方案1
使用对象识别器识别动态变化的界 面元素
解决方案3
使用异常处理机制处理异常和错误
03
02
解决方案2
使用条件语句和循环结构实现多步 骤操作的自动化
解决方案4
遵循良好的编程规范,提高脚本的 稳定性和可维护性
01
设计清晰的目录结构,规范测试脚本命名规则,便于测试框架
的管理和维护。
实现测试用例管理
02
使用测试用例库,统一管理测试用例,方便测试用例的复用和
更新。
集成持续集成工具
03
将自动化测试框架与持续集成工具集成,实现自动化构建、部
署和测试。
QTP脚本编程与其他工具集成
与Bug跟踪工具集成
将测试结果与Bug跟踪工具集成,实现Bug 的跟踪和管理。
动态对象识别
对于动态变化的界面元素,QTP支持使用正则表 达式进行对象识别。
QTP脚本编程数据驱动测试
数据驱动测试的概念
数据驱动测试是一种测试策略,通过将 测试数据与测试逻辑分离,提高测试的
复用性和可维护性。
数据参数化
在QTP中,可以使用参数化功能将测 试数据传递给测试脚本,实现动态测

QTP-学习软件测试QTP入门

QTP-学习软件测试QTP入门
化测试。
调试脚本
对脚本进行调试,确保其正 确性和稳定性。
优化脚本
对脚本进行优化,提高其执 行效率和准确性。
03 QTP高级功能
QTP自动化测试框架
QTP自动化测试框架
QTP(Quick Test Professional)提 供了一个强大的自动化测试框架,使 得测试人员能够通过录制和编辑测试 脚本,实现自动化测试。
02
它通过模拟用户操作,对软件界 面进行测试,验证软件的功能是 否正常。
QTP的特点
01
02
03
自动化测试
QTP支持自动化测试,能 够快速、准确地执行测试 用例,提高测试效率。
测试管理
QTP提供了测试管理功能, 能够对测试计划、测试用 例、测试结果等进行统一 管理。
兼容性强
QTP支持多种操作系统和 多种浏览器,能够满足不 同软件平台的测试需求。
QTP-学习软件测试QTP入门
目 录
• QTP简介 • QTP基础知识 • QTP高级功能 • QTP实践案例 • QTP常见问题与解决方案 • QTP未来发展与展望
01 QTP简介
QTP的含义
01
QTP是Quick Test Professional 的缩写,是一款自动化测试工具 ,用于对软件进行功能测试和回 归测试。
QTP性能测试
性能测试基础
QTP提供了性能测试功能,可以帮助测试人员对被测试应用程序 进行负载测试和压力测试。
场景设计
通过QTP的场景设计器,测试人员可以模拟多用户并发访问被测试 应用程序的情况,以检测应用程序的性能表现。
Байду номын сангаас结果分析
QTP提供了丰富的性能测试结果分析功能,可以帮助测试人员快速 定位瓶颈和问题所在。

09C-windows控件

09C-windows控件

1.QTP测试标准Windows对象标准QTP对象是QTP直接支持的对象。

标准Windows对象是指基于Win32API和MFC创建的应用程序。

2.Desktop对象的使用通过Desktop对象,可以访问Windows的桌面对象。

2.1 Desktop 的CaptureBitmap 方法使用CaptureBitmap方法,可以把屏幕对象的截屏保存为图像文件Desktop.captureBitmap “c:\temp.bmp”,true2.2 Desktop 的ChildObjects 方法使用ChildObjects方法,可以获取到某个测试对象中包含的所有对象。

QTP描述性编程(初级的描述性编程)3.Windows控件的基本属性和方法在QTP中,对于各种标准的Windows控件,都提供了一些公共的、通用的基本属性和方法。

例如使用exist 来判断控件是否存在于当前打开的应用程序中。

3.1 使用CheckProperty检查控件属性使用CheckProperty方法可以实现与标准检查点类似的功能。

'描述性编程与录制脚本后再编辑'摆脱对象库的依赖'描述性编程其一“直接描述”其二“使用Description 对象”代码:'描述性编程与录制脚本后再编辑'摆脱对象库的依赖'描述性编程其一“直接描述”其二“使用Description 对象”Dialog("Login").ActivateDialog("Login").WinButton("Cancel").Click。

qtp常用方法

qtp常用方法
1, 获取对话框相应的文字: GetVisible Text
2, 查找相应的字符串: instr (1,查找目标字符串,所查找的字符串)
3, 随机数的获取: Randomnumber.Value() 或cstr(int(Rnd*10)+1)
4, 等待函数: Wait(秒数)
5, 获取数组下标: UBound (数组名)
说明:where FileName is the absolute or relative path of your VBscrīpt file.
例:ExecuteFile("F:\test.vbs")
5.Strcomp函数
作用:比较文本
例:dim strtext1,strtext2,str ,str1,comp1
6, 拆分数组: Split(MyString, ",", -1, 1)
7, 可执行步骤: OptionalStep
8, 报告信息: Reporter.ReportEvent 3, "Save Step", "Out of cycle!"
9, 判断对话框是否存在: .exist
10,事件过滤函数:Reporter.Filter=过滤条件(0,1,2,3),0代表显示所有的error和warning,1,显示error,2,显示waining,3,任何error和warning都不显示。
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("mand")
Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142" '这句话是连接数据库的数据源,要做修改

2.QTP核心功能详解

2.QTP核心功能详解

> QTP为用户提供了两种操作对象的接口,一种就 是对象的封装接口,另一种是对象的自身接口。
> 对象的自身接口是对象控件本身的接口。 > 对象的封装接口是QTP为对象封装的另一层接口,它是 QTP通过调用对象的自身接口来实现的。
> 两种接口的脚本书写格式的差别在于:
> 自身接口需要在对象名后面加object再加属性名或方法 名 > 封装接口就不用在对象名后面加object。

对仓库对象的操作:


对象的封装接口是QTP使用的缺省接口,我们录制出来
的脚本都是使用封装接口,平时用的也都是封装接口。 但是封装接口不如自身接口丰富,因为QTP只是封装了 部分常用的自身接口。 所以我们在需要时,可以绕过封装接口,直接调用对 象的自身接口。
当我们在录制脚本中,有时会遇到某个对象回放时不能
WebEdit一般用来赋值 WebEdit(“WebEdit”).set “XXXX” WebCheckBox:多选框有两种操作 WebCheckBox(“WebCheckBox”).Click WebCheckBox(“WebCheckBox”).Set “on/off” WebRadioGroup WebRadioGroup(“WebRadioGroup”).select “XXX” WebList WebList(“WebList”).select “XXX”

仓库对象TO一般在录制/编写脚本时加入仓库文件,它
不仅可以在录制编写时进行修改,也可以在运行过程 中进行动态修改,以匹配实际对象。 和TO、RO相关的几个函数有:



GetTOProperty() 取得仓库对象的某个属性的值 GetTOProperties() 取得仓库对象的所有属性的值 SetTOProperty() 设置仓库对象的某个属性的值 GetROProperty() 取得实际对象的某个属性的值

QTP工具教程

QTP工具教程

QTP测试工具教程第一部分第一章 QTP 简介1.1自动化测试的好处如果你执行过人工测试,你一定了解人工测试的缺点,人工测试非常浪费时间而且需要投入大量的人力。

使用人工测试的结果,往往是在应用程序交付前,无法对应用程序的所有功能都作完整的测试。

使用QuickTest可以加速整个测试的过程,并且建置完新版本的应用程序或网站后,可以重复使用测试脚本进行测试。

以QuickTest执行测试,就与人工测试一样。

QuickTest会仿真鼠标的动作与键盘的输入,不过QuickTest比人工测试快了很多。

1.2 QuickTest工作流程1.录制测试脚本前的准备在测试前需要确认你的应用程序及QuickTest是否符合测试需求?确认你已经知道如何对应用程序进行测试,如要测试哪些功能、操作步骤、预期结果等。

同时也要检查一下QuickTest的设定,如Test Settings以及Options对话窗口,以确保QuickTest会正确的录制并储存信息。

确认QuickTest以何种模式储存信息。

2.录制测试脚本操作应用程序或浏览网站时,QuickTest会在Keyword View 中以表格的方式显示录制的操作步骤。

每一个操作步骤都是使用者在录制时的操作,如在网站上点击了链接,或则在文本框中输入的信息。

3.加强测试脚本在测试脚本中加入检查点,可以检查网页的链接、对象属性、或者字符串,以验证应用程序的功能是否正确。

将录制的固定值以参数取代,使用多组的数据测试程序。

使用逻辑或者条件判断式,可以进行更复杂的测试。

4.对测试脚本进行调试修改过测试脚本后,需要对测试脚本作调试,以确保测试脚本能正常并且流畅的执行。

5.在新版应用程序或者网站上执行测试脚本通过执行测试脚本,QuickTest会在新本的网站或者应用程序上执行测试,检查应用程序的功能是否正确。

6.分析测试结果分析测试结果,找出问题所在。

7.测试报告如果你安装了TestDirector(Quality Center),则你可以将发现的问题回报到 TestDirector(Quality Center)数据库中。

QTP基础教程

QTP基础教程
qtp自动化测试流程制定测试计划创建测试脚本增强测试脚本执行测试脚本测试结果分析?从认识addinmanager开始?qtp对象识别原理?对象库管理者?对象库模式?共享函数库的加载?脚本编写?描述性编程?qtp环境变量?检查点自动化的关键?qtp自动化测试结果?同步点?如何判断对象识别成功?qtp虚拟对象保留对象?脚本结构solutiontestactionstep间的关系qtp工具基础从认识addinmanager开始qtpaddin即为qtp插件
QTP基础知识培训
目录
QTP工具历史、简介 QTP自动化测试流程 QTP工具基础(重点讲解) QTP支持的脚本语言VBS 正则表达式 自动化常见问题(脚本编写、执行中断、测试结果常见错误)
QTP工具历史、简介
历史
➢ QuickTest Professional 1.0发行于1998年05月,取名为Astra QuickTest仅支持WEB, 它是一种基于图标的功能测试工具,主要用于电子商务领域,可以记录用户动作来简 化并加速测试过程,标价4000美元每个license;
从认识Add-in Manager开始
QTP Add-in即为QTP插件。就是QTP识别不同控件 对象类型的一套标准。
当我们在启动QTP时,QTP会首先弹出一个AddinManager窗口,这个窗口主要提供给自动化测 试人员选择相应的插件。
1、插件的类型: • Web • ActiveX • VB • .Net • WPF •… 2、如何选择插件: • 首先确定被测控件对象类型,然后选择相应的
运行时对象即是被测应用程序中真实存在的控件对象,动态的;
➢ QTP对象识别原理:
• 预期测试对象的识别属性 • 实际运行时对象的识别属性 • 对比预期与实际是否一致 • 若是对比之后可唯一匹配,那么对象即识别成功;反之,则失败。

QTP描述性编程脚本分析

QTP描述性编程脚本分析

的有 效性 使用 . 使脚 本 具有 广泛 性及 代 表性 . 就需 要 述性 编 程思想 注重控 件 的类 型及控 件 的特征 在脚本 中 这
我们 对脚 本进 行描 述性 编 程 .使 脚 本脱 离 或减 少对 对 的描 述 . 通过通 俗易懂 的脚 本 表述 . 构建 被测 软件所 需 象库 文件 的依赖 的对 象元 素 .以编程 的方 式实 现 自动化 测试脚 本并 进 二 、 P脚本 执行 分 析 QT 行测试 。 下面 以 WE B页面 中 go| 图的链 接有效 性 oge地 Q P通 过 选项 设 置 可 以直 接使 用 已有 的对象 库 文 测试 对 Q P描述性 编程 进行 分析 : T T 件 .也可 以在进 行脚 本 录 制时 自动 生成对 象 库描 述 文 通 过 gol og e页面 中 “ 图” 地 文字链 接 的 打开及 整 个 件并 随脚本 一起 保存 .下面 以 Q P对 w n o s自带 的 页 面的关 闭得到 以下脚 本 : T id W 计 算 器 进 行 简 单 的 功 能 测 试 对 Q P的 脚 本 执行 过 程 T 进 行分 析 : 我们 通 过 wn o s 用 程 序 录制 方 式 录 制 1 2 ? id w 应 + : 加法运 算功 能 . 当我 们 停止 录制 时 . 在关键 词 视 图 中会
的 有效 性使 用 , 脚 本 具有 广 泛性 及代 表性 , 就 需要 我们 对脚 本 进行 描 述性 编程 , 脚 本脱 离或减 少对 使 这 使
对 象库 文件 的依 赖。
【 关键词 】 T 脚本 :Q P

对象
编程 Leabharlann 脚 本 中 WiB tn… ’ n ut (1) o 中的 1 为 3 再 次运 行修 改后 改 . Q i T s rf s H lf T uc et oe i a Q P是 新一 代 自动 化 测试 的脚本 . k P s o 当脚本 运行 时会 提示错 误信 息 解 决方 案 .采用 专 家视 图及 关键 词视 图两 种模 式 供用 这说 明 Q P在 进行 脚本 运行 时 .对 窗 口及控 件 对 T

QTP 25个面试题

QTP  25个面试题

1.QTP10.0的特点和优点是什么?2.如何使用QTP场景恢复处理异常?3.QTP中文本输出值的作用是什么?4.如何在QTP8.0版本中使用Object spy?5.在QTP中如何处理运行时的数据(参数)?6.在QTP中什么是关键字视图和专家视图?7.解释QTP测试融合报告?8.QTP的支持哪些环境?9.什么是QTP?10.解释QTP的测试过程11.解释QTP工具界面12.QTP是如何在被测系统中识别对象的?13.在QTP中对象库的类型是什么?14.解释在QTP检查点15.使用QTP在应用程序中添加检查点,有多少种方法?16.QTP如何识别应用程序中的对象?17.什么是参数化测试?18.QTP测试对象模型是什么?19.在QTP中,什么是Object Spy?20.图像检查点和位图检查点之间的区别是什么?21.在QTP中,有多少种方法对数据参数化?22.怎样做可以使用WR进行批量测试及是否能在QTP中这样做?如果可以的话,解释。

23.如果给你一个测试,让你在2天内执行万余次测试,你会怎么做呢?24.跟19题一样25.在QTP中代码文件的扩展名和对象库文件的扩展名是什么?26.解释对象库的概念以及QTP如何识别对象27.给我一个你在QTP项目中使用COM接口的例子?28.简要解释QTP自动化对象原理。

3、QTP有哪几种录制模式?4、QTP如何对下拉框中的数据进行参数化?5、用QTP录制脚本后如何修改脚本能够增加其灵活性?6、如何设置使对象库不产生重复对象7、如何修改共享对象库中的值并使之生效?8、Action1中参数传递到Action2中有哪几种方式,请分别加以说明。

9、正则表达式:\(?0\d{2}[) -]?\d{8}表示什么内容?10、请将下面操作用另外一种描述性编程实现(通过Description对象): Window("Error").WinButton("text:=OK", "index:=1").Click三、QTP脚本开发题(30分):1、如果运行Fight4a的登录脚本前(脚本中需要QTP自动打开登录框),被测对象已经存在多个(如图),这将导致后续步骤出错,如何能够先将已经打开的登录框关闭再执行登录,请将脚本中关闭多余登录框功能补充完整。

QTP-描述性编程

QTP-描述性编程

QTP-描述性编程描述性编程:1、QTP的描述性编程能够摆脱测试对象库的限制,编写出更为复杂、适应能⼒更强的测试脚本。

2、即不需要在仓库晨定义,也能访问和操作实际对象。

3、⽤描述性编程编写的测试脚本在运⾏时,QTP会使⽤测试脚本中给出的对象描述来查找对象,查找的位置不是对象库,⽽是与测试程序运⾏运⾏时QTP为其创建的测试对象版本过⾏匹配。

4、QTP提供了两种描述性编程的开发⽅式,⼀种是“直接描述性”的⽅式,另⼀种是使⽤“Description”对象的⽅式。

例⼦:以Flight飞机订票系统的登陆界⾯为页⾯进⾏描述的'录制脚本Dialog("Login").WinEdit("Agent Name:").Set "mercury"Dialog("Login").WinEdit("Password:").SetSecure "57e67e33ffdde8714dc762b2c1086326f59a21ca"Dialog("Login").WinButton("OK").ClickWindow("Flight Reservation").Close'初级描述性编程Dialog("text:=Login").WinEdit("attached text:=Agent Name:").Set "mercury"Dialog("text:=Login").WinEdit("attached text:=Password:").SetSecure "57e67e33ffdde8714dc762b2c1086326f59a21ca"Dialog("text:=Login").WinButton("text:=OK").ClickWindow("regexpwndtitle:=Flight Reservation").close'在这⾥要注意有三点:'1)如果需要两个以上特性来描述⼀个对象,需要使⽤逗号(,)对描述性语⾔进⾏分割'2)使⽤:=来连接属性和属性值,并且:=两边不能有空格'3)使⽤SPY查看对象的属性名和属性值(Tools -> Object Spy)'对象型描述性编程Dim descEditLoginSet descEditLogin = Description.Create()descEditLogin("Class Name").Value = "Dialog"descEditLogin("Regexpwndtitle").Value = "Login"Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "mercury"Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury"Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=OK").Click使⽤⾃定义的环境变量在File>>Settings>>Environment中选择user-defined,增加⼀个变量 dlgLogin = “Login” 这样脚本可以被修改为:Dim descEditLoginSet descEditLogin = Description.Create()descEditLogin("Class Name").Value ="Dialog"descEditLogin("Regexpwndtitle").Value =Environment.Value("dlgLogin")Dialog(descEditLogin).WinEdit("Attachedtext:=Agent Name:").Set "Holly"Dialog(descEditLogin).WinEdit("Attachedtext:=Password:").Set "Mercury"Dialog(descEditLogin).WinButton("ClassName:=WinButton", "text:=Cancel").Click当然,参数化的⽅式很多,这边介绍的是使⽤环境变量从XML⽂件导⼊环境变量,可以使⽤⼿⼯导⼊,也可以使⽤LoadFromFile⾃动导⼊<Enviroment><Variable><Name>dlgLogin</Name><Value>Login</Value></Variable></Environment>总结:优点是当对象的⼀些属性变更后,脚本更容易维护。

软件功能测试--习题&答案

软件功能测试--习题&答案

软件测试拟笔试题注:如无特殊说明,试卷中涉及工具均为QTP。

一、选择题(8分):1、模块的耦合度描述了______。

A.模块内各种元素结合的程度B.模块内多个功能之间的接口C.模块之间公共数据的数量D.模块之间相互关联的程度2、内聚是一种指标,表示一个模块______。

A.代码优化的程度 B.代码功能的集中程度C.完成任务时及时程度 D.为了与其他模块连接所要完成的工作量3、在UNIX操作系统中,把输入/输出设备看作是______。

A.普通文件B.目录文件C.索引文件D.特殊文件1) 普通文件——内部无结构的一串平滑的字符.这种文件既可以是系统文件,也可以是库文件或用户文件.(2) 目录文件——由文件目录项构成的文件.对它的处理(读,写,执行)在形式上与普通文件相同.(3) 特殊文件——由一切输入输出慢速字符设备构成的文件.这类文件对于查找目录,存取权限验证等的处理与普通文件相似,而其它部分的处理针对设备特性要求做相应的特殊处理.4、“<title style="italic">science</title>”是一个XML 元素的定义,其中元素标记的属性值是______。

A.title B.style C.italic D.science5、______描述数据的局部逻辑视图,是数据库用户的数据视图,它是与某一应用有关的数据逻辑表示。

A.模式B.逻辑模式C.外模式D.内模式三级模式结构:外模式、模式和内模式一、模式(Schema)定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

理解:①一个数据库只有一个模式;②是数据库数据在逻辑级上的视图;③数据库模式以某一种数据模型为基础;④定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

QTP提升学习指导

QTP提升学习指导

QTP逐步提升学习指南一、基础学习1 、需要掌握的基础:vbscript编程、QTP自带的库函数2、需要准备的资料:vbscript中文帮助文档、QTP自带的帮助文档3、心理准备:QTP的帮助文档基本都是全英文的,因此要有良好的英语阅读能力,至少要有看到英语不怕的素质,我们可以装上金山词霸,随时查阅。

4、学习的过程:安装QTP、熟悉QTP的界面、进行基础设置、录制第一个脚本、运行;5、QTP脚本调试常用:msgbox调试某个部分的输出、断点调试、F11单步运行6、修改录制好的脚本,以达到自己想要的效果。

二、稳步提升1、对象:抓取对象、修改名称、管理对象树2、根据抓取的对象,不使用录制功能,独立写脚本;3、调试、运行脚本三、高级编程该部分主要以个人的一些想法作为题材,大家可以自由发挥、努力尝试1、入门1.1 编写导入一张excel表的一个sheet到QTP的datatable的脚本1.2 编写点击网页的某个链接或button自动启动QTP,执行某个Tests1.3 综合1、2即写一个Tests,其需要输入的信息由excel的sheet进行配置。

启动QTP,读取配置的值,执行Tests。

2、深入2.1 vbscript编写输出一个完整的html文档2.2 查询QTP帮助文档,了解QTP的错误报告2.3 运行一个Tests,输出错误报告3、邮件系统3.1 QTP编程实现向指定邮箱发送邮件3.2 执行Tests,将错误报告以邮件的形式发出3.3 整理错误报告样式,增强错误报告的可阅读性初学测试工具的QTP的一点总结QTP自动化测试工具有三种编程方式:非描述性编程、纯描述性编程和description描述性编程。

非描述性编程:模拟用户操作,保存操作对象到对象库,测试脚本运行时从对象库查找对象,找到后,对对象执行某种动作的过程。

纯描述性编程:描述唯一识别对象的属性值,保存脚本时,对象被保存到临时文件,测试脚本运行时从临时文件中查找对象,找到后,对对象执行某种动作的过程。

QTP基础

QTP基础

QTP实现自动化原理
Company Logo
QTP基础
对象库
Company Logo
对象库
对象库中的对象可以在录制过程中自动产生,也可 手动添加指定对象 对象库分别本地对象库和共享对象库,区别是:
本好对象库只应用于本地Action调用 共享对象库以.tsr扩展名文件形式存在,可以被其 它Action调用
QTP基本功能介绍
用30分钟对QTP的功能进行快速预览
Company Logo
QTP基础
QTP实现自动化原理
Company Logo
QTP实现自动化原理
QTP主要采用的是使用GUI模拟人的操作。它在模拟人的操作时会记录操作的对象及 所做的操作和顺序,然后在回放时按记录顺序操作这些对象。而在这个模拟的过程中, 最重要的莫过于界面对象(控件)的识别,那QTP是怎么做的呢?下面就举一个小例子 来说明: 用户名和密码是否能成功登录。登录界面如下:
Company Logo
QTP基础
描述性编程
Company Logo
QTP中Description对象使用
描述性编程(descriptive programming) 1、descriptive programming概述 通常情况下,当在录制一个操作时,QTP会将被操作对象加入到对象库里 (Object Repository)。一旦对象存在于对象库里,我们就可以在专家视 图里通过添加相关的对象方法来对该对象进行操作。我们可以通过引用层次型 对象库里的对象描述(Object Description)来添加相应的方法。 因为QTP对象库中的每个对象都具有唯一名称,所以在引用时对象名是必 须需要指定的。然后在测试运行期间,QTP在对象库中根据这个对象的名称和 父对象来查找对象,并使用为这个测试对象存储的测试对象描述,在网站或应 用程序中标识该对象。 例如我们用QTP录制Yahoo Mail登录情况时我们需要输入用户名,于是 在录制时我们就会录下一个WebEdit对象,它的缺省逻辑名为 “login”,该 编辑字段位于名为“Yahoo! Mail - The best” 的页面上,并且该页面在浏 览器中使用名称Yahoo!进行录制。 那么如果我们想要应用该对象,就可以在专家视图输入以下信息: Browser("Yahoo!").Page("Yahoo! Mail - The best").WebEdit("login").Set “xxx” 或者我们也可以调用一些方法, 获取改对象在运行时的对象名,如: Browser("Yahoo!").Page("Yahoo! Mail - The best").WebEdit("login").GetROProperty(“name”)

QTP对象识别原理与对象操作机制

QTP对象识别原理与对象操作机制

QTP对象识别原理与对象操作机制QTP(QuickTest Professional)是一款功能强大的自动化测试工具,可以用于测试Web、桌面和移动应用程序。

在使用QTP进行测试时,需要先了解其对象识别原理和对象操作机制。

QTP的对象识别原理主要基于对象的属性和方法。

当打开或录制一个测试用例时,QTP会自动创建一个对象层次结构。

对象层次结构是一个树状结构,描述了应用程序中的各个对象及其关系。

从根节点开始,每个对象都有唯一的属性和方法,用于标识和操作该对象。

1. 识别测试对象:QTP通过Object Repository(对象仓库)中的测试对象来识别应用程序中的对象。

对象仓库是一个存储测试对象的集合,包含了所有在测试中使用的对象。

3.确定测试对象的层次关系:QTP通过测试对象的属性和父对象来确定对象的层次关系。

每个对象都有一个或多个父对象,形成了一个对象层次结构。

4.根据对象层次结构进行操作:QTP使用对象层次结构中的对象来执行测试用例。

根据对象的属性和方法,可以对对象进行操作,如点击、输入、选择等。

QTP的对象操作机制主要包括对象定位和对象操作两个方面。

对象定位是通过对象的属性找到测试对象,而对象操作是使用对象的方法对测试对象进行操作。

1.对象定位:QTP提供了多种对象定位技术,包括智能对象识别、正则表达式、描述性编程等。

通过这些技术,可以根据对象的属性来定位测试对象。

智能对象识别是QTP的默认定位技术,它使用对象的属性和层次关系来定位对象。

正则表达式可以用于匹配对象的属性值,而描述性编程则可以根据对象的描述信息来定位对象。

2.对象操作:一旦定位了测试对象,就可以对其进行操作。

QTP提供了丰富的操作方法,包括点击、输入、选择、验证等。

可以根据测试需求选择适当的方法来执行操作。

例如,使用Click方法可以模拟用户点击一个对象,使用Set方法可以输入一个值,使用Select方法可以选择一个选项等。

QTP还提供了对象仓库维护和对象识别配置等功能,用于管理和配置测试对象。

基于WEB的系统测试复习题

基于WEB的系统测试复习题

《基于WEB的系统测试》试题题库一、选择题(每题2分,可以单选、多选,错选、漏选不得分,共30分)1.WEB的功能测试包括(ABCD)。

A.测试B.表单测试C.数据校验D.Cookies 测试2.Cookies 测试的主要容是(ABD)。

A.Cookies是否正常工作B.Cookies是否按预定的时间进行保存C.Cookies是否美观D.刷新对Cookies 有什么影响3.导航测试的主要容(ABD)。

A.导航是否直观B.主要部分是否可以通过主页访问C.导航是否美观D.是否需要站点地图、搜索引擎4.图形测试的主要容(ABCD)。

A.确保图形有明确的用途B.图片的大小和质量是否合宜C.背景颜色应该与前景颜色相搭配D.页面字体的风格是否一致5.容测试的目的用来检验Web 提供信息的(ABD )。

A.正确性B.准确性C.时效性D.相关性6.整体界面测试应考虑(ABD)因素。

A.舒适感B.层次、重点要突出C.功能完整性D.风格是否一致7.可用性测试包括(ABCD)。

A.导航测试B.图形测试C.容测试D.整体界面测试8.功能测试包括以下容(ABC )。

A.数据库测试B.特定的功能需求测试C.设计语言测试D.兼容性测试9.数据库测试主要针对以下容(ABD )。

A.数据一致性B.网络传输速度引起输出错误C.设计语言测试D.程序设计问题引起输出错误10.测试在网页测试的基础之上还包括(ABCD)。

A.功能测试B.性能测试C.安全性测试D.兼容性测试11.基于WEB系统的功能测试包括(ABD)。

A.数据库测试B.设计语言测试`C.失败测试D.特定的功能需求测试12.基于WEB的性能测试包括(ABC )。

A.压力测试B.连接速度测试C.负载测试D.分析结果13.基于WEB负载测试容包括(BD )。

A.每秒的响应时间B.某个时刻同时访问Web 系统的用户数C.在线用户量D.在线数据处理的数量14.如一个订货系统,尝试单个用户可能进行的所有操作有(ACD )。

QTP自动化测试教程

QTP自动化测试教程

自动化测试新手上路一、初识庐山真面目自动化测试离不开工具,我们首推测试界声名显赫的“QuickTest Professional 10.0”,简称QTP。

至于推荐他的理由,大家可以到网上一搜便知。

1、安装QTP首先第一个环节便是介绍:如何安装这个让人爱不释手的工具—QTP。

1、找到工具:途径有两个,一个是拿着U盘找安装过的同事copy;另一个是到测试部共享的工具服务器上下载,地址:\\10.1.145.152\测试部\Tools,文件名为:QTP10 安装文件.rar。

推荐,第一个途径,能够又快又准确的找到你想得到的东西,并且在联络感情之余可以随便请教安装与试用之道,当然这一定要看当事人是否有这个时间。

如果人家没有这个时间也别急,请耐心看完此文档。

2、检查安装环境:a)C盘空间:因为我们推荐将QTP安装在C盘,所以请检查C盘是否有足够的空间,安装完的QTP大概640M左右。

b)是否有病毒:建议杀一下病毒,之前有同事因为病毒安装不成功的案例。

c)暂时关掉某些杀毒软件:例如已知的杀毒软件“诺顿”、“卡巴斯基”。

原因是这两个杀毒软件会将我们的特别文件当做病毒给杀掉,无法顺利安装试用QTP。

d)检查IE版本:理论上QTP是支持IE6、7、8的,但IE8需要另下补丁,IE7也遇到一些不可理喻的问题,所以在安装QTP之前烦请将IE7或8卸载,降至IE6。

3、开始安装。

得到安装文件后,解压,点击“”,一路下一步,注意:开始有一个步骤需要安装QTP需要的组件,一个是“.net framework 2.0”和一个关于C++的东西,不能跳过,必须安装。

直到见到如“图一”的页面,停下来确认是否能够上外网。

最好是能够联网安装,因为这一步有一个“下载并安装脚本调试器”,由于不明确这个调试器是个什么东西,也就没找到相关的安装包。

不安装此调试器的直接后果是,无法调试你编的QTP脚本,很麻烦。

图一:其他安装需求如果实在不能联网安装,则将“下载并安装脚本调试器”前面的复选框取消勾选即可以继续安装,待能够上外网的时候再说(重新打开此页面的位置在:开始→程序→ QuickTest Professional→Tools→Additional Installation Requirments),其他三项必须保留选中,然后点击【运行】按钮。

QTP操作基本教程

QTP操作基本教程

QTP操作基本教程QTP(QuickTest Professional)是一款由惠普公司研发的自动化功能测试工具,用于测试Web、桌面和移动应用程序。

QTP具有强大的脚本录制和回放功能,使得测试人员可以快速创建和执行自动化测试脚本。

本文将介绍QTP的基本操作教程,包括工作环境设置、录制与回放脚本、调试和修改脚本等内容。

第一步:安装和设置QTP2.启动QTP,创建一个新的测试工程。

3.在“测试资源”面板中添加需要测试的应用程序。

4.设置对象识别设置,以便QTP能够识别应用程序中的各种对象。

第二步:录制和回放脚本1.点击“录制”按钮,选择录制模式(标准、关键字或混合模式)。

2.在录制过程中,操作应用程序以执行测试用例。

3.在录制结束后,停止录制并保存脚本。

4.回放脚本以验证应用程序的功能是否正常。

第三步:修改和优化脚本1.检查录制生成的脚本,确保所有操作都正确识别和执行。

2.如有必要,手动添加断言和验证点来验证应用程序的输出结果。

3.修改脚本以确保它可以适应不同的测试场景。

4.优化脚本以提高执行效率和准确性。

第四步:调试脚本1.使用调试工具来逐步执行脚本并查看每个操作的执行情况。

2.在调试过程中,观察应用程序和测试对象的状态,以确定问题出现的原因。

3.使用断点和监视点来暂停脚本的执行并检查变量和对象的值。

4.修复脚本中的错误和问题,并重新执行。

第五步:扩展脚本功能1.使用QTP提供的函数库来实现更复杂的测试逻辑和操作。

2.添加循环和条件语句来实现多次重复和分支执行。

3.封装重复使用的代码段为函数或动作,以提高脚本的可重用性。

4.使用数据驱动测试的技术,让脚本可以从外部数据源读取测试数据。

第六步:生成和分享测试报告1.设置测试运行参数,如执行时间、测试环境等。

2.执行测试脚本,并在执行过程中监测测试进度和结果。

3.生成测试报告,包括测试用例的执行情况、错误和警告等信息。

4.将测试报告分享给项目团队和相关利益相关者,以便他们了解测试进度和结果。

无法识别对象的解决办法

无法识别对象的解决办法

问题一:Cannot Identify ObjectQTP运行时报错说无法识别对象,如果你的对象在对象库里面本身存在但还报出这个错误,这就表示仓库中对象的描述与程序中对象的描述一定存在着差异。

解决对象描述问题的第一步是找到差异,最简单的方法是将仓库(Object Repository)中对象的属性值与程序中对象的属性值(用Object Spy查看)进行比较。

比较的结果:一.如果仓库和程序中对象属性有差别,两种情况1.如果同类对象都存在此问题,则可在Object Identification对话框中改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。

2.如果是单个对象存在此问题,则可以按照以下方法解决a.如果被测程序中对象描述发生了改变,并且你也清楚改变的内容,并且该改变是永久性或长期性的,你可以直接手工修改仓库中对象描述中的相关属性值。

b.如果被测程序中的对象的属性值依赖于前面的步骤或其它对象,则将该属性值参数化,这样就可以使用其它步骤的输出值为属性值。

c.如果属性值的组成部分中,部分是固定的,部分是动态改变的,则可以将属性值设计为正则表达式。

d.如果属性值是遵循某种规则变化的,或者是不可预期的,则从对象描述中移除该属性,并向对象描述中添加一个或多个属性以便于QTP进行对象识别。

e.将仓库中相应的对象删除,采用描述性编程的方式来识别对象;(实践证明此方法最好用)二.如果仓库和程序中对象属性无差别,则说明这个错误可能与它的父对象有关(如仓库中父对象的属性值与程序中父对象的属性值不一致),也可能是仓库中的对象与程序中对象的继承关系不相同导致的。

判断继承关系中哪个父对象出现问题的两种方法如下:1. 通过重新录制对象,检查到新旧对象是父对象的描述存在不同,还是它们的继承关系根本就不同。

(1)如果是父对象的描述问题,则在对象仓库中修改父对象的描述。

精通QTP——自动化测试技术领航

精通QTP——自动化测试技术领航

1.3.5总结本章节的内容主要讲的是QTP的录制与回放,市面上,任何一本书都会有这部分的内容。

但是,作者对这部分内容进行了提炼,把其他书里的那些几乎等于QTP工具介绍的内容全部剔除,因为那些内容在实际的项目应用中几乎不会用到,保留了能切实在项目中用到的内容,通过自己的实战经验配合大量案例、实例(几乎每一个知识点都有例子)进行细致地讲解,希望读者在学习了本章后,能对QTP这个自动化测试工具的操作,以及如何把工具融合实际项目上有个整体的把握。

虽然剔除了很多不需要的内容,但是,由于介绍的是QTP的源头(就好比本章节标题一样“QTP的开关”)而且配合了大量的实例,图文并茂,所以在完成本章节的编写后才发现原来还是需要用到那么大的篇幅才能将重要的知识点讲清楚、讲透。

在设计练习题的方面,作者思虑许久,考虑到本章节内容的性质,决定在本章节的巩固练习题中不设置实际操作题,本章节的练习题如果要出成操作题,无非就是传统的“录制与回放”,这样就会不由自主地偏离作者的原有思想。

所以,作者决定以选择题(单选和多选)、判断题、排列题等各类有趣的形式出一份类似Exam一样的概念理论题,这些所谓的理论题其实是对整个章节内容知识点的贯穿,希望能起到巩固与复习的作用。

知识点巩固和举一反三练习一、知识加强巩固趣味题之过5关(注:选择题可能是单选也可能是多选)1、<排列题> 请排列QTP业务操作及执行流程的顺序。

()A、录制B、打开浏览器C、回放D、打开Q TP2、<选择题> QTP的两种脚本运行模式分别是Normal 和Fast,它们之间的区别是什么?请在下面4个选项中做出正确的选择。

()A、以QC调用的方式执行脚本,运行模式是Fast。

B、脚本运行时,如果左侧有黄色箭头,则代表这种运行模式是Fast。

C、Normal运行模式的执行速度最快。

D、可以在Normal运行模式中设置间隔时间,单位是毫秒。

3、<选择题>请在以下4个选项中选择正确的选项。

QTP学习笔记

QTP学习笔记

一、QTP概述1、对象库模式1. 录制的时候,QTP将我们操作过的所有对象都记录下来,保存在对象库object repository中,记录的形式是一个逻辑名加上若干识别属性。

2. 运行脚本时,QTP分析该脚本要执行那个对象的操作,然后根据该语句中的逻辑名,在对象库中查找该对象的详细记录,然后在运行的真实软件中按图索骥,找到需要操作的对象,把语句规定的操作施加在该对象上.施加的主要动作就是把操作的相关消息时间放入到该对象窗口的消息循环队列中。

3. 所以QTP其实是通过封装被测对象到对象库,在使用对象库里的对象进行操作时,QTP会吧对象库里的对象和运行时的真实被测对象进行对比,在对比一致后找到相应的对象,QTP就能操作真实的被对象了。

Add-in 的选择是为了能够成功识别对应Add-in的测试对象控件,也就是说是和被测控件有关,而跟什么什么语言写的是没有关系的。

对象库是在自动化测试过程中非常重要的一个环节,但是对象库在使用其实也分为两种模式:1)本地模式2)共享模式本地模式其实就是qtp默认的单个Action模式,它的优势就是可直接更新对象,并且当改变对象名之后当前脚本可以自动更新对象名,缺点也很明显测试脚本一多容易出现很多重复对象,而且维护比较麻烦,团队开发时容易出现混乱。

使用方法:打开一个脚本并输入快捷键Ctrl+R打开对象库,此时的对象库就是本地action。

共享模式是一种可以共享给所有脚本的的模式,它的优势也是很明显适合团队开发,在大量测试脚本中不容易出现重复对象,维护对象属性比较容易,缺点是修改对象名(这里的对象名指的是qtp封装的对象名称,而非对象的name属性)后不能对所有使用其修改对象的脚本进行自动更新。

使用方法:打开一个脚本后,进入菜单栏Rescouces –> Associate Repositories, 点击“+”添加Tsr 对象库文件(可由对象库中进行导出),并选择相应的Actions点击ok即可。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

QTP中使用描述性编程QTP知识库2010-06-09 17:26:12 阅读26 评论0 字号:大中小订阅我们简单介绍一下有关功能测试的基本方法,这实际上对于所有自动化功能测试产品来说都是一样的。

一般情况下,用QTP来进行功能测试的基本方法主要包括三个主要阶段:1、创建测试或组建首先可以通过在应用程序或网站上录制会话,或者建立对象库并使用关键字驱动功能向关键字视图中手动添加步骤来创建测试或组件。

在QTP里面我们可以通过两种方式添加步骤来创建测试或组件:在应用程序或网站上录制会话。

建立对象库并使用这些对象在关键字视图或专家视图中手动添加步骤然后在在测试或组件中插入检查点,检查页面、对象或文本字符串中的特定值或特征,通过它可以标识网站或应用程序是否正常运行。

或是通过用参数替换固定值扩展测试或组件的范围。

提供数据表中的数据,定义环境变量和值,定义测试、组件或操作参数和值,或者使用QTP生成随机数字或当前用户和测试数据等。

最后如果需要的话使用QTP中众多的功能测试功能来增强测试或组件或添加编写语句来实现更复杂的测试目标。

2、运行测试和组建控制运行会话,帮助标识和消除测试或组件中的缺陷。

使用“单步执行”、“单步跳过”和“单步退出”命令逐步运行测试或组件,或设置断点使测试或组件在预定点暂停。

每当测试或组件在断点处停止时,可以在“调试查看器”中查看其变量的值。

3、分析结果在运行测试或组件之后,通过两种方式可以查看其结果:在“结果”窗口中查看结果;自动报告在运行会话过程中检测到的缺陷,可能的话并上报到其他缺陷管理产品中。

.试图与对象模型在介绍QTP中的Descriptive Programming前,我们有必要先介绍一下ExpertView及在ExpertView里进行编码的一些基本知识。

在QTP里面提供了两种视图,第一种我们把它称为KeywordView(关键字视图,在早期的版本中称为TreeView),第二种把它成为ExpertView(专家视图),这两种视图分别是针对两种类型的人进行使用的。

1、KeywordView(关键字视图)通过关键字视图,QTP提供了一种模块化的表格格式创建和查看测试或组件的步骤。

每个步骤在关键字视图中都是一行,这样用户可以轻松的修改任何一部分组成。

在录制会话过程中,用户在应用程序上执行的每个步骤在关键字视图中记录为一行。

例如,在51testing的页面上执行的下列三个步骤:在“用户名”编辑框中输入zhoda02。

在“密码”编辑框中输入加密字符串41c630a213508cd49eb35089db1b893144b9。

单击“登录”按钮。

那么,关键字视图将包含下列行:很显然,关键字视图非常直观有效,使用的人可以很清晰的看到被录制对象的录制层次及运行步骤,比较适合那些对于业务操作流程熟悉的人员使用。

但是,如果需要一些增强型的操作,那就需要切换到专家视图里进行了。

2.ExpertView(专家视图)QTP在关键字视图中的每个节点在专家视图中对应一行脚本。

上面例子对应的脚本如下:(删除后一句是因为前后重复,一句可以说明问题)Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebEdit("username").Set "zhoda02"Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebEdit("password").SetSecure "41c630a213508cd49eb35089db1b893144b9"Browser("51Testing软件测试网:软件测试的专业网站").Page("51Testing软件测试网:软件测试的专业网站").WebButton("登录").Click对于QTP来说,其核心编码语言是V isual Basic Script,因此,如果用户熟悉VBScript,可以运用自如的添加和更新语句,并通过编程方式增强测试和脚本,而这一切必须在专家视图中完成。

更为重要的是,有些操作是必须在专家视图中才可以完成的,例如:要处理动态对象、客户化报告、获取对象运行时的属性值(Run-time V alue)等等,这些都必须通过专家视图中的VBScript编码完成。

然而,QTP里所有的操作都是基于对象进行的,所以我们必须对对象模型有一个基本了解,才可以在专家视图内进行Descriptive Programming。

3、测试对象模型测试对象模型是一大组对象类型或类,QTP用这些对象类型或类来表示应用程序中的对象。

每个测试对象类都有一个可以唯一标识属于该类的对象的属性列表,以及一组QTP可以对其进行录制的方法。

它包括测试对象(Test Object)和运行时对象(RunTime Object)。

测试对象是QTP在测试或组件中创建的用于表示应用程序中的实际对象的对象。

QTP存储有关该对象的信息,这些信息有助于它在运行会话期间标识和检查该对象。

运行时对象是网站或应用程序中的实际对象,在运行会话期间执行针对该对象的方法。

如果录制时执行应用程序的相应操作,则一般情况下QTP将完成以下操作:标识QTP测试对象类(表示执行了操作的对象),并创建相应的测试对象读取应用程序中对象属性的当前值,然后将属性和属性值列表与测试对象一起存储。

选择该对象的唯一名称,一般使用该对象某个重要属性的值。

使用适当的QPT 测试对象方法录制对对象执行的操作。

例如,假定使用以下HTML 源代码单击“查找”按钮:<INPUT TYPE="submit" NAME="Find" V ALUE="Find">QTPl将单击的对象标识为WebButton 测试对象。

它将创建一个名为Find 的WebButton 对象,然后为该Find WebButton 对象录制下列属性和属性值,同时还会录制对WebButtion的Click方法。

在关键字视图及专家视图中显示内容分别为:Browser("Mercury Interactive").Page("Mercury Interactive").WebButton("Find").Click运行测试或组件时,QTP通过其测试对象类及其描述(一组用于唯一标识该对象的测试对象属性和属性值)来标识应用程序中的每个对象。

测试对象及其属性和属性值的列表存储在对象库中。

例如在上例中,QTP将在运行会话期间在对象库中搜索WebButton 对象,通过名称Find 来查找其描述。

QTP根据找到的描述,在应用程序中查找WebButton 对象,该对象带有HTML 标记INPUT、类型为submit、值为Find。

找到对象后,它将对其执行Click 方法。

在这样一组对象模型的基础上,QTP为各类应用对象都提供了一组方法和属性,例如Web Objects,Windows Objects,SAPGUI Objects,ActiveX,Java等。

下面是一些Web Objects 的方法和示例:对象方法BrowserCheckFrameClickImageExistLinkGetCellDataPageGetPropertyWebAreaGetROPropertyWebButtionMouseoverWebCheckBoxRowCountWebEditSelectWebListSetWebRadioGroupSetPropertyWebTableSubmit例1:获取单元格中的值thisText = Browser(…).Page(…).Frame.(…).WebTable("sample").GetCellData(2,1)例2:获取图片的名称ObjectName = Browser(…).Page(…).Image("Find").GetProperty("Name")例3:检查某个对象是否存在,如果存在弹出对话框说明对象存在。

If Browser("Browser").Page("Page").Applet("login.html").JavaEdit("username").Exist Then MsgBox("The object exists.")End if.描述性编程(descriptive programming)1、descriptive programming概述通常情况下,当在录制一个操作时,QTP会将被操作对象加入到对象库里(Object Repository)。

一旦对象存在于对象库里,我们就可以在专家视图里通过添加相关的对象方法来对该对象进行操作。

我们可以通过引用层次型对象库里的对象描述(Object Description)来添加相应的方法。

因为QTP对象库中的每个对象都具有唯一名称,所以在引用时对象名是必须需要指定的。

然后在测试运行期间,QTP在对象库中根据这个对象的名称和父对象来查找对象,并使用为这个测试对象存储的测试对象描述,在网站或应用程序中标识该对象。

例如我们用QTP录制Y ahoo Mail登录情况时我们需要输入用户名,于是在录制时我们就会录下一个WebEdit对象,它的缺省逻辑名为“login”,该编辑字段位于名为“Y ahoo! Mail - The best” 的页面上,并且该页面在浏览器中使用名称Y ahoo!进行录制。

如图所示,即为录制时的对象库的内容:那么如果我们想要应用该对象,就可以在专家视图输入以下信息:Browser("Y ahoo!").Page("Y ahoo! Mail - The best").WebEdit("login").Set “xxx”或者我们也可以调用一些方法,获取改对象在运行时的对象名,如:Browser("Y ahoo!").Page("Y ahoo! Mail - The best").WebEdit("login").GetROProperty(“name”)然而,我们可以发觉到,上面的例子在处理对象时,对象已经存在于对象库里,因此我们可以应用这个对象的逻辑名。

相关文档
最新文档