2021年100大QTP/UFT面试问答

本问卷分为初学者问题和具备一定经验后的问题。如果有QTP方面的经验,跳到此处的问题# 50。不过,建议阅读所有问题,为面试做好准备。

1) Micro Focus UFT中的对象存储库有哪些类型?

QTP支持2种类型的对象存储库

  1. 共享对象存储库(也称为全局)

  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种录制模式

  1. 正常模式也称为上下文模式

  2. 低级模式

  3. 模拟模式

正常模式:这是默认的记录模式,充分利用了QTP的测试对象模型。是首选的记录模式,用于大多数自动化测试。

低级模式: 此模式记录鼠标操作的精确x,y坐标。它对于记录QTP正常模式未识别的对象非常有用。

模拟模式:此模式记录相对于屏幕/应用程序窗口执行的准确鼠标和键盘的“改变”。此模式对于画图、记录签名、拖放操作等操作非常有用。

8) 如何从一个操作调用到另一个操作?

我们可以通过两种方式调用操作

  1. 复制Action。-在此情况下,操作对象存储库、脚本和数据表将被复制到目标测试脚本。
  2. 调用现有操作。-在这种情况下,不会复制对象存储库、脚本和数据表,但会调用(引用)源脚本中的操作。

9) 什么是虚拟对象?

应用程序可能包含行为类似标准对象但无法被QTP识别的对象。可以在测试结果中定义,虚拟对象将显示为标准类对象。

例如,假设希望在包含用户单击的位图的网页上记录测试。因此,当记录测试时,Web站点与点击位图的坐标相匹配,并打开目标页面。

要使QTP能够在运行会话期间单击所需的坐标,可以为位图的一个区域定义一个虚拟对象(包括这些坐标),并将其映射到按钮类。运行测试时,QTP在定义为虚拟对象的区域中单击位图,以便网站打开正确的目标页。

10) 如何使用QTP进行跨平台测试和跨浏览器测试?解释一下?

需要创建单独的操作来处理不同的操作系统和浏览器

跨平台测试:

使用内置环境变量,可以将操作系统信息上传。

例如Platform = Environment(“OS”),然后根据平台,需要调用在该特定平台上的操作。

跨浏览器测试:

使用此代码,例如 Browser(“Core Values”).GetROProperty(“version”) ,可以提取浏览器及其c根据该值调用与该浏览器相关的操作。

  1. 对象的逻辑名称是什么?

逻辑名称是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) 当序号标识符本身就可以使对象具有唯一性时,为什么没有给予最高优先级呢?为什么我们不能直接使用序号标识符呢?

考虑以下事项-

  1. 如果两个对象彼此重叠,则基于位置的对象识别将失败。

  2. 如果只使用基于索引的识别,脚本可以工作,但脚本执行时间会增加。

因此,使用强制和辅助属性。

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中,异常处理是通过使用

    1. 恢复方案
    1. 使用“ON ERROR”语句

在恢复方案中,必须定义:

  • 1. 触发事件
  • 2. 恢复步骤
  • 3. 恢复后测试-运行

在脚本级别,可以使用ON ERROR RESUME NEXT和ON ERROR GO TO 0语句。

26) QTP中的环境变量有哪些类型?

QTP中的环境变量有三种类型:

    1. 内置(只读)
    1. 用户定义的内部(只读)
    1. 自定义外部(读/写)

可以使用以下语法设置环境变量

Environment.Value("name") = "ITXiaonv"

可以使用以下语法检索环境变量

Environment.Value("name") -返回名称为ITXiaonv
Environment.Value(“OS”) -返回系统操作系统 

27) 位图检查点和图像检查点有什么不同?

位图检查点对图像或图像的一部分执行像素对像素的比较。

图像检查点确实进行像素到像素的比较,但不是比较图像属性,如alt文本、目标url等。

28) QTP中的功能和动作有什么不同?

操作有自己的对象存储库和数据表。例如:可以根据登录、注销等功能将脚本划分为多个操作。

函数是一个VB脚本编程概念,没有自己的对象存储库或数据表。例如:可以在脚本中创建一个函数来连接两个字符串。

