在执行更新运行模式时,QTP将对象添加到本地存储库

时间:2012-06-25 14:17:13

标签: automation qtp

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

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

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

2 个答案:

答案 0 :(得分:1)

这里有两件事在起作用。

  1. QTP以只读模式打开共享对象存储库(SOR) 由于SOR是按照定义共享的,因此QTP希望确保这一点 当有人对SOR做出改变时,他知道很多测试都可以 被影响。因此,为了编辑SOR,您必须使用 对象存储库管理器,并且不对SOR进行任何更改 自动(更新运行模式维护运行模式
  2. 将对象添加到对象存储库时,QTP首先检查对象是否已存在(通过比较属性),如果它已经重用现有对象并且不创建新条目。
  3. 这解释了为什么你在本地对象存储库(LOR)而不是SOR中获取对象的原因(我不确定是否将未修改的对象添加到LOR中是正确的行为还是不)。

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

答案 1 :(得分:0)

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