- 1.正常录制模式
- 2.模拟录制模式
- 3.低级录制模式
QTP 里的对象有两个概念.一个是 Test Object (简称 TO). 一个是 Runtime Object (简称 RO}。
TO 就是是仓库文件里定义的仓库对象,RO 是被测试软件的实际对象"QTP 识别对象,一般是要求先在对象仓库文件里定义仓库对象,
里面存有实际对象的特征属性的值。然后在运行的时候,QTP 会根据脚本里的对象名字.在对象仓库里找到对应的仓库对象,
接着根据仓库对象的特征属性描述,在被测试软件里搜索找到相匹配的实际对象,最后就可以对实际对象进行操作了。
其中仓库对象 TO —般在录编写脚本时加入仓库文件,它不仅可
以在编写时逬行修改,也可以在运行过程中进行动态修改,以匹配实
际对象。
答案:1)加入所有控件方法:打开 QTP,点击 Resources 菜单->object Repositories (对象库)->add object{手型图标点击计算器的标题}
->allobject types->ok;
2)将加入的控件导出可以使用共享对象库功能,点击当前。oject Repositories ->File ->点击 Export local Objects.可将当前对象库导出
成扩展名为.tsr 共享对象库,以供其他脚本或其他 Action 使用。
1)QTP 的 Tools-Options-Run 的"Alow other Mercury products to run tests and componets"选项要打勾;
2)在 QTP 脚本中设置事务,Services.StartTransaction “start"与 Services.EndTransaction “start",把需要在 LR 运行的脚本放在此事务里面;
3)在 LR 中运行时选择 QTP 脚本,文件扩展名为.usr 的;
4)在 LR 中运行 QTP 脚本时,要把 QTP 关闭;
5)只能在 LR 的 Controller 中运行;不能在 Virtual User Generator 中打开及回放;
6)LR 要使用 global 的 license,单单 WEB 的 license 不行,会报错;
7)Controller 运行中,只能执行 1 个虚拟用户,大于 1 个以上的模拟用户会提示错误;并发会报措。
8)如果需要运行多个用户,只能在 QTP 脚本里设置循环及参数化来解决。
1)登录 TD 主页面,进入 add_in page->more testdirector add_ins 选
择项-,下载连接 QTP 的插件,并安装。
2) 打开 QTP 脚本,在界面工具栏中点击"quality center connection"
按钮.'server url 中输入 TD 的地址,"project connection"中各项按 TD
中的配置添加
3) "tools-Options-“run"选项卡-勾选 “submit a defect to quality center
for each failed step”,“allow other mercury products to run tests and
components”
4 ) 登 录 TD 在 “REQUIREMENTS” 选 项 卡 中 添 加 测 试 项 目 ,
在 ”TESTPLAN” 选 项 卡 中 添 加 测 试 计 划 , 并 将 两 项 内 容 在
"REQUIREMENT"中关联起来。
5)将 QTP 中录制好的脚本保存到 TD 相应的项目下.并将其关联到
TD 的测试集中,即可便用 TD 运行该脚本
答案;1)数据驱动测试(使用 QTP 的 Data Table 参数化、Action 参数化、环境变量参数化等脚本参数化的方法)。
2) 将可重用的操作抽象出来,封装成方法,这样通过传递不同的操作我们就可以完成不同的软件行为;(Action 的复用)
3) 将测试脚本与测试数据文件分离开来,这样一个脚本就可以驱动不同的测试数据进行测试;
4)在对象识别上,应该将对象识别的过程和对象的特征相分离,避免将所有的脚本都线性化的写到一起,提高脚本的可维护性。
答案:QTP 中 Object Spy 作用:査看对象.在査看窗口里有列出这些
接口,包括属性和方法。但 Object Spy 不可以添加对象。添加对象
的方法是:Resources->object Repository ->add Objects to Local 通过"
手指”图标査找自己要添加的对象,进而添加到对象库。
答案:Object 的 CaptureBitmap 方法可以将对象图片拷贝到物理路径中存档。
具体语法如下:
object.CaptureBitmap FullAleName, [OverrideExisting]
其中 vemdeExisting:O 或者 true 是指如果该文件已经存在,则覆盖。
1 或者 false 如果该文件已经存在,则出错,告知文件已经存在。
实例:Window(“Flight Reservation")XaptureBitmap “e:\f.bmp”,true
答案:打开 QTP,点击 Resources 菜单,逬入 Object Repository.右键
点击要修改的共享对象库的对象,并点击 copy to Local,然后可以逬行
相应的修改
答案:共有三种方式,1)通过 DataTable 共享.Datalable 对于每个
Action 都是可见的,如通过全局数据表(Global Data Pble)来共享数据;
2)通过环境变量共享,环境变量也是"Test 工程的共享变量。如自定义一个环境变量 name,并为其赋值,则 Test 中不同 Action 都可以使用该参数;
(3) 通过 Action Parameters 的参数传递,对 Action 的 属性设置和对调用的属性设置来进行参数传递,只有有调用关系才能共享。如:
在 Actionl 中执行如下语句:
RunAction “Action2”, onelteration .Value
并进行相关参数设置,可实现对 Action2 的调用。
答案:需求采集-需求分析-需求评审
某公司开发一个手机网盘系统.可以允许注册用户登陆后在手机客户
端上传或下载资料。手机客户端仅支持 iOS 系统。并且,用户可以
设置,并选择手机内某个特定相册,在手机连接 Wifi 的情况下.客户
端可以自动上传该相册中的照片。用户想从网盘下载自己上传的资料
时,可以指定下载后资料保存的文件夹并且上传和下载资料时,最
大可允许 5 个作业同时进行。
答案:
(1) 客户端支持 IOS 系统
(2) Wifi 状态下,自动同步待定相册。
(3) 指定下载文件路径
(4) 最大允许 5 个作业同时进行。
某公司开发了一种 聊天工具.允许内部员工用公司特定邮箱和密码
登陆,该聊天软件可以提供内部员工之间的日常打字聊天,语音聊天
需求,一个用户可以同时与多个用户分别聊天和语音,也可以在一个
赫天窗口里面与多人一同聊天和语音。一个人能同时与 30 个人分别
聊天,一个聊天窗口允许的最大人数为 50 人。但该工具不允许使用
外部邮箱登陆,即使是内部用户邮箱密码也不能在外部网络登陆。
答案:
(1) 允许内部员工用公司持定邮箱和密码登陆
(2) 提供打字聊天功能
(3) 提供语音聊天功能
(4) 一个用户可以同时与多个用户分别聊天和语音
(5) 一个聊天窗口里面可以与多人一同聊天和语音
(6) 一个人能同时与 30 个人分别聊天
(7) 一个聊天窗口允许的最大人数为 50 人
(8) 聊天工具不允许使用外部邮箱登陆
(9) 内部用户邮箱密码也不能在外部网络登陆
前期准备,计划制定,设计与开发,执行与缺陷跟踪
缺陷 ID、缺陷标题、严重程度、报告人、报告日期、状态、优先级、
详细描述、重现步骤’实际结果’期望结果、测试数据等
答案:
・重复性
•准确性
・高效性
答案:
・需求概述
・自动化测试计划
•测试方案设计
・测试用例设计
・测试脚本开发
测试执行和报告
答案:
•线性
・结构化
・共享
•数据驱动
・关键字驱动
答案:1. 测试工具评估
・分析项目的特点
・同时还要了解目前存在的各种测试工具的情况
・选型的最后一步是编写选型报告2)测试工具试用
3)自动化测试工具培训
•测试工具的总体介绍。
・测试工具操作方法。
・测试工具使用实践。
•对测试工具相关的测试理论进行讲解。
支持脚本化语言:包括支持数组、列表、结构等多种常用的变量和数据类型
各种条件逻辑和循环,函数的创建和调用。如果此工具使用如 VB、C 等通用语言,
测试就更方便。脚本语言的功能越强大,就能为测试者提供更灵活的使用空间,或者它写出
比被测软件还要复杂的结构
答案:
插件的选择是为了能够成功识别对应插件的测试对象控件.也就是说
插件的选择是和被测对象控件有关的。
答案:对象.方法,方法属性
答案:节省硬盘空间,易于传输
答案:测试结果査看器会显示测试结果是通过还是失败
Answer:在多个测试之间运作,并且有共同的对象
期望在系统上的测试对象的属性会被频繁的更改
运作的是多个 action 的测试
答:可以,对象可以在创建步骤时添加。
Microsoft Query
• What is a custom checkpoint?
A custom checkpoint is used to capture and verify dynamic values
by using output
parameters, setting the checkpoint on a property of the parameter
field, validating
the outcome of a test as acceptable or unacceptable using
conditional statement, and applying REPORTEVENT to report if the
outcome is acceptable.
答案:不是
答:
GetToProperty ():取得仓库对象的某个属性的值
GetToProperties ():取得仓库对象的所有属性的值
GetRoProperty ():取得实际对象的某个属性的值
SetToProperty ():设置仓库对象的某个属性的值
答:只有一种 Variant
答:
- 第一个字符必须是字母。
- 不能包含嵌入的句点。
- 长度不能超过 255 个字符。
- 在被声明的作用域内必须唯一。
答:如果动态对象在 0bject Repository 中.那么属性值可以使用正
则表达式参数或者 SetTOProperty 方法来设定。
如果对象不在 0bject Repository 中.并且需要定义对象,可以
使用编程性描述。
答:
它可以使脚本来处理异常并且保证脚本能运行完成。 -它能够测试有效和无效的测试数据。
答:
(1)程序的对象是动态的.如 logout<> 。
(2)对象库变得非常大.影响性能回放,仅限少数描述性编程代码。
(3)“更改对象库的对象,但对象只可读,如公共对象库。
(4)“对很对类似的对象或者相同的对象进行操作.如 CheckBox
答:
(1)通过 Object 获取
(2)使用 Spy 获取
(3)直接査看
答:
如果在测试对象层次结构的某一点开始使用了描述性编程,则该
测试对象层次结果下的后续测试对象都需要使用描述性编程方式
来描述对象。
答:检索指定父对象中的所有子对象.或者只检索符合特定描述性編程的子对象。
录制代码时.对目标对象做操作;
在显示目标对象的 Active Screen 中,做添加对象操作;
录制代码时.对目标对象插入检査点;
可以在录制过程中插入检查点;
可以从 Active Screen 中插入检査点;
可以从菜单中插入检查点;
注意:不可以在专家视图中自己写脚本语句插入检查点;
事件;
属性;
方法
一条语句的输入是前一条语句的输出,为了等待前一条语句执行
完毕;
Item,Operation,Value;
使用 Call to new Action 命令创建一个新的 Action
使用 Call to copy Action 命令复制其他测试的 Action,可以对
其进行更改;
通过分割方式产生新的 Action;
从脚本中获得对象名称;
对象仓库中找到该对象;
根据关键属性信息在被测程序中定位该对象;
修改关键属性的值为正则表达式
文本检査点与文本区域检查点,被操作对象不一致;
1)从脚本中获得对象名称
2)对象仓库中找到该对象
3)根据关键属性信息在被测程序中定位该对象
4)根据脚本中录入的动作和取值执行相应的操作
1)封装被测对象到对象库
2)运行 UFT 脚本时.会启用对象库里对象属性和运行中的被测属性进行比较
3)对比成功之后找到需要运行的对象
Systemlltil.Run “iexplore.exe”,“http://www.baidu.com”;
分支语句
在插件管理页面中需要勾选 Web 插件
两种视图不是相互独立的,一处改动会影响另一处的记录;
专家视图中的一行语句,一定能在关键字视图中找到相应的步骤;
它们都是记录操作步骤的脚本,只是记录的方式不同而已;
DataTable.GetSheet(“Globar”).SetCurrentRow 2
Print DataTable(“username”,dtGlobalSheet)
使用 Call to new Action 命令创建一个新的 Action;
使用 Call to copy Action 命令复制其他测试的 Action.可以对
其进行更改;
通过分割方式产生新的 Action
CheckProperty
Systemlltil
File\Settings\Run\Object Synchronization Timeout 时间
b&c 的值为 2030
a+b 的值为 30
b+c 的值为 50
a+d 运行会报错
c+d 运行会报错
选中录制好的订票部分的第一个步骤.点击 Edit\Action\Split
Action,选择 Independent of each other.写入两个 Action 名称
DataTable.ImportSheet “D:\l.xls”,1,1
UFT 的两种运行模式包括:快速运行模式和正常运行模式
进入 UFT 使用快捷键 Ctrl + R 就能直接打开对象库
一个 Test 中每个 Action 有自己独立的对象仓库
UFT 中的两个视图分别为:keyword-view and expert-view
UFT 将测试数据与代码分离
通常情况下,被测系统主要功能通过.且相对稳定才引入自动化测试;注意: UFT 自动化测试不需要手动测试过程 UFT 的测试代码通过复制粘贴的快捷操作方法.运行 txt 笔记中记录的代码 均是不正确的
DataTable (2,2)
DataTable.GetSheet(2).GetParameter(2)
在 A 语句后添加 wait 语句
在 A 语句后添加 waitproperty 语句
通过 Action 的迭代;
使用 for 循环.通过 SetNextRow 控制行操作
使用 for 循环,通过 SetCurrentRow 控制行操作
Dialog(“Login”).WinEditC(“Agent Name:").Set"amber"
Dialog(“Login”).WinEdit(“Password:”).Set “mercury”
Dialog(“Login”).WinButton(“OK”).CIick
简化以上代码:
- With Dialog(“Login")
.WinEdit(“Agent Name:”).Set “amber”
.WinEdit(“Password:”).Set “mercury”
.WinButton(“OK”).CIick
End With
- Set Owin=Dialog(“Login”)
Owin.WinEdit(“Agent Name:”).Set "amber
Owin.WinEdit(“Password:”).Set “mercury”
Owin.WinButton(“OK”).Click
Keyword View 通过可视化方法增强脚本功能,Export View 通过 VBScript 脚本语言增强脚本功能
专家视图和关键字视图使 UFT 脚本的两种表现形式,其实现的功
能是一样的
Non-Reusbale Action 不能被其他测试通过 call to Existing
Action 方法调用
Reusable Action 可以被其他测试多次调用.但在其他测试中以只
读的方式使用
Test 总迭代次数取决于 Global 表单中的行数
Action 总迭代次数取决于 Action 表单中的行数
Test 默认迭代次数为 All rows
通过 Test 的迭代
使用 for 循环.通过 SetNextRow 控制行操作
使用 for 循环,通过 SetCurrentRow 控制行
wait 是等待固定时间间隔.waitProperty 是等待不固定时间间
隔
wait 的参数时间单位为秒,waitProperty 的超时时间参数的单
位为毫秒
Record and Run Settings 中 WinApp 选择 Record and run only
on
Record and Run Settings 中 Web 选择 Record and run test on
any open browser
代码和对象仓库都分到每个 Action 来存放,方便阅读和维护脚
本和对象仓库
可以复制和调用 Action.从而实现代码的复用
可以把测试数据存放在本 Action 表单中.方便阅读和维护测试
数据
做 Action 参数化来实现代码的局部迭代
在 Action Call Properties 对话框中勾选 Run on All rows
在 Action Call Properties 对话框中勾选
Run from row 1 to row 3
对象库里面的对象可以进行添加、复制、剪切、高亮操作
可轻易的修改对象库中对象的描述属性.并能够更好的管
Non-reusable Action
Reusable Action
马上检查目标对象是否存在:If Object.Exist(O) Then MsgBox
“The browser exists.” End If
超时 5 秒内检查目标对象是否存在:If Object.Exist(5) Then
MsgBox “The browser exists.” End If
设计时数据表是静态的,数据不会在运行时改变
运行时数据表是在运行过程中动态变化的,脚本代码中的读写数据表的操作都是针对运行时数据表进行的
脚本运行结束后,运行时数据表的数据需要在测试结果报告中査
看最终的数据状态
仓库对象的简称为 TO.实际对象的简称为 RO
TO 是仓库文件里的仓库对象.R0 是被测软件的实际测试对象.两
者是不同的对象.是独立的
Database
Host System
Input/Output Data
设置测试部分的合理的开始和结束条件
通过制定对象或方法的类型、步骤执行的操作来添加步骤。并且
你可以通过 Step Generator 来指定参数关键字和步骤文档
Step Generator 对话框中 Value/Argument 区域是可选的、依赖于对象和操作
ADD-IN MANAGER
Internet Explorer browser
一个检查对象属性的步骤
The Design
在测试过程中驱动一系列数据
Run-time DATA TABLE
创建并插入正则表达式子
使用 design-time DATA TABLE 创建输入参数
Regular (non-reusable) action
Action Call Properties
Local data sheet
Folder
用户对一个对象操作的动作
一个 VBScript 的操作
一个函数
一个对象
脚本不区分大小写
可以使用 VB 中的控制语句