29) 什么是QTP中的关键字视图和专家视图?

关键字视图是一个基于图标的视图,它以表格形式显示测试步骤。它还自动生成测试步骤的文档。

专家视图为关键字视图中的每个测试步骤提供相应的VB脚本语句。

30) 解释QTP测试流程?

快速测试流程由6个主要阶段组成:

  1. 创建测试计划-这是准备阶段,可以在此阶段为自动化测试确定确切的测试步骤、测试数据和预期结果。还可以确定创建和运行QTP测试所需的环境和系统配置。

  2. 在应用程序上记录会话-在此阶段,将在AUT上逐个执行测试步骤,QTP会自动记录执行的每一步对应的VB脚本语句。

  3. 增强测试-在此阶段,将插入检查点、输出值、参数化、编程逻辑,如IF…ELSE循环以增强测试脚本的逻辑。

  4. 重放和调试 -增强后,将重放脚本以检查其是否正常工作,并在必要时进行调试。

  5. 运行测试-在此阶段,将执行测试脚本的实际执行。

  6. 分析测试结果-测试运行完成后,将在生成的Test Fusion报告中分析结果。

  7. 报告缺陷-发现的任何事件都需要报告。如果使用的是 质量中心 ,QTP中未通过的测试可以自动提出缺陷。

31) 有哪些不同类型的测试自动化框架?

自动化框架的类型包括-

    1. 线性脚本-录制和回放
    1. 测试库体系结构框架。
    1. 数据驱动测试框架。
    1. 关键字驱动或表驱动测试框架。

了解有关测试自动化框架的更多信息。

32) 如何使用QTP检查Web应用程序中的断开链接?

可以使用页面检查点,它会给出页面上有效/无效链接的计数。

33) 什么是运行时数据表?我在哪里可以找到并查看这张表?

像参数化输出、检查点值、输出值这样的数据存储在运行表中。也可以在Test Fusion报告中访问它。

34) 检验点和输出值的区别是什么?

检查点是将指定属性的当前值与该属性的期望值进行比较的验证点。基于此,它将生成通过或失败状态。

输出值是在测试运行期间捕获的值,可以存储在指定位置,如DATABLE,甚至可以存储在变量中。与检查点不同,不会生成通过/失败状态。

35) 如何使用VBScript连接到数据库?

要连接到数据库,必须知道

    1. 服务器的连接字符串
    1. 用户名
    1. 密码
    1. 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文件,使用以下代码

  1. put- 将所有文件放在服务器上存储单个文件

  2. get-支持从ftp服务器下载单个文件

  3. mget-从服务器下载多个文件

  4. dmput-在服务器上存储多个文件

  5. 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文件的区别?

  1. 创建QFL是快速测试函数库文件,VBS是微软的VBScript

  2. 说明QFL是不可执行文件,而VBS是可执行文件

  3. 允许从测试设置开始使用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的选项。

  1. 用户可以转到文件菜单

  2. 建立国际标准选择(QC)质量中心

  3. 点击此处,系统将要求输入QC url

  4. 用户可以输入用户ID、密码和项目

遵循上述步骤将允许与QC连接,随着可以从QC本身执行测试。

63) UFT中的自动化框架有哪些类型?

为了简化使用UFT进行测试自动化的过程,设计了测试自动化框架。UFT主要有三种自动化框架

  • 关键字驱动框架:当需要测试多个功能时使用。
  • 数据驱动框架(Data Driven Framework):用不同的测试数据来测试同一个流程,测试数据比应用程序的多种功能更重要
  • 混合框架:它是数据驱动框架和关键字的结合。

64) 什么时候应该在UFT中使用描述性编程?

UFT通过对象存储库或描述编程来识别对象。

  1. 表示用于删除重复的对象,屏幕中存在相同的对象的情况,使用描述性编程

  2. 在某些情况下,将对象存储在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
  1. “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中找到表中的行数

  1. 使用UFT webtable对象的rowcount属性

  2. 使用UFT的GetROProperty

  3. 使用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有两种方法。

  1. DataTable.Export (“C:.xls”)

  2. DataTable.ExportSheet “C:.xls”(如果EXCEL文件不存在,则创建新文件)

