在对象存储库中维护 TestObjects 与在脚本中动态创建 TestObjects - Katalon Studio

Maintaining TestObjects in Object Repository vs Creating TestObjects dynamically in script - Katalon Studio

最初,当我开始使用 Katalon Studio 进行 Web 自动化时,我正在捕获对象,将它们存储在 Object Repository 中,然后在我的脚本中使用它们。这有点麻烦,现在我在所有最有可能从我的网络应用程序中使用的网络元素上放置 id 标签,并在需要时使用此 [=12 在我的脚本中创建对象=] 我写道:

/**
 *
 * @param buttonID
 * @return TestObject representing the newly created control
 */
@Keyword
public TestObject createControl(String controlID){
    TestObject newControl = new TestObject()
    WebUI.modifyObjectProperty(newControl, 'id', 'equals', controlID, true)
    return newControl
}

尽管这可行,但我想知道 对象存储库 中没有任何对象是否是个好主意。维护对象存储库需要大量工作,这就是我转向这种做事方法的原因,但我对 Katalon Studio 太陌生了,不知道这是否是个好主意。我在官方 Katalon 文档中找不到任何关于此的信息,所以我想我会在这里问。

这取决于你的目的和技能。 保存对象存储库将帮助用户直观地了解对象的存储方式。它还有助于存储多个属性,只需单击一下即可包含或排除这些属性。这些属性可以由 Spy 或 Record Tools 生成。 如果您了解编程,您的编码方法也适用。但是,您必须自己决定定位器。如果所选定位器不再起作用,您必须创建另一个定位器。在对象存储库中,如果 id 更改,测试人员用例选择 class 和其他属性

我也用你的方法。我通常使用一行来创建一个对象:

TestObject myObject = new TestObject().addProperty('css', ConditionType.EQUALS, 'css selector')

对象存储库不能很好地扩展。而且维护难度很大

Katalon 论坛上有有趣的讨论(here, here and especially here,但还有更多有趣的讨论可供查看)。

我能想到的缺点是,如果您使用的是页面对象模型,则应将控件与测试本身分开。解决方案是将选择器(id、名称、css、xpath 或其他)保存在单独的文件中(如 excel table)。