2025 年 100 个 QTP / UFT 热门面试问题和答案
此问卷分为初级和高级问题。如果您有 QTP 经验,请跳到问题 #50。不过,我们建议您阅读所有问题,因为它将为您面试做好准备。
QTP/UFT 新手面试问题和答案
1) Micro Focus UFT 中有哪些类型的对象仓库?
QTP 支持 2 种类型的对象仓库
1) 共享对象仓库(也称为全局)
2) 每个动作对象仓库(也称为本地)
默认使用每个动作对象仓库。每个动作仓库的扩展名为“.mtr”。
在处理在多个测试中调用的动态对象时,首选共享对象仓库。扩展名为“.tsr”
2) HP QTP 支持哪些环境?
QTP 支持以下环境
|
|
|
要了解有关插件及其使用方法的更多信息,请观看此视频教程。
3) 我们可以使用脚本从另一个测试中调用 QTP 测试吗?假设有 4 个测试,我想在主脚本中调用这些测试。这在 QTP 中可能吗?
是的。您可以在测试中调用 4 个甚至更多脚本。为此,您首先需要使相应脚本中的操作可重用。然后,您可以从目标脚本中调用这些可重用操作。
4) 什么是动作分割以及在 QTP 中使用它的目的是什么?
动作分割是将现有动作分成两部分。目的是根据其功能划分动作以提高代码重用性。
5) 您将如何在 QTP 中处理 Java 树?
首先,您将选择Java插件并启动 QTP。下一步记录 Java 树上的操作。如果您在录制时遇到问题,您可以选择“工具”>“对象识别”>“Java”,树对象并更改强制性和辅助性属性以启用识别。
提示:您可以根据任何其他环境的任何其他对象,以类似的方式回答。例如:如果问题是如何检查 SAP 复选框,您会说,首先我将选择 SAP 插件……等等。
6) 解释 QTP 如何识别对象?
QTP 根据其相应的属性识别任何 GUI 对象。在录制时,QTP将识别并将独特的属性(在对象识别设置中定义)存储在 GUI 对象的对象仓库中。在运行时,QTP 将比较存储的属性值与屏幕上的属性,以唯一识别 GUI 对象。
了解更多关于对象识别的信息
7) QTP 中有多少种录制模式?何时使用哪种模式?
QTP 支持 3 种录制模式
1. 正常模式,也称为上下文模式
2. 低级录制模式
3. 模拟模式
正常模式:它是默认录制模式,充分利用 QTP 的测试对象模型。它识别对象,无论它们在屏幕上的位置如何。这是首选的录制模式,用于大多数自动化活动。
低级录制模式:此模式记录鼠标操作的精确 x,y 坐标。它有助于测试哈希映射。它对于录制 QTP 正常模式无法识别的对象很有用。
模拟模式:此模式记录您在屏幕/应用程序窗口上执行的精确鼠标和键盘“移动”。此模式适用于绘制图片、录制签名、拖放操作等操作。
了解更多关于QTP 中的录制模式的信息
8) 你将如何从一个动作调用另一个动作?
我们可以通过 2 种方式调用动作
1) 调用动作的副本。——在这种情况下,动作对象仓库、脚本和数据表将被复制到目标测试脚本中。
2) 调用现有动作。——在这种情况下,对象仓库、脚本和数据表不会被复制,而是会引用源脚本中的动作。
9) 什么是虚拟对象?
您的应用程序可能包含行为类似于标准对象但 QTP 无法识别的对象。您可以将这些对象定义为虚拟对象,并将它们映射到标准类,例如按钮或复选框。QTP 在运行会话期间模拟用户在虚拟对象上的操作。在测试结果中,虚拟对象显示为标准类对象。
例如,假设您要录制一个关于包含用户单击的位图的网页的测试。该位图包含几个不同的超链接区域,每个区域打开一个不同的目标页面。当您录制测试时,网站会匹配位图上单击的坐标并打开目标页面。
为了使 QTP 能够在运行会话期间单击所需的坐标,您可以为位图区域定义一个虚拟对象,其中包括这些坐标,并将其映射到按钮类。当您运行测试时,QTP 会单击定义为虚拟对象的区域中的位图,以便网站打开正确的目标页面。
10) 如何使用 QTP 执行跨平台测试和跨浏览器测试?您能举例说明吗?
您需要创建单独的动作来处理不同的操作系统和浏览器
跨平台测试
使用内置环境变量,您可以挖掘操作系统信息。
例如,Platform = Environment(“OS”)。然后根据平台,您需要调用在该特定平台录制的动作。
跨浏览器测试
使用此代码,例如 Browser(“Core Values”).GetROProperty(“version”),您可以提取浏览器及其对应的版本。例如:Internet Explorer 6 或 Netscape 5。根据此值,您调用与该浏览器相关的动作。
11) 对象的逻辑名称是什么?
逻辑名称是 QTP 在仓库中创建对象时赋予的名称,以唯一地识别它与应用程序中的其他对象。QTP 将使用此名称将脚本中的对象名称与其在对象仓库中的相应描述进行映射。例如:Browser(“Browser”).Page(“Guru99”),其中 Guru99 是对象的逻辑名称。
12) 什么是描述性编程?
通常,必须在对象仓库中记录对象及其属性,才能使 QTP 对其执行操作。
使用描述性编程,您不会将对象及其属性值存储在对象仓库中,而是直接在脚本中提及属性值对。
描述性编程背后的想法不是绕过对象仓库,而是帮助识别动态对象。
了解更多关于描述性编程的信息
13) 在使用描述性编程时,您会使用哪些属性来识别浏览器和页面?
您可以使用名称属性
例如:Browser("name:="xxx"").page("name:="xxxx"").....
或者
我们还可以使用属性“micClass”。
例如:Browser("micClass:=browser").page("micClass:=page")....
14) 我们可以使用 QTP 录制在远程机器上运行的应用程序吗?
是的,您可以录制远程应用程序,前提是您通过本地浏览器而不是通过 Citrix 等远程工具访问应用程序。
如果您仍然无法录制,建议在同一台机器上安装 QTP 和应用程序。
15) 举例说明 CreateObject 关键字。
创建并返回自动化对象的引用
SYNTAX: CreateObject(servername.typename [, location])
参数
servername: 必需。提供应用程序的名称。
typename: 必需。要创建的对象的类型或类。
location: 可选。要在其上创建对象的网络服务器名称。
示例:Set IE = CreateObject(“InternetExplorer.Application”)
16) 您可以在 Per-Action 和共享对象仓库之间切换吗?如果可以,如何切换?
是的,我们可以切换。转到“测试”—>“设置”—>“资源”。在这里您可以选择仓库。
17) 什么是对象探查器?如何使用它?
对象探查器有助于确定被测应用程序的运行时和测试时对象属性和方法。
您可以直接从工具栏或对象仓库对话框访问对象探查器。
它在描述性编程中非常有用。
了解更多关于对象探查器的信息
18) 当序数标识符足以使对象唯一时,为什么它们没有被赋予最高优先级?为什么它先是强制性的,然后是辅助性的?为什么我们不能直接使用序数标识符?
考虑以下情况 –
a) 如果两个对象重叠,则基于位置的对象识别将失败。
b) 如果只使用基于索引的识别,您的脚本将起作用,但脚本执行时间会增加。
因此,使用了强制性和辅助属性。
19) QTP 中代码文件的文件扩展名是什么?
代码文件扩展名为script.mts
20) 简要解释 QTP 自动化对象模型。
QTP 自动化对象模型处理 QTP 本身的自动化。QTP 提供的几乎所有配置和功能都由 QTP 的自动化对象模型表示。QTP 中的几乎所有对话框都有一个相应的自动化对象,可以使用自动化对象模型中的相应属性或方法进行设置或检索。QTP 自动化对象可以与标准 VB 编程元素(如迭代循环或条件语句)一起使用,以帮助您设计所需的脚本。
21) QTP 中文本输出值的用途是什么?
文本输出值使您能够在运行时捕获被测应用程序上出现的文本。
如果参数化,文本输出值将捕获每次迭代中出现的值,这些值将存储在运行时数据表中以供进一步分析。
22) 什么是步骤生成器?
步骤生成器使我们能够向脚本中添加测试步骤。使用步骤生成器,您可以向脚本中添加步骤而无需实际录制它。
23) 如何让 QTP 区分同一类型的对象?假设一个页面中有 5 个复选框,我必须选择第二个,如何通过脚本实现?
您可以使用序数标识符(如索引)以及一些描述性编程进行对象识别。
观看此示例的视频。
24) 什么是测试融合报告?
测试融合报告以树形格式显示测试运行的所有方面。
它提供了所有迭代中执行的每个步骤的详细信息。
如果选择,它还会提供运行时数据表、屏幕截图和测试运行的视频。
25) 如何在 QTP 中处理异常?
在 QTP 中,异常处理通过以下方式完成:
a. 恢复场景。
b. 使用“On Error”语句
在恢复场景中,您必须定义。
1. 触发事件。
2. 恢复步骤。
3. 恢复后测试运行。
在脚本级别,您可以使用 On Error Resume Next 和 On Error Go to 0 语句。
26) QTP 中有哪些类型的环境变量?
QTP 中的环境变量分为三种类型
1) 内置(只读)
2) 用户定义内部(只读)
3) 用户定义外部(读/写)
您可以使用以下语法设置环境变量
Environment.Value( "name") = "Guru99"
您可以使用以下语法检索环境变量
Environment.Value("name")
— 这将返回名称 Guru99
Environment.Value("OS")
— 这将返回您的系统操作系统
27) 位图检查点和图像检查点有什么区别?
位图检查点对图像或图像的一部分进行像素到像素的比较。
图像检查点不进行像素到像素的比较,而是比较图像属性,如 alt 文本、目标 URL 等。
28) QTP 中函数和动作的区别是什么?
动作有自己的对象仓库和数据表。动作有助于使您的测试模块化并提高重用性。示例:您可以根据功能(如登录、注销等)将脚本分成动作。
函数是 VB Script 编程概念,没有自己的对象仓库或数据表。函数有助于代码的重用。示例:您可以在脚本中创建一个函数来连接两个字符串。
29) QTP 中的关键字视图和专家视图是什么?
关键字视图是一种基于图标的视图,以表格格式显示测试步骤。它还会自动为测试步骤生成文档。
专家视图为关键字视图中的每个测试步骤提供相应的 VB Script 语句。
30) 解释 QTP 测试过程?
快速测试过程由 6 个主要阶段组成
1) 创建您的测试计划 – 这是准备阶段,您在此阶段确定自动化测试的精确测试步骤、测试数据和预期结果。您还需要确定创建和运行 QTP 测试所需的环境和系统配置。
2) 在您的应用程序上录制会话 – 在此阶段,您将在 AUT 上逐个执行测试步骤,QTP 将自动录制每个执行步骤的相应 VB 脚本语句。
3) 增强您的测试 – 在此阶段,您将插入检查点、输出值、参数化、if…else 循环等编程逻辑,以增强测试脚本的逻辑。
4) 重放和调试 – 增强后,您将重放脚本以检查其是否正常工作,并在必要时进行调试。
5) 运行您的测试 – 在此阶段,您将执行测试脚本的实际运行。
6) 分析测试结果 – 一旦测试运行完成,您将分析生成的测试融合报告中的结果。
7) 报告缺陷 – 任何已识别的事件都需要报告。如果您使用 Quality Center,QTP 可以自动为失败的测试提出缺陷。
31) 有哪些不同类型的测试自动化框架?
自动化框架的类型是 –
1) 线性脚本 – 录制和回放
2) 测试库架构框架。
3) 数据驱动测试框架。
4) 关键字驱动或表格驱动测试框架。
了解更多关于测试自动化框架的信息。
32) 您将如何使用 QTP 检查 Web 应用程序是否存在损坏的链接?
您可以使用页面检查点,它会给出页面上有效/无效链接的数量。
33) 什么是运行时数据表?我可以在哪里找到和查看此表?
参数化输出、检查点值、输出值等数据存储在运行时表中。它是一个 xls 文件,存储在测试结果文件夹中。也可以在测试融合报告中访问它。
34) 检查点和输出值有什么区别?
检查点是一个验证点,它将指定属性的当前值与该属性的预期值进行比较。根据此比较,它将生成通过或失败状态。
输出值是在测试运行期间捕获的值,可以存储在指定位置,如数据表甚至变量中。与检查点不同,不会生成通过/失败状态。
35) 您将如何使用 VBScript 连接到数据库?
要连接到数据库,您必须知道
a) 您的服务器连接字符串
b) 用户名
c) 密码
d) DNS 名称
您可以直接编写数据库连接命令,也可以使用 QTP 提供的SQL查询工具。
36) 什么是 QTP 批处理测试工具?
您可以使用批处理测试工具运行多个脚本。一旦脚本添加到工具中,它将自动打开脚本并逐个开始执行。
37) QTP 有什么缺点?
截至 QTP 版本 10
1) QTP 中的大型测试会消耗大量内存并增加 CPU 利用率。
2) 由于 QTP 将结果存储在 HTML 文件中(而不是 txt),因此结果文件夹有时会变得很大。
38) 什么是可选步骤?
当一个步骤被声明为可选时,它不是必须执行的。如果相应的 GUI 对象存在,QTP 会对其执行操作。如果 GUI 对象不存在,QTP 会跳过可选步骤并继续执行下一个步骤。
39) 什么是 Reporter.ReportEvent?
Reporter.Reportvent 是 QTP 提供的标准方法,用于向测试结果窗口发送自定义消息。
语法
Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath] where EventStatus = 0 or micPass 1 or micFail 2 or micDone 3 or micWarning
结果可以具有通过、失败、警告等任何状态。您还可以将屏幕截图发送到测试结果窗口。
40) 您将如何在 QTP 中声明变量?
您使用 DIM 关键字声明。您使用 SET 关键字为变量赋值。
例如。
Dim temp '将声明 temp 变量
Set temp = 20 '将值 20 赋给 temp。
41) 什么是 GetRoProperty?
GetRoProperty 是 QTP 提供的标准方法,用于获取运行时对象的属性值。
42) 什么是智能识别?
通常,即使屏幕上的一个对象属性与记录的对象属性不匹配,测试也会失败。
在智能识别中,如果属性值不匹配,QTP 不会报错,而是使用基本过滤器和可选过滤器属性来唯一识别对象。在智能识别中,如果属性值不匹配,脚本不会失败,而是继续比较下一个属性。可以在对象识别对话框中启用智能识别。
了解更多关于智能识别的信息
43) 您将如何在 QTP 中将脚本从一台 PC 导出到另一台 PC?
我们可以利用对象识别、测试设置和工具/选项选项卡中提供的“生成脚本”功能,在源计算机上创建脚本的 zip 文件。然后可以将这些 zip 文件导入到目标计算机上的 QTP 中。
44) 可以在同一台机器上启动两个 QTP 实例吗?
不可以。您只能在同一台机器上使用 QTP 的单个实例。但 QTP 本身可以处理应用程序(AUT)的多个实例。例如:QTP 可以处理多个 IE 浏览器窗口。
45) 给出将 xls 导入/导出到 QTP 的语法。
DataTable.ImportSheet "..\..\TestData\Input.xls",1,dtGlobalSheet
DataTable.ExportSheet "..\..\Results\Output.xls","Global"
46) 什么是 SetToProperty?
SetToProperty 更改存储在对象仓库中的对象的属性。但是,这些更改不是永久性的。
47) QTP 中基于 Web 应用程序的标准计时延迟是多少?
标准延迟为 60 秒。这可以在测试设置中更改。
48) 什么是动作转换工具?
它是 QTP 提供的一个内置工具,用于将动作转换为业务流程组件。
49) 函数库的扩展名是什么?
扩展名为'.QFL'
50) 如果全局数据表不包含数据,而本地数据表包含两行数据,则测试将迭代多少次?
测试将只迭代一次——全局迭代。
UFT/QTP 经验丰富的面试问题和答案
51) 解释如何在 UFT 中读取注册表项?
此处演示的示例解释了如何在 UFT 中读取注册表项。
‘Create a shell object Set MyShell= CreateObject (“WScript.Shell”) Read the value of key from the registry RegValue =MyShell.RegRead (varpathofkey) ‘in above function we have to pass the path of key in registery’. e.g. HKCU\software\ie\settings msgbox RegValue
52) UFT 中有哪些方法可以获取系统环境变量?
UFT 中有三种方法可以获取系统环境变量
使用 WSH shell 对象
- 使用 WMI 的 Win32_Environment 类
- 从注册表中读取变量
Set myShell = CreateObject (“WScript.Shell”) WScript.Echo myShell.ExpandEnvironmentStrings( "%PATHEXT%" ) myShell=Nothing,
输出将是 .BAT;.CMD;.VBS;. VBE;. JS;. JSE
其他用户变量,如 TEMP,会覆盖其系统对应项
Set myShell = CreateObject( "WScript.Shell" ) WScript.Echo myShell.ExpandEnvironmentStrings( "TEMP=%TEMP%" ) myShell=Nothing
输出将是
TEMP:C:\DOCUME~1\You\LOCALS~1\Temp
53) 提及在 UFT 中从 Outlook 发送邮件所需的步骤?
要在 UFT 中从 Outlook 发送邮件,
Set Outlook = CreateObject ("Outlook.Application") Dim Message 'As Outlook.MailItem Set Message = Outlook.CreateItem(olMailItem) With Message .Subject = Subject .HTMLBody = TextBody .Recipients.Add (aTo) Const olOriginator = 0 .Send End With
54) 解释如何在 UFT 中从数据库获取数据?
要在 UFT 中从数据库获取数据,您必须遵循以下代码
Set db= createobject (“ADODB.Connection”) db.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\guru99\vb6\admission_project.mdb; Persist Security Info= False” Set rst=createobject(“ADODB.Recordset”) rst.Open “select*from Course”, db, 3 id=rst. RecordCount For i=0 to id-1 Print rst.field (0) & rst.fields (1) & rst.fields (2) & rst.fields (3) rst.Movenext Next
55) 我们可以使用哪些代码从 UFT 中的 ftp 服务器获取文件?
要从 ftp 服务器获取 ftp 文件,您必须使用以下代码
a) put- 在服务器上存储单个文件
b) get- 从 ftp 服务器下载单个文件
c) mget- 从服务器下载多个文件
d) mput- 在服务器上存储多个文件
e) delete- 删除 ftp 服务器上的文件
MyShell.Run "%comspec% /c FTP -n -s:" & commandstoworkwithftp & " " & Site, 0,True
56) 在 UFT 中,如何防止系统锁定?
为防止系统锁定,可以使用以下两种方法之一
- 创建一个包含按下 NumLock 键代码的简单 vbs 文件并运行该 vbs 文件
- 编辑一个注册表项“DisableLockWorkstation =1”以禁用锁定
57) UFT 中的描述性编程是什么意思?
描述性编程包括属性名称和属性值。当 UFT 在从对象仓库识别对象时遇到困难,而是直接从脚本中识别对象时,这被称为描述性编程。
58) 在 UFT 中解释 qfl 和 vbs 文件之间的区别?
a) qfl 是快速测试函数库文件,而 vbs 是 Microsoft 的 vbscript
b) qfl 是非可执行文件,而 vbs 是可执行文件
c) 要在 UFT 中使用文件,请从测试设置中关联 qfl 文件,而要包含 vbs 文件,请使用“execute file statement”
59) 在 UFT 中将数据写入文本文件的代码是什么?
在 UFT 中将数据写入文本文件的代码是
Content = “Guru99 Rocks” Set Fo = createobject ("Scripting.FilesystemObject") Set f = Fo.openTextFile ("c:\myFile.txt",8,true) ' open in write mode f.Write (contents) f.Close Set f = nothing
60) 如何在 UFT 中将数据写入 Excel 文件?
在 UFT 中将数据写入Excel文件的代码是
filepath = “C:\Bugs\Reports.xlsx” Set objExcel = CreateObject(“Excel.Application”) objExcel.Visible= True Set Wb= objExcel.Workbooks.Open (filepath) Wb.worksheets(1).Cells(1,1).Value = “guru99” read value from Excel file
61) 如何在 UFT 中创建 TSR 文件?
TSR 表示测试共享仓库,它用于共享对象仓库。
要创建 TSR 文件,请按照以下步骤操作
- 打开对象仓库
- 转到文件菜单
- 转到并选择导出本地对象选项
之后,UFT 将要求您存储 .tsr 文件。提供路径并保存。这将在 UFT 中创建 .tsr 文件
62) 如何在 UFT 中连接到 QC?
为了连接到 QC,UFT 提供了直接从 UFT GUI 连接 QC 的选项。
a) 转到文件菜单
b) 选择 (QC) 质量中心
c) 您将被要求 – 输入 QC URL
d) 输入用户 ID、密码和项目
按照上述步骤将允许您连接到 QC,之后您可以直接从 QC 执行测试。
63) UFT 中有哪些类型的自动化框架?
为了简化使用 UFT 的测试自动化过程,设计了测试自动化。UFT 中主要有三种类型的自动化框架
- 关键字驱动框架:当需要测试多种功能时使用。
- 数据驱动框架:用于测试具有不同测试数据的相同流程,测试数据比应用程序的多种功能更重要
- 混合框架:它是数据驱动框架和关键字的组合。
64) 我们什么时候应该在 UFT 中使用描述性编程?
UFT 通过对象仓库或描述性编程来识别对象。描述性编程在以下场景中使用
a) 它用于删除重复对象。相同的对象存在于应用程序的不同屏幕或窗口中。在这种情况下,如果您使用 OR,您必须在 OR 中不同对象层次结构下存储相同的对象。为了处理这种情况,描述性编程
编程被使用
b) 在某些情况下,将对象存储在 OR(对象仓库)中是不合适的。假设您想打印页面上的 100 个链接,您不应该将所有链接存储在 OR 中。相反,您应该使用描述性编程来访问这些链接。
65) 什么是“settoproperty”以及何时在 UFT 中使用它?
Settoproperty 代表设置测试对象属性。您可以使用此属性在运行时更改对象值。您可以在运行时编辑属性值,但所做的更改是临时的。
66) 如何在 UFT 中创建字典数组?
我们可以使用语法创建字典数组
Dim ArrayofDictionary(2) First element of array Set ArrayofDictionary(0)= createobject("scripting.dictionary") ArrayofDictionary(0).Add "key1", "temp1" ArrayofDictionary(0).Add "key2", "temp2" Added keys in first dictionary Second element of array as dictionary Set ArrayofDictionary(1)= createobject("scripting.dictionary") ArrayofDictionary(1).Add "key1", "temp1" ArrayofDictionary(1).Add "key2", "temp2" Added keys in second dictionary…..and so on
67) “数组”和“字典”有什么区别?
数组 | 字典 |
---|---|
动态数组是可能的 | 没有动态字典的概念 |
数组大小必须在使用数组之前设置 | 字典的大小不需要设置 |
在向动态数组中添加额外元素之前,我们必须使用 redim 语句 | 要添加额外元素,无需编写任何语句。我们只需使用 add 方法 |
如果没有特定的元素不再需要,就没有特定的方法来释放内存 | 不再需要的元素可以从字典中删除 |
68) UFT 中的 Round 函数是什么?
UFT 中的 Round 函数用于对小数进行四舍五入
例如
Mydecimal = 6.3433333 Roundedvalue= Round(Mydecimal , 3) Print roundedvalue, it will print 6.343
69) 如何在 UFT 中查找 Web 表中的总行数?
在 UFT 中,我们可以通过三种方式查找表中行的数量
a) 使用 UFT Web 表对象的 rowcount 属性
b) 使用 UFT 的 GetROProperty
c) 使用 HTML DOM + UFT
70) 如何在 UFT 中创建 Excel 文件?
步骤将在 UFT 中创建 Excel 文件,
'Create a new Microsoft Excel object Set myExcel = createobject("excel.application") 'To make Excel visible myExcel.Application.Visible = true myExcel.Workbooks.Add MyExcel.worksheets(1).Cells(1,1). Value = “Scenario Id” MyExcel.worksheets(1).Cells(1,2).Value = “Scenario Name” MyExcel.worksheets(1).Columns(1).ColumnWidth = 10 MyExcel.worksheets(1).Columns(2).ColumnWidth = 40 MyExcel.worksheets(1).Columns(3).ColumnWidth = 20 MyExcel.worksheets(1).Columns(4).ColumnWidth = 20 MyExcel.SaveAs "c:\guru99.xlsx" MyExcel.close objExcel.Quit blnFlag = False
UFT 7 至 10 年经验面试问题和答案
71) 解释如何在 UFT 中将数据表导出到 Excel?
要将数据表导出到 Excel,有两种方法。
a) DataTable.Export (“C:\export.xls”)
b) DataTable.ExportSheet “C:\mysheet.xls”(如果 Excel 文件不存在,则会创建新文件)
72) 在 UFT 的数据表工作表中,如何从单元格读取值?
要从单元格中读取值,我们遵循 2 步过程
a) 我们在第一步设置行指针
b) 在第二步中,我们定义要从工作表读取的参数/列名
示例
在此示例中,我们已将事务工作表中的行指针设置为 2
Datatable.GetSheet(“Transactions”).SetCurrentRow(2)
现在,我们必须指定要从事务工作表的 module_name 列中读取一个值
Print datatable.Value (“Module_Name, “Transactions”)
73) UFT 中有哪些循环以及它们的作用?
UFT 中有 3 种循环
a) Do…..Loop:Do Loop 将重复运行语句块
b) For…..Next:For Next Loop 将执行一系列语句,直到达到特定的计数器值
c) For……Each:为了执行集合中每个对象的系列语句,使用“For Each Loop”
While….Wend Loop:While Wend Loop 用于执行一系列语句,只要给定条件为真
74) UFT 中需要处理的错误类型有哪些?
在 UFT 中会遇到三种类型的错误
a) 语法错误
b) 逻辑错误
c) 运行时错误
75) 您可以通过哪些方式处理运行时错误?
有多种方法可以处理运行时错误
a) 使用测试设置
b) 使用 On Error 语句
c) 使用 err 对象
d) 使用 Exit 语句
e) 恢复场景
f) 报告对象
76) ExitAction 和 ExitIteration 有什么区别?
Exitaction 用于当我们想要退出某个特定的操作时,而 exititeration 用于退出某个操作的特定操作迭代。
77) 在 QTP 中,如何删除字符串中的空格?
您可以使用 replace 函数删除 QTP 字符串中的空格
Print replace(“ sdsd sd sd s “, “ “,”””)
输出将是sdsdsdsds
如果只需要删除字符串开头的空格,可以使用 Itrim 函数
Print Itrim(“ sdsd sd s “) → 输出将是 “sdsd sd s”
您可以使用 rtrim 函数删除字符串尾部的空格
Print rtrim(“ sdsd sd s ” ) → 输出将是 “ sdsd sd s”
78) 在 QTP 中,如何获取字符串的最后一个字符?
在 QTP 中获取字符串最后一个字符的代码
print right( “junior,1) ‘ à Output will be “r”
79) 如何在 QTP 中添加同步点?
我们可以通过 4 种方式在 QTP 中添加同步点
a) Wait 语句:此语句将暂停执行 x 秒,直到对象出现
b) Wait property:此方法将等待直到对象的属性达到特定值
c) Exist 语句:此语句将等待直到对象变为可用
d) Sync 方法:此代码将等待直到浏览器页面完全加载。对于 Web 应用程序测试,使用此方法。
80) 在 QTP 中解释什么是 crypt 对象
QTP 中的 Crypt 对象用于加密字符串。
语法
Crypt.Encrypt(“Guru99”)
示例
在此示例中,pwd 变量中的值使用 Crypt.Encrypt 方法进行加密。
然后将此加密值输入到编辑框中。
pwd= “myvalue” pwd = Crypt.Encrypt (pwd) Browser(“myb”).WinEdit (“pwd”). SetSecure pwd
81) 提及 Execute file 和 loadfunction library 之间的区别是什么?
在 execute file 中,我们无法调试语句。使用 loadfunction library,可以调试语句,并且可以加载多个库文件。
82) 解释如何在 QTP 中查找数组的长度?
在 QTP 中查找数组长度的代码是
print (ubound(arr)+1)
Ubound 返回数组中的最后一个索引 - 因此数组的长度将是 +1。这将是数组中的元素总数。
83) 提及 QTP 中有哪些不同类型的录制模式?何时使用哪种模式?
QTP 支持 3 种录制模式
a) 正常模式:这是默认的录制模式,用于大多数自动化活动。它识别对象,无论它们在屏幕上的位置如何。
b) 低级录制模式:它对于录制 QTP 正常模式无法识别的对象很有用。它记录鼠标操作的精确 x,y 坐标。
c) 模拟模式:此模式适用于录制签名、绘制图片、拖放操作等操作。
84) 您可以通过哪些方式从一个动作调用另一个动作?
您可以通过两种方式从一个动作调用另一个动作
a) 调用动作的副本:在这种情况下,脚本和数据表、动作对象仓库将被复制到目标测试脚本
b) 调用现有动作:在这种情况下,脚本数据表和对象仓库不会被复制,而是会引用源脚本中的动作
85) QTP 中的可选步骤是什么?如何在 QTP 中添加可选步骤?
当运行测试时,如果测试在打开对话框时失败,QTP 不一定会中止测试运行。它会跳过任何被指定为“可选”的步骤,并继续运行测试。默认情况下,QTP 会自动将打开某些对话框的步骤标记为可选。要设置关键字中的可选步骤,右键单击并选择“可选步骤”。可选步骤的图标将添加到下一步。在专家视图中添加可选步骤时,将可选步骤添加到 VBScript 语句的开头。
86) 如何在 QTP 中定义数组?
在 QTP 中可以通过 3 种方式定义数组
a) QTP 中的固定大小数组
Dim A (10) – 单维
Dim MyTable (5,10) – 多维
b) 动态数组 - 大小不固定
Dim MyArray()ReDim MyArray(25)
c) 在 QTP 中使用 Array 函数
A= Array (10, 20,30)
B= A(2) 'B 现在是 30
87) 如何将上下文写入 QTP 中的文本文件?
Content = “Guru99” Set Fo = createobject(“Scripting.FilesystemObject”) Set f =Fo.openTextFile(“c:\abc.txt”, 8,true) f.Write (contents) f.Close Set f= nothing
88) 在 QTP 中何时使用“option explicit”关键字?
在 QTP 中,为了指定所有变量在使用前必须声明,使用“Option Explicit”关键字。
89) 在 QTP 中,如何退出 for 循环?
您必须使用“Exit For”语句来退出 QTP 中的“for 循环”。“Exit For”语句将使控制权脱离“for 循环”。
For count= 1 to 3 TempNum= mid(Tempstr,count,1) If isnumeric(TempNum) Then LenghtNum = LengthNum & TempNum Else Exit For End If Next GetStrLenNumber = LengthNum
90) 如何在 QTP 中查找数组大小?
QTP 中数组的大小将通过以下代码找到
Print (ubound(arr)+1)
Ubound 返回数组中的最后一个索引 - 因此数组的大小将是 +1
91) 在 QTP 中,解释什么是 qrs 文件?
qrs 代表 “Quicktest Recovery Scenario”。通过使用恢复场景管理器,我们可以处理测试执行中的异常。在 QTP 中,当您创建恢复场景时,您必须将其保存在 .qrs 文件中。qrs 文件中可以定义任意数量的场景。
92) “action 0”在 QTP 中的意义是什么?
当您在 QTP 中创建新测试时,默认会创建“动作 0”以及动作 1。为了确定我们调用其他动作 1、2、3 等的顺序,使用动作 0。
93) 解释如何在 QTP 中替换字符串?
要在 QTP 中替换字符串的一部分,我们将使用如下代码
示例,
Str = (Guru99) Suppose if you want to replace “99” with “88” then the code will print replace(str,“99”, “88”) output will be “Guru88”
94) QTP 中有哪些可用的自动化框架?
QTP 中可用的各种自动化框架有
a) 线性脚本
b) 测试库架构框架
c) 数据驱动测试框架
d) 关键字驱动或表格驱动测试框架
e) 混合测试自动化框架
95) 什么是“对象探查器”?“对象探查器”在 QTP 中的功能是什么?
“对象探查器”是 QTP 中的一个功能,通过它您可以查看测试时和运行时的对象属性和方法。
96) 什么是“GetROProperty”?使用 GetROProperty 涉及哪些步骤?
“GetROProperty”是一个内置方法,用于检索运行时对象的属性值。
使用 GetRoProperty 涉及四个步骤
a) 在对象仓库中记录要使用 GetROProperty 的对象
b) 识别记录对象的运行时属性,以便使用
c) 检索已识别的运行时属性并将值存储在变量中
d) 将此值用于进一步的推导
97) 解释如何在 QTP 中查找数字的绝对值?
为了找出数字的绝对值,QTP 中有一个内置函数
Example- a= -1 Print abs(a) ‘output will be 1
此代码将查找数字的绝对值
98) 如何检查参数是否存在于数据表中?
要检查参数是否存在于数据表中,我们将使用以下代码
on error resume next val=DataTable(“ParamName”, dtGlobalSheet) if err.number<>0 then ‘Parameter does not exist’ else ‘Parameter exists end if
99) 在 QTP 中解释什么是关键字驱动自动化框架?
在关键字驱动自动化框架中,重点主要放在关键字/函数上,而不是测试数据上。这意味着完全专注于创建映射应用程序功能的函数。
100) 在 QTP 中,如何使用 Xpath 识别对象?
Xpath 只能用于识别 Web 对象。我们可以使用以下代码识别对象。
Set oPage=Browser(“myGoogle”).Page(“myGoogle”) oPage.WebEdit(“xpath:=//INPUT[@name=‘nameofeditbox’]”).Set “search term” ‘Enter value in google edit box
这里您可以获得 3 个额外问题
101) 解释如何在 QTP 中删除 Excel 文件?
要在 QTP 中删除 Excel 文件,
Set fo = createobject(“Scripting.filesystemobject”) fo.deletefile(“C:\xyz.xlsx”) Set fo=nothing
102) 哪些因素会影响位图检查点?
位图检查点受屏幕分辨率和图像大小的影响。
103) 什么是可访问性检查点?
万维网联盟 (W3C) 提出了一些关于基于网络的技术和信息系统的说明和指南,以使残疾人更容易访问网络。例如,标准强制要求图像具有“alt 文本”。因此,访问网站的盲人将使用文本转语音转换器,至少可以理解图像是什么,即使看不到它。所有这些标准都由可访问性检查点检查。
QTP/UFT 认证测验 1
QTP/UFT 认证测验 2
QTP/UFT 认证测验 3
这些面试问题也将有助于您的口试