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

问题描述 投票:1回答:2

最初,当我使用Katalon Studio启动Web自动化时,我正在捕获对象,将它们存储在Object Repository中,然后在我的脚本中使用它们。这有点麻烦,现在我把id标签放在最有可能从我的网络应用程序使用的所有网页元素上,我在我的脚本中创建对象,只要我需要它们使用这个CustomKeyword我写道:

/**
 *
 * @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文档中找不到任何关于此的信息,所以我想我会问这里。

testing automated-tests katalon-studio
2个回答
1
投票

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

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

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

关于Katalon论坛(herehere,尤其是here)的讨论很有趣,但还有更多有趣的讨论要讨论。

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.