创建测试对象
1、从主菜单中依次点击File > New > Test Object,此时会弹出New Test Object对话窗口。
2、键入测试对象的名字(Name),然后点击OK,此时在对象库(Object Repository)*中便可找到该新建的测试对象
添加一个对象属性
同一个对象不能添加两种属性
1、在测试对象编辑器中(Test Object Editor),点击Add命令;
2、此时会显示新增属性(Add property)的对话窗口;
字段 | 说明 |
---|---|
Name | 对象属性的名称,提供的下拉列表中包含了(xPath,CSS, class, id, title)或者也可以自定义提供 |
Match condition | 执行测试时,从测试程序中搜索实际的对象的条件 |
父对象管理(Manage parent object)
现在越来越多的web程序把元素放进各自的框架(iframe)中进行操作,因此你需要为脚本遍历当前页面的框架并指定要操作的框架。所以,你在操作这些元素对象时需要先用Switch To Frame的关键字来选择操作的框架。
Katalon提供了支持在测试对象视图中定义父级框架(iframe)的功能,因为,你只需要选择父级框架,在自动化测试的执行中便会自动切换到该框架上。
定位对象
Katalon提供了不同的方法去定位测试对象:
xPath
-
Attributes
通过Attributes的方法去定位一个对象,该方法将会自动生成符合该属性的对象的xPath,然后把xPath显示在对象选择器中。
测试对象通常会有多个属性值,在自动化测试执行过程中,Katalon会依据这些属性值来检测对象,勾选Detect object by字段,可用于确定识别的对象的属性。
如下例子中,katalon会在测试的程序中检测到既要满足指定的text又要满足xpath的对象 CSS
在测试程序中验证测试对象
Katalon使用者可以通过在Web Object Spy添加测试对象来验证该测试对象在测试程序中是否仍能被正确检测到。
在需要验证的测试对象中单击右键弹出菜单,选择Add to Web Object Spy即可。
测试对象参数化
Katalon为用户提供了处理动态对象的功能(有些特定的测试对象会因为某些业务规则的问题产生动态变化)。支持测试对象参数化,用户可以利用该方法动态控制对象。下面的例子提供了最基本的使用方法:
1、在手工操作视图中打开测试用例,并双击要进行属性参数化的测试用例。
2、此时会弹出测试用例的输入 (Test Object Input)窗口。展开用例参数 (Object Parameters)并声明你要进行动态控制的属性。这些属性将会在测试执行过程中被标识出。如下图,Katalon在检测到'txt_UserName'对象时会为其标注一个值为'id'的属性。
3、一旦声明了这个属性,用户可以切换到该测试用例的脚本视图并调整检测该测试对象的方法。(通常,用户会像变量一样为其传递属性值或者是根据其情况作为数据参考)
如下是将测试对象动态参数化的基本语法
findTestObject('{your test object}', [('{property}') : '{value of property}'])
举个例子:
- 一个动态属性
findTestObject('Page_Login/txtUserName', ['(id)' : '{48415648}'])
- 两个动态属性
findTestObject('Page_Login/txtUserName', ['(id)' : '{48415648}', [('{name}') : '{controler14585}']])
- 使用变量作为动态属性的值
- 在测试用例中使用变量作为值
脚本视图中的测试对象
在测试用例的脚本视图中可以让用户根据所需对测试对象进行编程。如下例子是如何进行对测试对象的定义和操作:
1、使用 findTestObject()的方法来引用存在的测试对象
// Find an object which was defined already in Object Repository
myPredefinedObject = findTestObject('Page_Katalon Studio/a_Free Download')
2、使用TestObject类来创建一个新的测试对象
// Create a new object programmatically
myNewObject = new TestObject("TheObjectName")
3、使用addProperty()方法给对象添加属性值
// Add property to Test Object, a property is defined by:
// property name,
// condition type,
// property value,
// a boolean value to indicate if the property will be used to identify the object during execution
myNewObject.addProperty("xpath", ConditionType.EQUALS, "//html/body", true)
可以参考以下的一些接口说明进行使用
类 | 方法 | 说明 |
---|---|---|
Test Object | addProperty(String name, ConditionType condition, String value) | 为测试对象添加一个属性 |
setProperties(List properties) | 为测试对象添加属性值 | |
getObjectId() | 获取对象ID | |
findPropertyValue(String name, boolean caseSensitive) | 通过属性的名字来查找一个属性的值 |