100 年 2025 个最热门 QTP / UFT 面试问题与答案
本问卷分为初级和高级问题。如果您有 QTP 经验,请跳至问题 #50。不过,我们建议您阅读所有问题,因为这将帮助您为面试做好准备。
面向应届毕业生的 QTP/UFT 面试问题和答案
1) Micro Focus UFT 中的对象存储库类型有哪些。
QTP 支持 2 种类型的对象存储库
1)共享对象存储库(也称为全局)
2)每个动作对象存储库(也称为本地)
默认使用 Per-Action Object Repository。Per-Action 存储库的扩展名为 “.mtr”。
处理在多个测试中调用的动态对象时,共享对象存储库是首选。扩展名为“.tsr”
2) HP QTP 支持哪些环境?
QTP 支持以下环境
|
|
|
要了解有关插件及其使用方法的更多信息,请观看此视频 教程.
3) 我们可以使用脚本从另一个测试调用 QTP 测试吗?假设有 4 个测试,我想在主脚本中调用这些测试。这在 QTP 中可行吗?
是的。您可以在测试中调用 4 个或更多脚本。为此,首先您需要使相应脚本中的操作可重复使用。然后您可以从目标脚本调用这些可重复使用的操作。
4)什么是动作拆分以及在 QTP 中使用它的目的?
动作拆分是将现有动作分为两部分。目的是根据动作的功能进行划分,以提高代码的重用性。
5)你将如何处理 Java QTP 中的树?
首先,你会选择 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)你将如何从一个动作调用到另一个动作?
我们可以用两种方式调用动作
1) 调用 Action 的复制。——在此,Action 对象存储库、脚本和 Datable 将被复制到目标测试脚本。
2) 调用现有操作。——在此,对象存储库、脚本和 Datable 将不会被复制,但会对源脚本中的操作进行调用(引用)。
9)什么是虚拟物体?
您的应用程序可能包含一些行为类似于标准对象但 QTP 无法识别的对象。您可以将这些对象定义为虚拟对象并将它们映射到标准类,例如按钮或复选框。QTP 在运行会话期间模拟用户对虚拟对象的操作。在测试结果中,虚拟对象显示为标准类对象。
例如,假设您想要在包含用户单击的位图的网页上记录测试。位图包含几个不同的超链接区域,每个区域都会打开不同的目标页面。当您记录测试时,网站会匹配位图上单击的坐标并打开目标页面。
为了使 QTP 在运行会话期间单击所需的坐标,您可以为位图的某个区域定义一个虚拟对象(包括这些坐标),并将其映射到按钮类。运行测试时,QTP 会单击定义为虚拟对象的区域中的位图,以便网站打开正确的目标页面。
10) 如何使用 QTP 执行跨平台测试和跨浏览器测试?您能举几个例子解释一下吗?
您需要创建单独的操作来处理不同的操作系统和浏览器
跨平台测试:
使用内置环境变量您可以挖掘操作系统信息。
例如。平台 = 环境(“OS”)。然后,您需要根据平台调用在该特定平台上记录的操作。
跨浏览器测试:
使用此代码,例如 Browser(“Core Values”).GetROProperty(“version”),您可以提取浏览器及其对应的版本。例如:Internet Explorer 6 或 Netscape 5。根据此值,您可以调用与该浏览器相关的操作。
11)对象的逻辑名称是什么?
逻辑名称是 QTP 在存储库中创建对象时给出的名称,用于将其与应用程序中的其他对象进行唯一标识。QTP 将使用此名称将脚本中的对象名称与对象存储库中的相应描述进行映射。例如:Browser(“Browser”)。Page(“Guru99”)其中 Guru99 是对象的逻辑名称。
12)什么是描述性编程?
通常,必须将对象及其属性记录在对象存储库中,以便 QTP 对其执行操作。
使用描述性编程,您不需要将对象及其属性值存储在对象存储库中,而是直接在脚本中提及属性值对。
描述性编程背后的想法不是绕过对象存储库,而是帮助识别动态对象。
进一步了解 Descript实战编程
13)使用描述性编程时,您将使用哪些属性来识别浏览器和页面?
您可以使用 name 属性
例如: Browser("name:="xxx"").page("name:="xxxx"").....
OR
我们还可以使用属性“micClass”。
例如: Browser("micClass:=browser").page("micClass:=page")....
14)我们可以使用 QTP 记录在远程机器上运行的应用程序吗?
是的,您可以记录远程应用程序,只要您通过本地浏览器访问应用程序,而不是通过 citrix 等远程工具访问。
如果仍然无法录制,建议在同一台机器上安装 QTP 和应用程序
15) 举例解释关键字 CreateObject。
创建并返回对 Automation 对象的引用
SYNTAX: CreateObject(servername.typename [, location])
参数
服务器名称: 必填。提供对象的应用程序的名称。
类型名称: 必需。要创建的对象的类型或类。
位置: 可选。要创建对象的网络服务器的名称。
示例: 设置 IE = CreateObject(“InternetExplorer.Application”)
16) 你能在 Per-Action 和 Shared Object Repository 之间切换吗?如果可以,如何切换?
是的。我们可以切换。转到测试—>设置—>资源。在这里您可以选择存储库。
17) 什么是 Object Spy ? 如何使用它?
Object Spy 有助于确定被测应用程序的运行和测试时间对象属性和方法。
您可以直接从工具栏或对象存储库对话框访问对象间谍 Box.
它非常有用 Descript实战编程
进一步了解 对象间谍
18) 如果序数标识符本身就能使对象唯一,那么为什么不将其列为最高优先级?为什么它首先是强制性的,其次才是辅助性的。为什么我们不能直接使用序数标识符?
考虑以下 -
a) 如果两个物体相互重叠,则基于位置的物体识别将会失败。
b) 如果仅使用基于索引的识别,您的脚本将会工作,但脚本执行时间会增加。
因此使用了强制和辅助属性。
19)QTP中代码文件的扩展名是什么?
代码文件扩展名是 script.mts
20) 简要解释 QTP 自动化对象模型。
QTP 自动化对象模型处理 QTP 本身的自动化。QTP 提供的几乎所有配置和功能都由 QTP 的自动化对象模型表示。QTP 中的几乎所有对话框都有相应的自动化对象,可以使用自动化对象模型中的相应属性或方法设置或检索这些对象。QTP 自动化对象可以与标准 VB 编程元素(如迭代循环或条件语句)一起使用,以帮助您设计所选脚本。
21)QTP 中的文本输出值有什么用途?
文本输出值使您能够捕获运行时被测应用程序上出现的文本。
如果参数化,文本输出值将捕获每次迭代中出现的值,这些值将存储在运行时数据表中以供进一步分析。
22)什么是步骤 Generator?
步骤 Generator 允许在脚本中添加测试步骤。使用步骤生成器,您可以将步骤添加到脚本中,而无需实际记录它。
23)如何让 QTP 理解同一类型对象之间的区别。假设一个页面中有 5 个复选框,我必须选择第 2 个,如何通过脚本做到这一点?
您可以使用序数标识符(例如索引)以及一些描述性编程进行对象识别。
观看 电影 此示例的。
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)位图检查点和图像检查点有什么区别?
位图检查点对图像或图像的一部分进行像素与像素的比较。
图像检查点确实会进行像素到像素的比较,但会比较图像属性,例如替代文本、目标网址等。
28)QTP 中的函数和动作有什么区别?
操作有自己的对象存储库和数据表。操作有助于使您的测试模块化并提高重用性。示例:您可以根据登录、注销等功能将脚本划分为操作。
函数是 VB 脚本编程概念,没有自己的对象存储库或数据表。函数有助于重复使用您的代码。例如:您可以在脚本中创建一个函数来连接两个字符串。
29)QTP 中的关键字视图和专家视图是什么?
关键字视图是一种基于图标的视图,以表格形式显示测试步骤。它还会自动生成测试步骤的文档。
专家视图在关键字视图中为每个测试步骤提供相应的VB脚本语句。
30)解释QTP测试过程?
快速测试过程包括 6 个主要阶段:
1) 创建测试计划 – 这是准备阶段,您将在此阶段确定自动化测试的确切测试步骤、测试数据和预期结果。您还将确定创建和运行 QTP 测试所需的环境和系统配置。
2)在您的应用程序上记录会话 - 在此阶段,您将在 AUT 上逐一执行测试步骤,QTP 将自动记录执行的每个步骤相应的 VB 脚本语句。
3)增强测试——在此阶段,您将插入检查点、输出值、参数化、编程逻辑(如 if...else 循环)以增强测试脚本的逻辑。
4) 重播和调试——增强后,您将重播脚本以检查其是否正常运行,并在必要时进行调试。
5) 运行测试——在此阶段,您将执行测试脚本的实际执行。
6) 分析测试结果——测试运行完成后,您将分析生成的测试融合报告中的结果。
7) 报告缺陷 – 任何发现的事件都需要报告。如果您正在使用 Quality Center,则可以自动报告 QTP 中失败的测试的缺陷。
31)测试自动化框架有哪些不同类型?
自动化框架的类型包括:
1)线性脚本——录制和回放
2)测试库 Archi结构框架。
3)数据驱动测试框架。
4)关键字驱动或表驱动的测试框架。
进一步了解 测试自动化框架.
32) 如何使用 QTP 检查 Web 应用程序中是否存在断开的链接?
您可以使用页面检查点,它可以计算页面上有效/无效链接的数量。
33) 什么是运行时数据表?我在哪里可以找到并查看此表?
参数化输出、检查点值、输出值等数据存储在运行时表中。它是一个 xls 文件,存储在测试结果文件夹中。也可以在测试融合报告中访问它。
34)检查点和输出值有什么区别。
检查点是一个验证点,它将指定属性的当前值与该属性的预期值进行比较。根据此比较,它将生成 PASS 或 FAIL 状态。
输出值是测试运行期间捕获的值,可以存储在指定位置(如 Datatable 或变量)。与检查点不同,不会生成 PASS/FAIL 状态。
35)如何使用 VBScript 连接数据库?
要连接数据库你必须知道
a) 服务器的连接字符串
b) 用户名
c) 密码
d) DNS 名称
您可以直接编写数据库连接命令,也可以使用 SQL QTP提供的查询工具。
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 变量
设置 temp = 20 ' 将为 temp 分配值 20。
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
输出将是
临时文件:C:\DOCUME~1\您\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 中如何防止系统被锁定?
为了防止系统被锁定,可以使用以下两种方式之一
- 创建一个简单的 vbs 文件,其中包含按下 numlock 键的代码并运行该 vbs 文件
- 编辑一个注册表项“DisableLockWorkstation =1”以禁用锁定
57) UFT 中的描述性编程是什么意思?
Descript描述性编程包括属性名称和属性值。当 UFT 难以从对象存储库中识别对象时,直接从脚本中识别对象称为描述性编程。
58) 在 UFT 中解释 qfl 和 vbs 文件之间的区别?
a) qfl是快速测试函数库文件,vbs是 Microsoft的 vbscript
b)qfl 是不可执行文件,而 vbs 是可执行文件
c) 要在 UFT 中使用文件,请从测试设置中关联 qfl 文件,而要包含 vbs 文件,请使用“执行文件语句”
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 文件?
将数据写入的代码 Excel UFT 中的文件是
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 是测试共享存储库 (Test Shared Repository) 的缩写,是为了共享对象存储库而创建的。
要创建 TSR 文件,请按照以下步骤操作
- 打开对象存储库
- 转到文件菜单
- 转到导出本地对象选项并选择它
之后,UFT 将要求您存储 .tsr 文件。提供路径并保存。这将在 UFT 中创建 .tsr 文件
62) 如何在UFT中连接QC?
为了连接 QC,UFT 提供了从 UFT GUI 直接从连接 QC 的选项。
a) 进入文件菜单
b) 选择(QC)质量中心
c) 系统会要求您输入 QC 网址
d) 输入用户 ID、密码和项目
按照上述步骤,您可以连接到 QC,稍后您可以从 QC 本身执行测试。
63) UFT 中的自动化框架有哪些类型?
为了简化使用 UFT 进行测试自动化的过程,设计了测试自动化。UFT 中主要有三种类型的自动化框架
- 关键字驱动框架: 当需要测试多种功能时使用它。
- 数据驱动框架: 它使用不同的测试数据来测试相同的流程,测试数据比应用程序的多种功能更重要
- 混合框架: 它是数据驱动框架和关键字的组合。
64)什么时候应该在 UFT 中使用描述性编程?
无论是通过对象存储库还是描述编程,UFT 都可以识别对象。 Descriptive 编程用于以下场景
a) 它用于删除重复的对象。相同的对象存在于应用程序的不同屏幕或窗口中。如果在这种情况下使用 OR,则必须在 OR 中的不同对象层次结构下存储相同的对象。为了处理这种情况,描述性
编程
b) 在某些情况下,将对象存储在 OR(对象存储库)中并不合适。假设您想在页面上打印 100 个链接,则不应将所有链接都存储在 OR 中。相反,您应该使用 Descript离子编程来访问这些链接。
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 中网络表的总行数?
我们可以通过三种方式在 UFT 中找到表中的行数
a) 使用 UFT webtable 对象的 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
7 至 10 年经验的 UFT 面试问题和答案
71)解释我们可以通过哪些方式将数据表导出到 UFT 中的 Excel?
将数据表导出到Excel有两种方法。
a)数据表.导出(“C:\export.xls”)
b) DataTable.ExportSheet “C:\mysheet.xls”(如果 excel 文件不存在,则创建新文件)
72) 在 UFT 的数据表中,如何从单元格读取值?
要从单元格中读取值,我们需要遵循以下两个步骤
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 循环将执行一系列语句,直到达到特定的计数器值
c)For……Each:为了对集合中的每个对象执行一系列语句,使用“For Each 循环”
While….Wend 循环:只要给定的条件为真,While Wend 循环就会执行一系列语句
74) UFT 中需要处理哪些类型的错误?
在 UFT 中,人们会遇到三种类型的错误
a) 语法错误
b) 逻辑错误
c) 运行时错误
75)有哪些方法可以处理运行时错误?
有多种方法可以处理运行时错误
a) 使用测试设置
b) 使用 on error 语句
c)使用 err 对象
d) 使用 Exit 语句
e) 恢复场景
f) 报告对象
76)exitaction 和 exititeration 有什么区别?
当我们想要退出某个特定动作时使用 Exitaction,而 exititeration 用于退出某个动作的特定动作迭代。
77) 在 QTP 中如何删除字符串中的空格?
您可以使用 替换函数 在 QTP 中删除字符串中的空格
Print replace(“ sdsd sd sd s “, “ “,”””)
输出将是 sdsdsdsds
Itrim 函数 如果只需要删除字符串中的前导空格,则可以使用它
打印 Itrim(“ sdsd sd s “)à输出将是 “Sdsd 标清 s
您可以使用 rtrim 函数从字符串中删除尾随空格
打印 rtrim(“ sdsd sd s ”)à输出将是“ sdsd sd s
78) 在 QTP 中如何获取字符串中的最后一个字符?
在 QTP 中获取字符串最后一个字符的代码
print right( “junior,1) ‘ à Output will be “r”
79)如何在 QTP 中添加同步点?
在 QTP 中添加同步点有四种方法
a) 等待声明 :此语句将暂停执行 x 秒,直到对象出现
b) Wait 属性 :此方法将等待对象的属性获取特定值
c) 存在语句 :此语句将等待,直到对象可用
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 文件和 loadfunction 库之间的区别?
在执行文件中,语句是不能调试的,使用loadfunction库,语句是可以调试的,而且可以加载多个库文件。
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 中的固定大小数组
维度 A (10) – 单一维度
Dim MyTable (5,10) – 多维
b) 动态数组大小不固定
Dim MyArray()重新定义 MyArray(25)
c)在 QTP 中使用数组函数
A=数组(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 中数组的大小
打印 (ubound(arr)+1)
Ubound 返回数组中的最后一个索引 - 因此数组的大小将为 +1
91)在 QTP 中,解释什么是 qrs 文件?
qrs 平均值 “最快速恢复方案”。通过使用恢复场景管理器,我们可以处理测试执行中的异常。在 QTP 中,使用恢复场景管理器,我们可以处理测试执行中的异常。在 QTP 中,当您创建恢复场景时,必须将其保存在 .qrs 文件中。qrs 文件中可以定义任意数量的场景。
92)QTP 中“动作 0”有什么意义?
当您在 QTP 中创建新测试时,会默认创建“操作 0”,同时创建操作 1。为了确定调用其他操作 1,2,3、0、XNUMX 等的顺序,我们使用操作 XNUMX。
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)测试库 Archi结构框架
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) 为基于 Web 的技术和信息系统制定了一些说明和指南,以便残疾人士轻松访问网络。例如,标准强制要求图像必须有“替代文本”。因此,访问网站的盲人将使用文本到语音转换器,即使看不到图像,也至少能理解图像的内容。所有这些标准都由无障碍检查点进行检查。
QTP/UFT 认证测验 1
QTP/UFT 认证测验 2
QTP/UFT 认证测验 3
这些面试问题也会对你的口试有帮助