QTP自动化测试技术——经典面试题

1) QTP 支持那些环境?

QTP 支持以下环境:
Active X、Delphi、Java、Net、Oracle、People Soft Power Builder、S
AP、Siebel、Stingray Terminal Emulator、Visual Basic Visual Age 、Web、
Web Services

2) QTP 的对象库类型是什么?

QTP 支持两种类型的对象库:

  • (1)共享对象库(也叫全局对象库)
  • (2) 单例对象库(也叫局域对象库) 共享对象库在处理多次测试中的静态对象时适用,扩展名是“.tsr”。

默认的是单例对象库,它的扩展名是“.mtr”

3) 可以在其他测试中用脚本语言调用 QTP 测试吗?假设有四个测试,我想在一个主脚本中调用这些测试,这种 QTP 中可能吗?

答案是肯定的。
你可以在你的测试中调用四个甚至更多脚本。为了达到这个目的,需保证相应脚本中的 Actions 是可重用的。然后从目标脚本中可以使调用这些可重用的 actions。

4) 什么是 action split?在 QTP 中使用 action split 的目的何在?

Action split 将存在的 action 拆分为两部分,目的在 actions 函数的基础上提高代码的可重用性。

5) 在 QTP 中你如何处理 Java 树?

首先,选择 Java Add-In 启动 QTP。第二步记录在 Java 树中的操作,如果在记录过程中遇到问题,选择 Tools > Object Identification > Java、tree o bject,强制更改辅助属性来启用识别。

提示:对于任何环境的对象,你都可以把用类似的方法回答。

例如:如果问题是你怎样检查 SAP 多选框,你说,首先我该选择 SAP Ad d in……等等。

6) 解释一下 QTP 是如何识别对象的?

QTP 识别任何 GUI 对象基于其相应的属性。
当记录的时候,QTP 在对象存储库的 GUI 对象中识别并且存储特殊属性(如在物体识别设置中定义的一样)。
在运行时,QTP 将比较存储属性值与屏幕上的属性。

7) QTP 中有多少种记录模式?分别在什么时候用到?

QTP 支持三种记录模式:

  • (1) 普通模式,也叫上下文模式
  • (2) 低级记录模式
  • (3) 模拟模式

**普通模式:**默认的记录模式,充分利用了 QTP 的试验对象模型。它可识别屏幕任何位置的对象。这是重新编码的最佳模式,用于大多数的自动化测试。

低级记录模式: 这个模式准确地记录鼠标操作的 x,y 坐标。它有助于测试哈希表。它是用于记录 QTP 的正常模式下的不确定对象。

**模拟模式:**这个模式记录执行关于屏幕/应用程序窗口时鼠标和键盘的精确“动作”。这种模式对一些操作是很有用的,例如画画、记录签名、拖放操作。

8) 你怎样在一个 action 中调用另一个 action?

调用 action 有两种方法:
(1) 调用复制的 action。用这种方法,操作对象存储库、脚本和时间戳将被复制到目标测试脚本。
(2) 调用现有的 action。用这种方法,操作对象存储库、脚本和时间戳不会被复制,但一个调用(参考)将在源脚本的 action 上生成。

9) 什么是虚拟对象?

应用程序可能包含有着像标准对象行为的对象,但不被 QTP 识别。您可以把这些对象定义为虚拟对象并将它们映射到标准的类,比如按钮或一个复选框。Q TP 在运行的会话中在虚拟对象上模拟用户的动作。在测试结果里,虚拟对象被当成标准的类对象展示出来。

例如,假设你想记录一个测试包含用户单击的位图的 Web 页面。位图包含几个不同的超链接区域,每个区域打开一个不同的目的页面。当你记录一个测试,Web 站点匹配单击位图的坐标并且打开目标页面。

在运行的会话中启用 QTP 以点击所需坐标,你可以为一个区域的位图定义一个虚拟对象,其中包括那些坐标,并将其映射到按钮类。当运行一个测试时,QTP 单击一个被定义为虚拟对象位图所在区域,这样网址就可以打开正确的目的地页面了。

10) 如何使用 QTP 执行跨平台测试和跨浏览器测试?你能用一些例子解释说明吗?

创建单独的 Actions,以满足不同的操作系统和浏览器的需要。

  • 跨平台测试: 用内置的环境变量挖掘操作系统信息。
    如:平台=环境(“操作系统”)。然后基于平台需要调用你记录在那个特定的平台的 actions。

  • 跨浏览器测试:
    使用代码 Browser(“Core Values”).GetROProperty(“version”),可提取浏览器和它的相关版本。例如:Internet Explorer 6或 Netscape 5,基于这个值您可以调用与浏览器相关的 actions。

11) 对象的逻辑名字是什么?

逻辑名字是 QTP 在库里创建一个可唯一地与应用里的其他对象识别的对
象时起的名字。它被 QTP 用来映射对象库中对象名相应的描述。

如:Browser(“Browser”).Page(“Guru99”) ,在这里,Guru99 是对象的逻辑名字。

12) 什么是描述性编程?

通常情况下,一个对象及其属性必须被记录在对象资源库,让 QTP 执行操作。
用描述性编程,你不用在对象资源库里储存对象及其属性值,而是在脚本里提到属性值对。
描述性编程背后的这种思想不是想绕开对象库,而是帮助识别静态对象。

13) 运用描述性编程的时候,你用什么属性来识别浏览器网页?

可以用名字属性。
如:ex:
Browser(“name:=“xxx””).page(“name:=“xxxx””)…
或者,我们也可以用属性"micClass"。
如:ex:
Browser(“micClass:=browser”).page(“micClass:=page”)…

14) 在远程机器上使用 QTP 时,我们能否记录应用的运行过程呢?

当然可以。你可以通过本地浏览器而不是通过像 citrix 这样的遥控器记录你进入的远程应用。
如果你仍然不能记录,建议您将 QTP 和应用安装在同一个机器上。

15) 用一个例子解释创建对象的关键词。

创建并返回一个自动化对象的引用。

  • 语法: CreateObject(servername.typename [,location])
  • 参数: servername:需要。提供对象的应用的名字。
  • typename:需要。创建对象的类型或者类。
  • ocation:可选。创建对象的网络服务器名字。

16) 你能在 Per-Action 和 Shared Object Repository 中切换吗?如果能,怎么切换的?

可以转换。找到 Test,然后选择 Settings,最后选择 Resources,在这里可以选择储存库了。

17) 什么是对象间谍?如何使用它?

对象间谍有助于确定正在被测试的应用的运行测试时间对象属性和方法。
您可以直接从工具栏或者对象库对华康直接访问对象间谍。
这在描述编程过程中非常有用。

18) 光序标志符就可以使一个对象独一无二,那为什么不给他们顶级优先权呢?为什么它是先强制后辅助的?为什么我们不能直获取序标志符?

因素如下:

  • (a) 如果两个对象彼此重叠,基于位置的对象识别将失败。
  • (b) 如果仅基于索引识别你的脚本可以运行,但是执行时间将增加。
    因此使用强制和辅助的特性。

19) 在 QTP 代码文件中扩展名是什么?

代码的文件扩展名是 script.mts.

20) 简要解释一下 QTP 自动化对象模型。

QTP 自动化对象模型处理自动化 QTP 本身。几乎所有的 QTP 提供的配置和功能都用 QTP 自动化对象模型展示。

几乎所有 QTP 的对话框有一个相应的自动化对象,可以使用自动化对象模型的相关属性或者方法设置或检索。

QTP 自动化对象可以和标准的 VB 编程元素一起使用,如迭代循环或条件语句来帮助你设计脚本的选择。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值