本问卷分为初学者问题和具备一定经验后的问题。如果有QTP方面的经验,跳到此处的问题# 50。不过,建议阅读所有问题,为面试做好准备。
1) Micro Focus UFT中的对象存储库有哪些类型?
QTP支持2种类型的对象存储库
-
共享对象存储库(也称为全局)
-
Per-Action Object Repository(每操作对象存储库,也称为本地)
默认情况下使用按操作对象存储库。每操作存储库的扩展名为“.mtr”。
在处理在多个测试中调用的动态对象时,最好使用共享对象存储库。扩展名为“.tsr”
2) HP QTP支持哪些环境?
QTP支持以下环境
Active X | People Soft | Terminal Emulator |
---|---|---|
Delphi | Power Builder | Visual Basic |
Java | SAP | Visual Age |
.Net | Siebel | Web |
Oracle | Stingray | Web Services |
3) 是否可以使用脚本从另一个测试调用QTP测试。假设有Ar,这在QTP中是可能的吗?
是。可以在测试中调用4个或更多脚本。首先需要使相应脚本中的操作可重用,然后,从目标脚本调用这些可重用的操作。
4) 什么是Action Split,在QTP中使用它的目的是什么?
动作拆分是将现有的动作分为两部分,目的是根据动作的功能划分动作,以提高代码的重用性。
5) 如何处理QTP中的Java树?
首先,将选择Java Add-in并启动QTP。下一步录制操作,如果在录制时遇到问题,可以选择“工具”>“对象标识”>“Java,树对象”,并在强制属性和辅助属性中启用标识。
6) 说明QTP如何识别Object?
QTP根据其相应的属性识别GUI对象。在录制时,QTP将识别并存储特殊属性(如对象中在运行时定义的属性,QTP将比较存储的属性值与屏幕上的属性,以唯一地识别GUI对象。
了解有关对象识别的详细信息
7) QTP中有多少种录制模式?什么时候用呢?
QTP支持3种录制模式
-
正常模式也称为上下文模式
-
低级模式
-
模拟模式
正常模式:这是默认的记录模式,充分利用了QTP的测试对象模型。是首选的记录模式,用于大多数自动化测试。
低级模式: 此模式记录鼠标操作的精确x,y坐标。它对于记录QTP正常模式未识别的对象非常有用。
模拟模式:此模式记录相对于屏幕/应用程序窗口执行的准确鼠标和键盘的“改变”。此模式对于画图、记录签名、拖放操作等操作非常有用。
8) 如何从一个操作调用到另一个操作?
我们可以通过两种方式调用操作
-
复制Action。-在此情况下,操作对象存储库、脚本和数据表将被复制到目标测试脚本。
- 调用现有操作。-在这种情况下,不会复制对象存储库、脚本和数据表,但会调用(引用)源脚本中的操作。
9) 什么是虚拟对象?
应用程序可能包含行为类似标准对象但无法被QTP识别的对象。可以在测试结果中定义,虚拟对象将显示为标准类对象。
例如,假设希望在包含用户单击的位图的网页上记录测试。因此,当记录测试时,Web站点与点击位图的坐标相匹配,并打开目标页面。
要使QTP能够在运行会话期间单击所需的坐标,可以为位图的一个区域定义一个虚拟对象(包括这些坐标),并将其映射到按钮类。运行测试时,QTP在定义为虚拟对象的区域中单击位图,以便网站打开正确的目标页。
10) 如何使用QTP进行跨平台测试和跨浏览器测试?解释一下?
需要创建单独的操作来处理不同的操作系统和浏览器
跨平台测试:
使用内置环境变量,可以将操作系统信息上传。
例如Platform = Environment(“OS”),然后根据平台,需要调用在该特定平台上的操作。
跨浏览器测试:
使用此代码,例如
Browser(“Core Values”).GetROProperty(“version”)
,可以提取浏览器及其c根据该值调用与该浏览器相关的操作。
- 对象的逻辑名称是什么?
逻辑名称是QTP在存储库中创建对象时给出的名称,以便将其与应用程序中的其他对象唯一标识。例如: Browser(“Browser”).Page(“ITXiaonv”)这里ITXiaonv是对象的逻辑名称。
12) 什么是描述性编程?
通常,对象及其属性必须记录在对象存储库中,以便QTP能够对其执行操作。 使用描述性编程,不会将对象及其属性值存储在对象存储库中,而是直接在脚本中提到属性值对。
描述性编程背后的思想不是绕过对象存储库,而是用于识别动态对象。
13) 在使用描述性编程时,使用哪些属性来标识浏览器和页面?
可以使用Name属性
例如: Browser(“name:=”xxx””).page(“name:=”xxxx””)…..
或
还可以使用属性“micClass”。
例如: Browser(“micClass:=browser”).page(“micClass:=page”)….
14) 是否可以使用QTP录制在远程计算机上运行的应用程序?
可以。只要是通过本地浏览器访问应用程序,而不是通过Citrix等远程设备访问应用程序,就可以录制远程应用程序。 如果仍然无法录制,建议在同一台计算机上安装QTP和应用程序
15) 举例说明关键字CreateObject
创建并返回对自动化对象的引用
语法: CreateObject(servername.typename [, location])
参数:
servername:必填。提供对象的应用程序的名称。
typename :必填项。要创建的对象的类型或类。
location:可选。要在其中创建对象的网络服务器的名称。
示例: Set IE = CreateObject(“InternetExplorer.Application”)
16) 可以在操作和共享对象存储库之间切换吗?
是的,可以切换。Test—>Settings—>Resources,可以选择存储库。
17) 什么是对象间谍?怎么用?
object Spy帮助确定被测应用程序的运行和测试时对象属性和方法。 可以直接从工具栏或从Object Repository对话框访问Object Spy。 它在描述性编程过程中非常有用
18) 当序号标识符本身就可以使对象具有唯一性时,为什么没有给予最高优先级呢?为什么我们不能直接使用序号标识符呢?
考虑以下事项-
-
如果两个对象彼此重叠,则基于位置的对象识别将失败。
-
如果只使用基于索引的识别,脚本可以工作,但脚本执行时间会增加。
因此,使用强制和辅助属性。
19) QTP中代码文件的文件扩展名是什么?
代码文件扩展名为script.mts
20) 简要介绍了QTP自动化对象模型
QTP自动化对象模型处理QTP本身的自动化。几乎所有的配置和功能都有一个相应的自动化对象,可以使用自动化对象模型中的相应属性或方法来设置或检索。QTP自动化对象可以与标准的VB编程(如迭代循环或条件语句)一起使用。
21) 文本输出值在QTP中有什么用处?
文本输出值使能够在运行时捕获出现在被测应用程序上的文本。 如果参数化,文本输出值将捕获每次迭代中出现的值,这些值将存储在运行时数据表中以供进一步分析。
22) 什么是Step Generator?
步骤生成器允许使用在脚本中添加测试步骤。使用步骤生成器,可以将步骤添加到脚本中,而无需实际录制。
23) 如何让QTP了解同一类型对象之间的差异
可以使用序号标识符(如index)和一些描述性编程进行对象识别。
24) 什么是Test Fusion Report?
Test Fusion报告,显示测试运行的所有方面,并以树格式组织。 它给出了针对所有迭代执行的每个步骤的详细信息。 如果选择,它还提供测试运行的运行时数据表、屏幕截图和视频记录。
25) 如何处理QTP中的异常?
在QTP中,异常处理是通过使用
-
- 恢复方案
-
- 使用“ON ERROR”语句
在恢复方案中,必须定义:
- 1. 触发事件
- 2. 恢复步骤
- 3. 恢复后测试-运行
在脚本级别,可以使用ON ERROR RESUME NEXT和ON ERROR GO TO 0语句。
26) QTP中的环境变量有哪些类型?
QTP中的环境变量有三种类型:
-
- 内置(只读)
-
- 用户定义的内部(只读)
-
- 自定义外部(读/写)
可以使用以下语法设置环境变量
Environment.Value("name") = "ITXiaonv"
可以使用以下语法检索环境变量
Environment.Value("name") -返回名称为ITXiaonv
Environment.Value(“OS”) -返回系统操作系统
27) 位图检查点和图像检查点有什么不同?
位图检查点对图像或图像的一部分执行像素对像素的比较。
图像检查点确实进行像素到像素的比较,但不是比较图像属性,如alt文本、目标url等。
28) QTP中的功能和动作有什么不同?
操作有自己的对象存储库和数据表。例如:可以根据登录、注销等功能将脚本划分为多个操作。
函数是一个VB脚本编程概念,没有自己的对象存储库或数据表。例如:可以在脚本中创建一个函数来连接两个字符串。
29) 什么是QTP中的关键字视图和专家视图?
关键字视图是一个基于图标的视图,它以表格形式显示测试步骤。它还自动生成测试步骤的文档。
专家视图为关键字视图中的每个测试步骤提供相应的VB脚本语句。
30) 解释QTP测试流程?
快速测试流程由6个主要阶段组成:
-
创建测试计划-这是准备阶段,可以在此阶段为自动化测试确定确切的测试步骤、测试数据和预期结果。还可以确定创建和运行QTP测试所需的环境和系统配置。
-
在应用程序上记录会话-在此阶段,将在AUT上逐个执行测试步骤,QTP会自动记录执行的每一步对应的VB脚本语句。
-
增强测试-在此阶段,将插入检查点、输出值、参数化、编程逻辑,如IF…ELSE循环以增强测试脚本的逻辑。
-
重放和调试 -增强后,将重放脚本以检查其是否正常工作,并在必要时进行调试。
-
运行测试-在此阶段,将执行测试脚本的实际执行。
-
分析测试结果-测试运行完成后,将在生成的Test Fusion报告中分析结果。
-
报告缺陷-发现的任何事件都需要报告。如果使用的是 质量中心 ,QTP中未通过的测试可以自动提出缺陷。
31) 有哪些不同类型的测试自动化框架?
自动化框架的类型包括-
-
- 线性脚本-录制和回放
-
- 测试库体系结构框架。
-
- 数据驱动测试框架。
-
- 关键字驱动或表驱动测试框架。
了解有关测试自动化框架的更多信息。
32) 如何使用QTP检查Web应用程序中的断开链接?
可以使用页面检查点,它会给出页面上有效/无效链接的计数。
33) 什么是运行时数据表?我在哪里可以找到并查看这张表?
像参数化输出、检查点值、输出值这样的数据存储在运行表中。也可以在Test Fusion报告中访问它。
34) 检验点和输出值的区别是什么?
检查点是将指定属性的当前值与该属性的期望值进行比较的验证点。基于此,它将生成通过或失败状态。
输出值是在测试运行期间捕获的值,可以存储在指定位置,如DATABLE,甚至可以存储在变量中。与检查点不同,不会生成通过/失败状态。
35) 如何使用VBScript连接到数据库?
要连接到数据库,必须知道
-
- 服务器的连接字符串
-
- 用户名
-
- 密码
-
- DNS名称
可以直接编写数据库连接命令,也可以使用QTP提供的SQL查询工具。
36) 什么是QTP Batch Testing Tool?
可以使用批处理测试工具运行多个脚本。一旦将脚本添加到工具中,它将自动打开脚本并开始逐个执行。
37) QTP有哪些缺点?
自QTP版本10起
- QTP中的大量测试占用大量内存,增加CPU使用率。
- 由于QTP将结果存储在HTML文件(而不是txt)中,结果文件夹有时会变大。
38) 什么是可选步骤?
声明为可选的步骤不是强制执行的。如果相应的GUI对象不存在,QTP将跳过可选步骤,继续执行下一步。
39) 什么是Reporter.ReportEvent?
Reportter.Reportevent是QTP提供的向测试结果窗口发送自定义消息的标准方法。
语法
Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]
参数:
EventStatus = 0 (micPass), 1(micFail), 2(microDone), 3(microWarning )
结果可以采用任何状态,如通过、失败、警告等。还可以将屏幕截图发送到测试结果窗口。
40) 如何在QTP中声明变量?
可以使用DIM关键字进行声明。可以使用SET关键字为变量赋值。 例如:
Dim temp
声明temp变量
Set temp = 20
将为temp指定值20。
41) 什么是GetRoProperty?
GetRoProperty是QTP提供的标准方法,用于获取运行时对象的属性值。
42) 什么是智能标识?
通常,即使屏幕上的对象属性中有一个与录制的对象属性不匹配。测试失败。
在智能识别中,如果属性值不匹配,QTP不会给出错误,而是使用基础过滤和可选的过滤属性来唯一标识对象。可以在对象识别对话框中启用智能识别。
43) 如何在QTP中将脚本从一台PC导出到另一台PC?
我们可以使用“对象标识”、“测试设置”和“工具/选项”选项卡中的“生成脚本”功能在源计算机上创建脚本的压缩文件。然后可以将这些zip文件导入到目标计算机上的QTP中。
44) 是否可以在同一台计算机上启动两个QTP实例?
不是,只能在同一台计算机上使用QTP的单个实例,但是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) 什么是Action Conversion Tool?
它是QTP提供的内置工具,用于将操作转换为业务流程组件。
49) 函数库的扩展是什么?
扩展名为“.qfl”
50) 如果全局数据表不包含数据,而本地数据表包含两行数据,则测试将迭代多少次?
测试将只迭代一次-全局迭代。
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( "TEMP=%TEMP%" )
myShell=Nothing
输出将是:
TEMP:C:\DOCUME~1\You\LOCALS~1\Temp
其他用户变量(如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;DataSource=G:\ITXiaonv\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文件,使用以下代码
-
put- 将所有文件放在服务器上存储单个文件
-
get-支持从ftp服务器下载单个文件
-
mget-从服务器下载多个文件
-
dmput-在服务器上存储多个文件
-
delete-删除ftp服务器上的文件
MyShell.Run "%comspec% /c FTP -n -s:" & commandstoworkwithftp & " " & Site, 0,True
56) 在UFT中,如何防止系统锁定?
要防止系统锁定,可以使用这两种方法中的任何一种
- 创建一个简单的vbs 文件,其中包含按numlock 键并运行该VBS文件的代码
- 编辑一个注册表项“DisableLockWorkstation=1”以禁用锁定
57) 什么是UFT中的描述性编程?
描述性编程包括属性名称和属性值,当UFT在从对象库中识别对象时遇到困难,而直接从脚本中识别对象时,称为描述性编程。
58) 如何在UFT中解释QFL和VBS文件的区别?
-
创建QFL是快速测试函数库文件,VBS是微软的VBScript
-
说明QFL是不可执行文件,而VBS是可执行文件
-
允许从测试设置开始使用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 = “itxiaonv” read value from Excel file
61) 如何在UFT中创建TSR文件?
TSR的意思是测试共享存储库,它是为共享对象存储库而创建的。
要创建TSR文件,执行以下步骤
- 打开对象存储库
- 转到文件菜单
- 转到导出本地对象选项并将其选中
之后,UFT会要求存储.tsr文件。这将在UFT中创建.tsr文件
62) 如何在UFT中接入QC?
为了与QC连接,UFT提供了从UFT GUI直接连接QC的选项。
-
用户可以转到文件菜单
-
建立国际标准选择(QC)质量中心
-
点击此处,系统将要求输入QC url
-
用户可以输入用户ID、密码和项目
遵循上述步骤将允许与QC连接,随着可以从QC本身执行测试。
63) UFT中的自动化框架有哪些类型?
为了简化使用UFT进行测试自动化的过程,设计了测试自动化框架。UFT主要有三种自动化框架
- 关键字驱动框架:当需要测试多个功能时使用。
- 数据驱动框架(Data Driven Framework):用不同的测试数据来测试同一个流程,测试数据比应用程序的多种功能更重要
- 混合框架:它是数据驱动框架和关键字的结合。
64) 什么时候应该在UFT中使用描述性编程?
UFT通过对象存储库或描述编程来识别对象。
-
表示用于删除重复的对象,屏幕中存在相同的对象的情况,使用描述性编程
-
在某些情况下,将对象存储在OR(Object Repository)中是不合适的,而应该使用描述编程来访问那些链接。
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
- “Array”和“Dictionary”有什么区别?
Array(数组) | Dictionary(字典) |
---|---|
可以使用动态数组 | 没有动态词典的概念 |
必须先设置数组大小,然后才能使用数组 | 不需要设置字典大小 |
在向动态数组中添加额外元素之前,必须使用redim语句 | 要添加额外的元素,不需要编写任何语句,只需要使用Add方法 |
如果不需要特定元素,则没有特定的方法来释放内存 | 可以从字典中删除不再需要的元素 |
68) 什么是UFT中的四舍五入函数?
UFT中的 round 函数用于对小数进行舍入
例如
Mydecimal = 6.3433333
Roundedvalue= Round(Mydecimal , 3)
Print roundedvalue, it will print 6.343
69) 如何在UFT中查找网页表格的总行数?
有三种方法可以在UFT中找到表中的行数
-
使用UFT webtable对象的rowcount属性
-
使用UFT的GetROProperty
-
使用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
71) 解释一下哪些方式将DataTable导出到UFT中的EXCEL?
将数据表导出到EXCEL有两种方法。
-
DataTable.Export (“C:.xls”)
-
DataTable.ExportSheet “C:.xls”(如果EXCEL文件不存在,则创建新文件)
72) 在UFT的DataTable表格中,如何从单元格中读取值?
要从单元格读取值,两步:
-
第一步:设置行指针
-
第二步,定义要读取的表中的参数/列名
示例,在事务表中将行指针设置为2
Datatable.GetSheet(“Transactions”).SetCurrentRow(2)
现在,指定要从事务表的module_name 列中读取值
Print datatable.Value (“Module_Name, “Transactions”)
73) UFT中有哪些循环语句,它们的作用是什么?
在UFT中有3个循环可用
-
Do…..Loop:重复运行循环语句
-
For…..Next :FOR NEXT循环将执行一系列语句,直到特定的计数器值
-
For……Each :为了对集合中每个对象的每个语句执行一系列语句,使用“For Each Loop” 而…..Wend Loop:当给定条件为真时,While Loop用于执行一系列语句
74) 在UFT中需要处理的错误类型是什么?
在UFT中,将面临三种类型的错误
-
检查语法错误
-
检查逻辑错误
-
检查运行时错误。
75) 可以通过哪些方式处理运行时错误?
有多种方法可以处理运行时错误
-
使用测试设置
-
使用ON ERROR语句
-
使用Err对象删除错误对象
-
继续使用退出(Exit)语句
-
评估不同的恢复方案
-
报告对象和测试数据。
76) “exitaction”和“exititeration”有什么不同?
当想要退出特定操作时,使用Exitaction,而使用Exititeration退出操作的迭代。
77) 在QTP中,如何从字符串中删除空格?
可以使用 replace 函数在QTP中删除字符串中的空格
Print replace("sdsd sd sd s ", " ",""")
输出将为:sdsdsdsds
如果只需要删除字符串中的前导空格,则可以使用Itrim函数
Print rtrim(" sdsd sd s ")
可以使用rtrim函数从字符串中删除尾随空格
78) 在QTP中,如何从字符串中获取最后一个字符?
获取QTP中字符串的最后一个字符的代码
print right("junior",1)
输出:“r”
79) 如何在QTP中添加同步点?
我们可以通过4种方式在QTP中添加同步点
-
Wait 语句:该语句将暂停执行x秒,直到对象出现
-
Wait 属性:此方法将等待对象的属性具有特定值
-
Exist 语句:该语句将等待对象变为可用
-
Sync 方法:代码将等待浏览器页面加载完毕,对于Web应用程序测试,使用此方法。
80) 在QTP中解释什么是加密对象
QTP中的Crypt对象用于加密字符串。
语法
Crypt.Encrypt(“ITXiaonv”)
示例:
在本例中,pwd变量中的值使用Crypt加密。加密方法。
然后将该加密值输入到编辑框中。
pwd= “myvalue”
pwd = Crypt.Encrypt (pwd)
Browser(“myb”).WinEdit (“pwd”). SetSecure pwd
81) Excecute文件和loadfunction库有什么区别?
在execute 文件中,不能调试语句。有了loadfunction库,可以调试语句,也可以加载多个库文件。
82) 能解释一下如何在QTP中找到数组的长度吗?
在QTP中查找数组长度的代码为
print(ubound(arr)+1)
ubound返回数组中的最后一个索引-因此数组的长度将为+1。这将是数组中的元素总数
83) QTP中有哪些不同类型的录制模式?什么时候用?
QTP支持3种录制模式
-
正常模式:为默认录制模式,用于大部分自动化活动。不管它们在屏幕上的位置如何,能识别对象。
-
低级模式:适用于录制QTP正常模式无法识别的对象。它记录鼠标操作的精确x,y坐标。
-
模拟模式:该模式对录制签名、画图、拖放操作等操作非常有用。
84) 可以通过哪些方式从一个动作调用到另一个动作?
有两种方式可以从一个操作调用到另一个操作
-
复制操作:在此情况下,脚本和数据表中的操作对象存储库将被复制到目标测试脚本
-
对现有操作的调用:在这种情况下,不复制脚本数据表和对象存储库,而是对源脚本中的操作进行调用引用
85) QTP中的可选步骤是什么?如何在QTP中添加可选步骤?
运行测试时,打开对话框测试失败,QTP不一定中止测试运行。在专家视图中添加可选步骤,将可选步骤添加到VBScript语句的开头。
86) QTP中如何定义数组?
在QTP中可以通过3种方式定义数组
- 在QTP中创建一个固定大小的数组
Dim A (10) – 单维
Dim MyTable (5,10) -多维
- 调整其动态数组大小-大小不固定
Dim MyArray() ReDim MyArray(25)
- 使用QTP中的Array函数创建应用程序
A= Array (10, 20,30)
B= A(2) ’B is now 30
87) 如何在QTP中将上下文写入文本文件?
Content = “ITXiaonv”
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中,如何才能退出loop?
必须使用“Exit For”语句才能在QTP中退出“for loop”。“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的意思是“快速测试恢复场景”。通过使用恢复方案管理器,可以处理测试执行中的异常。在使用恢复方案管理器的QTP中,我们的QRS文件中可能定义了任意数量的方案。
- QTP中“0号动作”的意义何在?
当在QTP中创建新测试的同时创建Action 1时,默认创建Action 0,使用的是Action 0。
93) 能解释一下如何替换QTP中的字符串吗?
要替换QTP中的部分字符串,参考如下所示的代码
例如,
Str = (ITXiaonv)
Suppose if you want to replace “IT” with “QTP” then the code will
print replace(str,“IT”, “QTP”) output will be “QTPXiaonv”
94) QTP中可用的各种自动化框架有哪些?
QTP中提供的各种类型的自动化框架有
-
解决了线性脚本编写的问题
-
建立测试库架构框架
-
建立数据驱动的测试框架
-
创建关键字驱动或表驱动测试框架
-
建立混合测试自动化框架
95) 什么是‘对象间谍’,对象间谍在QTP中的作用是什么?
“Object Spy”是QTP中的一个特性,可以使用它查看测试和运行时对象的属性和方法。
96) 什么是“GetROProperty”,使用GetROProperty需要哪些步骤?
“GetROProperty”是用于检索对象属性的运行时值的内置方法。 要使用GetRoProperty,需要执行四个步骤
-
不能在对象存储库中记录则对其使用GetROProperty的对象
-
识别记录的对象的运行时属性
-
执行命令以检索标识的运行时属性并将值存储在变量中
-
后续使用该值
97) 能解释一下如何在QTP中找到数字的绝对值吗?
要找出数字的绝对值,可以使用QTP中的内置函数
Example- a= -1
Print abs(a) '输出 1
此代码将查找数字的绝对值
- 如何检查DataTable中是否存在参数?
为了检查数据表中是否存在参数,可以使用以下代码
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(“myBaidu”).Page(“Baidu”)
oPage.WebEdit(“xpath:=//INPUT[@name=‘nameofeditbox’]”).Set “search term”
‘Enter value in baidu edit box
101) 如何在QTP中删除EXCEL文件?
要删除QTP中的EXCEL文件,
Set fo = createobject(“Scripting.filesystemobject”)
fo.deletefile(“C:\xyz.xlsx”)
Set fo=nothing
102) 哪些因素会影响位图检查点?
位图检查点受屏幕分辨率和图像大小的影响。
103) 什么是可访问性检查点?
万维网联盟(W3C)为基于Web的技术和信息系统提出了一些说明和指导标准,使残疾人能够轻松地访问Web。所有这些标准都由可访问性检查站进行检查。