72) 在UFT的DataTable表格中,如何从单元格中读取值?

要从单元格读取值,两步:

  1. 第一步:设置行指针

  2. 第二步,定义要读取的表中的参数/列名

示例,在事务表中将行指针设置为2

Datatable.GetSheet(“Transactions”).SetCurrentRow(2)

现在,指定要从事务表的module_name 列中读取值

Print datatable.Value (“Module_Name, “Transactions”)

73) UFT中有哪些循环语句,它们的作用是什么?

在UFT中有3个循环可用

  1. Do…..Loop:重复运行循环语句

  2. For…..Next :FOR NEXT循环将执行一系列语句,直到特定的计数器值

  3. For……Each :为了对集合中每个对象的每个语句执行一系列语句,使用“For Each Loop” 而…..Wend Loop:当给定条件为真时,While Loop用于执行一系列语句

74) 在UFT中需要处理的错误类型是什么?

在UFT中,将面临三种类型的错误

  1. 检查语法错误

  2. 检查逻辑错误

  3. 检查运行时错误。

75) 可以通过哪些方式处理运行时错误?

有多种方法可以处理运行时错误

  1. 使用测试设置

  2. 使用ON ERROR语句

  3. 使用Err对象删除错误对象

  4. 继续使用退出(Exit)语句

  5. 评估不同的恢复方案

  6. 报告对象和测试数据。

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中添加同步点

  1. Wait 语句:该语句将暂停执行x秒,直到对象出现

  2. Wait 属性:此方法将等待对象的属性具有特定值

  3. Exist 语句:该语句将等待对象变为可用

  4. 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种录制模式

  1. 正常模式:为默认录制模式,用于大部分自动化活动。不管它们在屏幕上的位置如何,能识别对象。

  2. 低级模式:适用于录制QTP正常模式无法识别的对象。它记录鼠标操作的精确x,y坐标。

  3. 模拟模式:该模式对录制签名、画图、拖放操作等操作非常有用。

84) 可以通过哪些方式从一个动作调用到另一个动作?

有两种方式可以从一个操作调用到另一个操作

  1. 复制操作:在此情况下,脚本和数据表中的操作对象存储库将被复制到目标测试脚本

  2. 对现有操作的调用:在这种情况下,不复制脚本数据表和对象存储库,而是对源脚本中的操作进行调用引用

85) QTP中的可选步骤是什么?如何在QTP中添加可选步骤?

运行测试时,打开对话框测试失败,QTP不一定中止测试运行。在专家视图中添加可选步骤,将可选步骤添加到VBScript语句的开头。

86) QTP中如何定义数组?

在QTP中可以通过3种方式定义数组

  1. 在QTP中创建一个固定大小的数组

Dim A (10) – 单维

Dim MyTable (5,10) -多维

  1. 调整其动态数组大小-大小不固定

Dim MyArray() ReDim MyArray(25)

  1. 使用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文件中可能定义了任意数量的方案。

  1. 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中提供的各种类型的自动化框架有

  1. 解决了线性脚本编写的问题

  2. 建立测试库架构框架

  3. 建立数据驱动的测试框架

  4. 创建关键字驱动或表驱动测试框架

  5. 建立混合测试自动化框架

95) 什么是‘对象间谍’,对象间谍在QTP中的作用是什么?

“Object Spy”是QTP中的一个特性,可以使用它查看测试和运行时对象的属性和方法。

96) 什么是“GetROProperty”,使用GetROProperty需要哪些步骤?

“GetROProperty”是用于检索对象属性的运行时值的内置方法。 要使用GetRoProperty,需要执行四个步骤

  1. 不能在对象存储库中记录则对其使用GetROProperty的对象

  2. 识别记录的对象的运行时属性

  3. 执行命令以检索标识的运行时属性并将值存储在变量中

  4. 后续使用该值

97) 能解释一下如何在QTP中找到数字的绝对值吗?

要找出数字的绝对值,可以使用QTP中的内置函数

Example-   a= -1
Print abs(a) '输出 1

此代码将查找数字的绝对值

  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。所有这些标准都由可访问性检查站进行检查。

IT赶路人

专注IT知识分享