发布新日志

  • QTP基础设置

    2015-03-26 08:42:32



    一.Automation>>Record and Run Settings

    第一个选项卡>>web:测试web程序(Web选项卡仅当相应的Web插件安装和加载后才会自动生成)

    Record and run test on any open browser:录制已经打开的浏览器(QTP所支持的)

    Open the following address when a record or run session begins:指定QuickTest打开新的浏览器并只使用指定的URL地址。(输入浏览器 地址)

    Open the following browser when a run session begins:指定浏览器

    Do not record and run on browsers that are already open:不要录制已经打开的浏览器

    Close the browser when the test closes:录制结束时,自动关闭程序启动的浏览器

    第二个选项卡>>Windows applications:测试运行在Windows上的应用,包括标准Windows,Visual Basic和ActiveX的应用程序

    Record and run test on any open Windows-based application:录制已经打开的应用程序。

    Record and run only on:增加应用程序的可执行文件路径

    1.Applications opened by QuickTest:使用QTP打开应用程序

    2.Applications opened via the Desktop (by the Windows shell):通过桌面应用程序打开(由Windows外壳程序)。这个选项只能在记录和运行是通过Windows桌面上打开的应用程序。

    3.Applications specified below:记录应用程序的详细信息

    Application details:设置应用程序路径、工作文件夹(如果没有指定工作文件夹,则默认为应用程序文件夹问工作文件夹)、程序参数等…
    二. File>>settings…

    第一个选项卡>>properties 程序配置

    Name、Author、Created by、Last modified by分别指出:测试的名称、谁创造了测试(Windows用户名)、QuickTest版本号、QuickTest最后一次修改的版本号。

    Location :文件的绝对路径。

    Description:测试的描述。

    Associated add-ins:相关的加载项显示添加与测试相关的插件

    Modify:选择外接程序与测试相关联(选择当前链接的插件)。

    Generate script. 导出当前settings里面所有配置信息的脚本,这些脚本里面的对象都是qtp的自动化对象模型。(使用时在resources下导入该qfl文件)

    第二个选项卡>>Run 运行设置

    Data table iterations:针对table数据表的循环行数;指定测试迭代的次数。

    1.Run one iteration only:只运行一次迭代(第一行)。运行测试只有一次,只用在全球数据表的第一行。

    2.Run on all rows:运行的所有行。运行具有使用全局数据表的所有行反复测试。

    3.Run from row __to row__:从行__运行到行__。运行具有指定行的使用在全范围内的数据表中的值迭代测试。

    When error occurs during run session:为错误发生在运行测试时,程序如何响应(提示类型)

    1.popup message box:一个错误在运行过程中会发生时,QuickTest会显示一个弹出消息框,描述该错误。你可以选择这个消息框按钮继续或终止运行会话。

    2.proceed to next action iteration:发生错误时QuickTest强制进入下一个循环动作。

    3.stop run:发生错误时QuickTest会强制停止运行测试。

    4.proceed to next step:在测试中发生错误时QuickTest强制执行下一个步骤。

    object synchronization timeout:QuickTest强制等待一个对象在运行前加载的等待时间。

    注:当使用Web对象的工作时,QuickTest最多等待的时间量的浏览器导航超时选项设置,加上对象同步超时设置的时间

    Disable Smart Identification during the run session:启用智能识别对象(对相似的智能识别失效。只要做web测试,建议都选上。选上后再抓对象。)

    注意:当您选择此选项,启用智能识别的对象属性和对象库对话框复选框被禁用,虽然保存设置。当您清除此选项,启用智能识别复选框恢复到原来的设置或关闭

    Save image of desktop when error occurs (if test is run by the Mercury Business Process Monitor):此选项仅适用于由该业务流程监控Mercury应用管理组件运行测试。

    字面翻译:如果出现错误时捕捉桌面的快照。

    第三个选项卡>>Resources 调用外部资源(如函数脚本)

    Libraries:添加、删除和排序的文件;还可以设置新的默认函数库

    Set as Default:设置为默认设置为默认清单,在new test的时候程序会自动加载这些资源。

    Check Syntax:验证是否有相关的函数库包含语法错误。(语法检查)

    Data Table:指定数据表的位置

    1.Default location (under test directory): 默认位置(在测试目录)。

    2.Other location: 其他位置。

    第四个选项卡>>Parameters 输入、输出值设置

    Input parameters:输入参数,指定的参数的测试可以接收来自源程序运行或调用它的值。

    Output parameters:输出参数,指定的参数,测试可以传递给源程序,运行或调用它。

    第五个选项卡>>Environment 环境变量设置

    Built-in:内置环境变量。指QTP自身的环境变量(如操作系统,计算机名等),可以随意调用。

    1.Name:变量名

    2.Description:描述

    3.Current value:变量值

    User –defined:用户定义的环境变量。只有当前的脚本才可以调用。

    1.name:自定义环境变量名

    2.value:自定义环境变量值

    3.type:每个用户定义的变量类型:内部或外部。

    4.export:导出用户自定义的环境变量

    5. Load variables and values from external file:文件保存

    第六个选项卡>>Web  web设置

    Browser navigation timeout:QuickTest等待网页载入时间的最大值。

    User name:用标准的认证机制的用户名。

    Password:使用标准的密码验证机制。

    Advanced:打开高级身份验证对话框,它使您可以手动在您的网站日志,以允许访问受密码保护的资源,采用先进的验证机制。

    第七个选项卡>>Recovery  场景恢复设置

    Scenarios:显示每个场景恢复方案的名称和路径。可以添加,删除,并优先列表中的场景,可以编辑所选文件的文件路径。

    Scenario description:显示对场景恢复方案的描述。

    Activate recovery scenarios:设置何时启动场景恢复方案

    1.On every step:每一个步骤都运行场景恢复。

    2.On error:出错时运行场景恢复。

    3.Never:整个运行测试都不运行场景恢复。

    Set as Default:还原默认设置
    三.接下来tools>>options…

    第一个选项卡>>General 常规设置

    Display Add-in Manager on startup:在启动时显示加载项管理器(插件选择)

    Display Welcome screen on startup:在启动QTP时显示欢迎界面

    Check for software updates on startup:启动时检查是否有更新

    Disable recognition of virtual objects while recording:录制时禁用虚拟对象识别,QTP在创建好虚拟对象后,如果选择了此项,则在录制到要用虚拟对象的时候,录制结束后,代码中会直接把要用虚拟对象的地方省略

    Automatically update test and component steps when you rename test objects:当重命名测试库中对象后自动更新测试和组件步骤

    Automatically generate "With" statements after recording:

    Generate "With" statements for __ or more objects:(with:搞格式用,简洁)

    When pointing at a window, activate it after __ tenths of a second:

    Restore Layout:初始化QTP窗口布局。

    Generate Script:导出配置对话框,点击该按钮将会把options中的配置以脚本形势导出来,里面大多使用自动化对象模型的对象,大家可以试试看导出的内容。

    第二个选项卡>>Folders设置当前测试脚本路径.

    通过此页可以设置当前测试脚本路径.

    第三个选项卡>>Active Screen快照的截图策略详细设置。

    快照的截图策略详细设置。该设置会增加大量的磁盘空间。

    Capture level:指定QTP录制时存储对象的级别(级别越高,越占用磁盘空间)

    Custom Level:自定义Action选项

    Default Level:恢复对象存储级别默认值

    Advanced:高级(定义Action外观)

    第四个选项卡>>Run

    Run mode:

    1.Normal (displays execution marker);Delay each step execution by:设置运行步骤间隔时间且会有当前运行步骤提示

    2.Fast:以最快速度执行测试

    Submit a defect to Quality Center for each failed step:自动提交测试中的bug信息,需连接到一个QC/TD

    View results when run session ends:测试运行结束,结果显示会话框自动弹出。

    Allow other Mercury products to run tests and components:

    Save still image captures to results:快照功能

    1.Always:每一步骤都保存快照

    2.For errors:出现错误时保存快照

    3.For errors and warnings:出现错误或警告时保存快照

    Save movie to results:录像功能

    1.Always:每一步骤都保存录像

    2.For errors:出现错误时保存录像

    3.For errors and warnings:出现错误或警告时保存录像

    Save movie segment up to __  KB prior to each error and warning:指定录像的起始点(当录像保存类型不为‘Aleays’时,在出现错误或警告前多少KB开始录制)

    Save movie of entire run:测试执行过程全部录像并保存

    Advanced:进阶(仅当保存录像的选择。提供先进的屏幕记录器选项会影响电影文件大小和外观。)

    第五个选项卡>>Windows Applications

    Attached text:

    Search radius:搜索半径;指出搜索最大距离,以像素为单位。

    Search area:搜索范围;指定对象的搜索区域。

    Open menu to retrieve item properties:在运行过程中检索会话菜单项属性(默认选择)。

    Record non-unique list items:当一个以上的对象具有相同的名称。则指定属性区分

    1.by name:通过名称。记录对象的名称进行识别

    2.by index:通过索引。记录对象的索引号进行识别。

    Record owner-drawn buttons as:如何识别并记录在应用程序上的对象。

    1.push buttons:按钮

    2.check boxes:复选框

    3.radio buttons:单选按钮

    4.objects:对象

    Advanced:打开高级选项对话框,可以自定义记录和运行Windows应用程序的选项。

    第六个选项卡>>Web

    Ignore the following browsers:忽略任何下面指定的浏览器(网页)。

    Ignore Quality Center:忽视QC中同时被打开的录制或运行一个测试或组件的实例

    Add __ seconds to page load time:指定页面加载的时间。

    Broken links - check only links to current host:(默认勾选)检查当前的主机断开的链接。

    Page/Frame. Options:自定义页和框架的测试对象。

    Advanced:打开高级Web选项对话框,可以自定义记录和运行网站的选择。
    四.tools>>View Options

    第一个选项卡>>General

    Show line numbers:专家视图窗口在左侧显示行号。

    Auto-indent:启动自动缩进

    Indent selected text when pressing Tab key:按‘Tab’键进行缩进

    Statement completion:语法自动生成

    Draw box around current line:

    Show all characters:显示符号(可选制表符,新行,空格字符符号)。

    Auto-expand VBScript. syntax:自动扩展VBScript语法。

    Use tab character:一个制表符‘Tab’键 所占的字符数。

    第二个选项卡>>Fonts and Colors  外观设置

    外观、颜色、字体设置

    第三个选项卡>>Key Binding 个性化设置

    设置快捷键
    五.Tools>>Object  Identification:对象识别

    Environment:显示当前加载的所有插件。选择不同的插件,下面会出现当前插件自带标准的Test Object Class(测试对象类)。

    User Defind:可以自定义。
    选择具体的测试对象类,右面有Mandatory Property(必须的属性)和Assistive Property(辅助的属性)。当必须的属性不足以识别一个对象时,可以会加上辅助的属性来识别。
    Enable Smart Identification :是针对某个小的脚本来进行屏蔽相似匹配功能。
    六.tools>>Web Event Recording Configuration:web事件录制配置

    Default Settings 还原默认设置

    在Custom Web Event Recordiing Configuration中:点击Custom Setting按钮。

    窗口中存放对象需要录制的方法,可以对对象的方法进行维护。

    例如:Event——》add——具体对象方法

    Objects pane:(左)显示Web测试对象类和HTML标记的对象列表。

    添加对象:object>add。

    只有HTML标签中的对象可以被删除。从清单中删除一个HTML对象,object>delete。

    Events pane:(右)显示与对象关联的事件清单。

    添加事件:event>add。

    删除事件:enevt>delete。

    Event Name:事件名称

    Listen:触发条件

    1.Always:始终开启该事件

    2.If Handler:由用户触发事件

    3.If Handler or Behavior:由用户或程序触发事件

    4.Never:始终关闭该事件

    Record:是否该事件(操作)

    1.Enabled:运行录制

    2.Disabled:禁止录制

    Reset:初始化设置
    Reset to:可以设置High、Medium和Basic(最基本的标准对象库)
  • QTP Web 操作

    2014-04-16 10:44:35

    QTP如何打开浏览器,并进入网站,关闭浏览器

    '打开IE,进入系统------方法1:快
    SystemUtil.Run"C:\Program Files\Internet Explorer\IEXPLORE.EXE","http://www.baidu.com"

    '打开IE,进入系统------方法2:慢
    SystemUtil.Run"http://www.51testing.com"

    '打开IE,进入系统1后,再跳转到系统2
     SystemUtil.Run"C:\Program Files\Internet Explorer\IEXPLORE.EXE","http://www.51testing.com"
    Browser("micClass:=Browser").Page("micClass:=Page").Sync : wait 2
    Browser("micClass:=Browser").Navigate "http://www.hao123.com"
    checkURL = Trim(Browser("micClass:=Browser").Object.LocationURL)
    print checkURL


    '打开多个浏览器,进入不同页面
    SystemUtil.Run"C:\Program Files\Internet Explorer\IEXPLORE.EXE"
    SystemUtil.Run"C:\Program Files\Internet Explorer\IEXPLORE.EXE"

    Browser("CreationTime:=0").Navigate "http://www.51testing.com"
    Browser("CreationTime:=1").Navigate "http://www.hao123.com"

    '关闭浏览器

    Browser("micClass:=Browser").Close


    部分Browser方法,如Navigate、Back、Home、Refresh等在某些人的机器上是好用的,但在另外一些人的机器上就不好用了。脚本执行到这些方法,并不会抛出错误;而且qtp日志里看到的状态是"done".

        经过一段时间的观察,终于发现这些机器上IE加载项(IE"工具"->"管理加载项")的不同:

        BHOManager Class插件的问题。文件名是BHOManager.dll,部分人的机器上该插件被禁用或删除掉了,猜测原因可能是使用了某些清理ie的工具导致。

        解决该问题的方法很简单:

        如果是被禁用了,只要重新启用即可;如果是被删除掉了,可以重新安装qtp,或者从别处拷贝BHOManager.dll文件过来,用regsvr32 BHOManager.dll注册后就可以了。


     SystemUtil.Run "http://www.51testing.com"  
    Browser("micClass:=Browser").Navigate "http://www.baidu.com"    
    Browser("micClass:=Browser").Page("micClass:=Page").Sync:wait 1

    '打开新的标签
    Browser("micClass:=Browser").OpenNewTab:wait 1
    Dim testHWND 
    testHWND = Browser("creationtime:=1").GetROProperty("HWND")
    Browser("creationtime:=1").Navigate "http://www.qq.com"
    Browser("creationtime:=1").Page("micClass:=Page").Sync:wait 2

    '关闭新的标签
    Browser("hwnd:="&testHWND).close
    Browser("creationtime:=0").Refresh:wait 3

  • QTP运行错误:对象无法识别的解决办法(转)

    2009-05-13 15:05:35

     

    1.1 如何去识别对象描述(Identifying Test Object Descrīption Problems)
         如果你能在被测程序中看到对象,但仍出现了“Cannot Identify Object”错误信息,这就表示仓库中对象的描述与程序中对象的描述一定存在着差异。
         解决对象描述问题的第一步是找到差异,最简单的方法是将仓库中对象的属性值与程序中对象的属性值进行比较。(仓库中对象的属性值可在Object Repository窗口中查看,程序中对象的属性值可用Object Spy功能查看。)
         比较仓库中对象的属性值与程序中对象的属性值的操作见1.3。
         在完成比较后,是否发现存在差异?如果是,请参考1.4;如果否,请参考1.5。

    1.2 处理对象丢失问题(Solving Missing Object Problems)
    在运行脚本时,QTP尝试进行某种操作,而该操作的对象在程序中却没有出现,出现这种情况的原因有以下几种:
     对象不再存在。对象已经被从程序中删除。解决方法:见1.2.1。
     对象还没有装载。解决方法:见1.2.2。
     当前的程序页面(或窗口)不正确,不是对象所在的页面(或窗口)。解决方法:见1.2.3。
     前一个步骤没有正确执行。解决方法:见1.2.3。

    1.2.1 解决对象不再存在的问题
    如果对象已经不再在被测程序中存在,则应在脚本中修改或删除相关步骤。

    1.2.2 解决对象装载超时的问题
    如果对象丢失的原因是因为没有足够的时间装载,尝试以下解决方案:
    a.对于Web对象,增加Browser Navigation Timeout(File>Setting>Web页签)时间。
    b.在包括该对象的步骤前使用Wait语句,让QTP在执行该步骤之前等待一段时间。

    1.2.3 检查前面步骤的执行情况
    如果是因为打开了错误的页面(或窗口)导致对象丢失问题,或因为前一步骤执行措误导致对象丢失问题,则请按以下方法检查原因:
    a. 如果怀疑在完成脚本后,被测程序又发生了改变,则检查对象的继承关系以及对象描述。参考1.1。
    b. 如果怀疑脚本错误,则检查脚本的每一个步骤。你可能是遗失了某个步骤,也可能是使用了不正确的方法或参数。

    1.3 测试对象的属性值与Run-time对象的属性值的比较(Comparing Test Object and Run-Time Object Property Values)

    根据以下的步骤比较测试对象与Run-time对象的属性值:
    1) 进入Obecjt Repository窗口(Resources>Object Repository),选择对象。
    2) 记录对象的class以及它的各个属性及属性值。
    3) 打开被测程序,并打开包含被测对象的页面或窗口。
    4) 在QTP中选择菜单Tools>Object Spy或点击Object Spy按钮,打开Object Spy对话框
    5) 选择“Test Object Properties”选项。
    6) 点击右上角的按钮(带有手图标的),这时QTP窗口以及Object Spy对话框都被最小化。
    7) 在程序页面(或窗口)中点击目标对象,恢复Object Spy对话框,并在对话框中显示对象及其父对象(以树的形式显示),并在Properties页签中显示当前对象的属性及属性值。
    8) 这时Object Spy对话框的Properties页签中显示Run-time对象的所有属性,在此查看对象的class,以及它的属性及属性值,并将它与第2步中记下的内容进行比较。

    1.4 解决对象描述存在的问题(Solving Object Descrīption Problems)
         如果发现仓库中对象的属性值与程序中对象的属性值存在不同,你应该判断这个不同是个别对象的问题,还是其它同类对象也存在相同的问题。
         是所有(或多个)同类对象都存在问题吗?如果是,则参考1.6;如果否,则参考1.7

    1.5 关于父对象描述的识别问题(Identifying Parent Object Descrīption Problems)
    对象的识别还与它所继承的父对象有关。
         如果你能在被测程序中看到对象,而且程序中对象的属性值与仓库中对象的属性值也是一致的,但仍然遭遇到了“Cannot identify object”错误,则这个错误可能与它的父对象有关(如仓库中父对象的属性值与程序中父对象的属性值不一致),也可能是仓库中的对象与程序中对象的继承关系不相同导致的。
    要判断是继承关系中的哪个父对象出现了问题,请尝试下面的方法之一:

     重新录制对象,比较新旧对象的父对象。
    欲了解如何完成比较,参考1.8。
     对继承关系中的每个父对象,分别插入一个Exist语句,并运行该部分脚本。
    欲了解如果创建Exist语句,参考1.9。
    注:你也可以使用Object Repository窗口中的Highlight in Application功能,在被测程序中定位对象。
    一旦找到了存在问题的父对象,接下来偿试以下方法:
     修复存在问题的父对象的描述。方法见1.4。
     在专家视图的模式下,查找所有继承存在问题的实例并进行修正。举例:1.8.1。

    1.6 解决某类对象的识别问题(Soving Object Identification Problems for a Test Object Class)
         如果你发现某类对象的对象描述对于被测程序来说都不是很合理,或你预期到对象描述中的某属性值是经常变化的,你可以在Object Identification对话框中改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。

    1.7 解决单个对象的描述问题(Solving Individual Test Object Descrīption Problems)
    选择下列方法之一来解决对象的描述问题:
     如果被测程序中对象描述发生了改变,并且你也清楚改变的内容,并且该改变是永久性或长期性的,你可以直接手工修改仓库中对象描述中的相关属性值。
     如果被测程序中的对象的属性值依赖于前面的步骤或其它对象,则将该属性值参数化,这样就可以使用其它步骤的输出值为属性值。
     如果属性值的组成部分中,部分是固定的,部分是动态改变的,则可以将属性值设计为正则表达式。
     如果属性值是遵循某种规则变化的,或者是不可预期的,则从对象描述中移除该属性,并向对象描述中添加一个或多个属性以便于QTP进行对象识别。
     If you can only access the information on the property values during the run session, you can create and use functions that use programmatic descrīptions to identify the object using property values retrieved earlier in the run session.
    For more information on programmatic descrīptions, see Using Programmatic Descrīptions.
     如果在录制过程中对象是唯一的,但现在程序中出现了两个或多个描述相同的对象,但是它们在页面(或窗口)中的位置不相同,则应在Object Properties或Object Repository窗口中,向对象描述中添加一个ordinal identifier(index或location)。

    1.8 重新录制对象,以判断父对象描述是否存在问题(Re-recording an Object to Identify Parent Object Descrīption Problems)
    根据下面的指引,来判断父对象的问题。
    通过重新录制对象,来判断它的父对象是否存在问题:
    1) 打开浏览器或程序,来到包含被测对象的页面或窗口。
    2) 在关键字视图模式,选择最后一个组件(component),或在专家视图模式,将光标放在最后一个脚本步骤的下面。
    3) 点击Record按钮,或选择Automation>Record。
    4) 点击(或操作)页面或窗口中的目标对象。
    5) 点击Stop按钮,或选择Automation>Stop,完成步骤添加。
    6) 右击新添加的步骤,并选择Object Properties右键菜单。
    7) 在Object Properties对话框中,点击Repository,打开Object Repository窗口,并选中了新对象。注意记下该对象的继承关系。
    8) 在Object Repository窗口中找到旧的对象(即存在问题的对象),将它的继承关系与新对象的继承关系进行比较。
    通过比较,可以检查到新旧对象是父对象的描述存在不同,还是它们的继承关系根本就不同。
    a. 如果是父对象的描述问题,则修改父对象的描述。参见1.4.
    b. 如果是对象的继承关系不正确(即具有不同的父对象)引起的问题,则在脚本中找到所有使用该继承关系的实例,将它们替换为正确的继承关系。举例:参见1.8.1。

    1.8.1 举例
         假设有一个带有Frame的网站,你录制了一个操作针对Image对象“Poster”的操作步骤。在Object Repository窗口,你可以Image对象的继承关系如下所示:
    MyCompany(Browser)
         MyCompany(Page)
             Main(Frame)
                  Poster(image)
         当你运行脚本时,网页看起来没有什么不同,但是识别Image对象时却出现了“Cannot identiry object”的错误提示。当你重新录制操作步骤,然后在Object Repository窗口中查看新的Image对象时,发现该对象的继承关系如下所示:
    MyCompany(Browser)
         MyCompany(Page)
              Poster(image)
         从中可以看出,Frame已经从Web Page中移除,所以尽管Image对象“Poster”的描述没有发生任何改变,但它的继承关系已经改变了。
         在Object Repository窗口,你可以看到新旧Image对象“Poster”是两个完全不同的对象:旧的位于已经被移除的Frame对象之下,而新的则直接位于Page“Mycompany”对象之下。
         修复这个问题,可以在脚本步骤中将旧的对象替换为新的对象。
         为了保持Object Repository窗口的整洁,你应删除那些已不再存在的对象(如本例中的Frame)。

    1.9 创建Exist语句,以判断父对象的描述是否存在问题
         QTP在录制发生在某个对象上的操作时,也会同时去了解对象以及它的继承关系。因此,如果在运行过程中,QTP不能识别继承关系中的任何一个父对象,都会导致目标对象的识别失败。
         使用带有Exist方法的Msgbox语句,可以方便的检查出是继承关系中的哪个父对象出现了问题。
         假设在运行下面脚本时,你遇到了“Cannot identify Object”错误信息(但是可以确定对象仓库中Link对象的描述与当前程序中对象的描述是完全一致的):
    Browser("Yahoo!").Page("Yahoo!").Link("Arts & Humanities").Click
    你可以在该语句前面插入以下语句:
    Msgbox Browser("Yahoo!").Exist
    Msgbox Browser("Yahoo!").Page("Yahoo!").Exist
    Msgbox Browser("Yahoo!").Page("Yahoo!").Link("Arts & Humanities").Exist
    然后你从头开始运行脚本,发现第1行语句运

         但是,当QTP运行到第2步时,就弹出信息框,内容为“False”,表示不能找到Page object。这就证明Page对象存在问题。
         确定了出现问题的父对象以后,修复该问题。参见1.4。


    2.       运行错误:对象不唯一(The object is not unique)
    在被测页面或窗口中的同一父对象下,找到多个与仓库中对象描述相符的Run-tim对象。
    请确定是只有个别对象存在此问题,还是此类对象的所有对象(或部分对象)存在此问题。
    此类对象的所有对象(或部分对象)都存在此问题吗?如果是,参考2.1;如果否,参考2.2。

    2.1 为某对象类设置能唯一识别对象的描述规则(Configuring Unique Test Object Descrīptions for a Test Object Class)
         如果你发现某类对象的对象描述都不足以唯一识别对象,你可以在Object Identification对话框中,改变该类的识别属性的设置,或定义该类的Smart Identification设置并启用Smart Identification机制,这样QTP就可以唯一识别对象了。

    2.2 设置通唯一识别对象的对象描述(Creating a Unique Test Object Descrīption for an Object)
    查看当前对象的描述,并偿试在程序中找到其它具有相同描述的对象并查看它们的描述。
     如果你找到了可以将它们区别开来的一个或多个属性,则修改仓库中对象的相关属性(如向描述中添加属性等),以使QTP在运行时可以唯一识别它。
     如果它们的识别属性完全相同,则在对象描述中为对象添加一个ordinal identifier(index或location)。

    3.       运行错误:找不到父对象(Parent not found)
    识别对象时,会先识别它的父对象是否正确。如果遇到“Parent not found”的错误信息,请偿试以下解决方法:
     修复出现问题的父对象的描述。参见1.4。
     在脚本中找到继承关系不正确的实例,并修改为正确的继承关系。例如1.8.1。

    4.       运行错误:无效的参数(Invalid arguments)
    一个或多个方法的参数是无效的。
    参数无效可能是参数类型错误,也可能是参数个数不正确。
    根据以下建议,找到方法的正确语法:
     在Keyword模式,如果方法包括参数,则在Value栏会显示该方法的参数提示。

     在Expert 模式,如果方法包括参数,则当你插入方法然后按下Shift+Ctrl+Space键时,QTP会显示该方法的参数的提示信息。(注:只有在Editor Options对话框的General页签中打开了Statement completion功能时才可以看到参数的提示信息。)


    5.       运行错误:不能识别item(Cannot identify item)
    QTP不能识别方法参数中指定的列表或树对象的item时,请确认指定的item是否存在于对象之中。
     如果item不存在,则删除相关脚本步骤,或修改item。
     如果item存在,但被测程序中它的名字发生了改变,则修改item的名称,或在脚本中使用item的index而不是名字(如“#4”)。注意,不同的对象或方法,它们使用index的语法可能不同。

    6.       运行错误:对象的item不唯一(The object’s item is not unique)
    在列表或树对象中,可能有多个名字相同的item。
    在这种情况下,可以指定item使用index(例如“#4”)。

    7.       运行错误:运行失败(Test run failed)
    测试运行失败,还有可能是其它未知错误造成的。检查出现错误时的脚本步骤。
    如果错误出现在执行检查点或输出值时,请查阅关于检查点与输出值的帮助。
    如果错误出现在使用外部文件时,如数据库表、数据库、环境变量文件、或关联仓库文件等,则检查是否可以正常获取并使用文件,或这些文件的存储格式是否正确。
    如果错误出现在完成某个脚本动作时,请参考QuickTest Object Model Reference帮助,以确认方法或函数的使用是否正确。
    如果错误出现在执行一个标准的VBscrīpt语句时,参考Microsoft VBscrīpt Reference以获得帮助。
Open Toolbar