1

我总共创建了 50 个测试脚本。所有这些脚本都使用几乎相同的对象,因此我创建了一个共享存储库来简化维护工作。

但问题是......在更新运行模式下执行脚本时,QTP 会在本地存储库中添加一些对象,即使它们存在于共享存储库中。我检查了这些新添加的对象的属性,也没有任何变化。

任何人请告诉我 QTP 用来决定是否将对象添加到本地存储库的逻辑。还告诉我一个解决方案,以便不会将任何对象添加到本地存储库中。

4

2 回答 2

1

这里有两件事在起作用。

  1. QTP 以只读模式打开共享对象存储库 (SOR),因为根据定义,SOR 是共享的,QTP 希望确保当有人对 SOR 进行更改时,他知道许多测试可能会受到影响。因此,为了编辑 SOR,您必须使用对象存储库管理器,并且不会自动对 SOR 进行任何更改(更新运行模式维护运行模式
  2. 将对象添加到对象存储库时,QTP 首先检查对象是否已经存在(通过比较属性),如果存在,它会重用现有对象并且不会创建新条目。

这解释了为什么您在本地对象存储库(LOR) 而不是 SOR 中获取对象,(我不确定将未修改的对象添加到 LOR 是否是正确的行为)。

为了在更新运行模式之后传播更改,您应该将 LOR 导出到新的 SOR,然后将其与现有的 SOR 合并。

于 2012-06-26T10:37:59.657 回答
0

我也遇到过类似的问题。虽然执行脚本 qtp 未识别对象,但对象存在于共享 OR 中并且它在应用程序中突出显示。当我在维护运行模式下检查时,我在共享 OR 中更新的一个属性值发生了变化。问题是我监视了那个对象,qtp 将它保存在本地 OR 中。所以下次当我运行它从本地 OR 引用的脚本时,脚本失败了。所以我从对象存储库窗口中删除了对象(显示为本地),然后它显示了共享 OR 的相同对象(这是 QC 路径)

于 2013-02-28T10:28:23.387 回答