在新发布的 CukeTest 1.5.7版本中,增强了模型管理器中对于控件的校验和纠正,有效的提高了测试对象在复杂应用中和控件匹配的准确性。
术语解释:控件、测试对象和树
控件指的是应用中的控件、组件,如按钮、文本框、输入栏、滚动条等等不同类的控件;
测试对象指的是 CukeTest 识别到应用中的控件后生成的测试对象实例,通过调用该测试对象提供的操作接口,使得我们能够实现自动化的控件操作。
树指的是表现控件信息的一种方式。由于控件之间的关系通常是父容器、子控件、并列控件等等,而在 CukeTest 生成的测试对象实例则是以树结构来表现不同对象间的上下级或者左右并列的关系。
场景
用户之前在使用CukeTest 进行桌面应用自动化时,可能会出现以下场景:
添加了控件但是高亮的位置不对——可能因为对象匹配到多个控件;
添加了控件但是实际操作时却提示1003: 不能找到这个对象——可能因为对象树结构中某个父节点存在歧义,匹配到了其它控件;
增删对象后出现控件无法定位的问题:对象树结构更改导致现有节点产生歧义;
新版本中针对用户遇到的这些这些情况提供了增强的支持,下面我们来看看新的 CukeTest 提供了哪些新特性吧。
新特性
这里描述一下跟桌面应用模型管理器识别的几个新特性,主要跟侦测器相关。下面这个是侦测器:
侦测器1. 增强了控件唯一性验证
在模型管理器中的侦测器识别到控件后,会自动验证对象的唯一性,即是否能唯一的匹配到一个控件。同时如果用户应用程序界面有变化,也可以手动点击“控件唯一性验证”按钮验证唯一性。
“控件唯一性验证”按钮
如果验证不唯一,在用户添加对象到模型中时,会提示是否要添加索引使其唯一识别。如果需要唯一识别,用户可以点击“自动添加索引”按钮为不能唯一识别的对象添加索引值。
唯一性验证配合另一特性——“自动添加索引”功能可以快速向模型添加唯一识别对象。
1.1 自动唯一性验证
在侦测到控件后,会自动验证控件的唯一性。如果用户重新勾选需要的对象和识别属性时,其唯一性都也有可能变化,因此也会自动重新验证唯一性。在添加控件阶段会自动的进行唯一性验证并将不能唯一识别控件的对象标红。它提高在添加控件阶段更精准的添加需要的控件,唯一性验证会在以下几种情况中自动的触发:
侦测控件完成时;
树结构修改对象勾选时;
增删识别属性时;
唯一性验证过程中会在状态条上显示“取消”链接。如果不需要继续验证,可以点击它取消唯一性验证。
1.2 唯一性验证反馈
在用户应用程序界面有变化时需要手动点击“控件唯一性验证”按钮。如果控件可以被唯一识别,会红框闪烁高亮控件,如果不能被唯一识别,控件会显示橙色的框。
当目标控件无法通过唯一性验证时,会以红色标识出该控件所在树中不唯一的父节点(可以理解为标识出控件识别在哪一级开始出现歧义);并且会在应用中使用橙色高亮框标识控件,如下图。
唯一性验证未通过
唯一性验证通过
当通过追加识别属性、调整树结构等方法解决了歧义节点,便会重新进行唯一性校验,如果红色消失,代表目标控件能够正常匹配;如果红色仍存在,则需要继续消除歧义节点。
2. 歧义节点定位
将控件识别为测试对象后,会将测试对象所在的树添加进模型管理器。由于测试对象对控件的匹配是根据树结构自顶向下一级一级匹配的,因此如果当存在歧义节点,就会导致搜索不到目标的控件。
在旧版 CukeTest 的模型管理器中,会直接抛出1003: 不能找到这个对象的错误提示,而在新版本中,为模型管理和侦测器添加了定位歧义节点的新特性。定位歧义节点,顾名思义,在自顶向下的搜索过程中,如果在某层发现了无法定位的控件,就会立即提示相关节点的错误信息并标为红色。
树找不到节点
这个特性将大大的提高复杂应用和复杂布局中的纠错效率。
注意,这个特性会将识别不到的对象设成红色,它不同于前面描述的第 1 个特性,前面的特性将有歧义的节点标记为红色。这里对象识别不到控件可能是因为父对象有歧义,因此,在看到对象标记为红色时,应该查看它的父对象,看是否能准确识别到正确的父控件。
侦测器警告3. 快速添加索引值(index)
“添加索引值”按钮
在控件无法通过唯一性验证时,可以通过添加索引值(index)属性来解决。之前手动添加索引比较耗时,此次增强的一键添加索引功能能够帮助用户省时省力的完成这项工作。 当对象匹配到多个控件时,返回匹配控件列表中的第index个控件。默认为 0,即第一个匹配控件。
使用“添加索引值”按钮将自动的为红色节点添加index值,从而使其唯一。
添加 index 后会重新验证唯一性,可能仍然有其它红色节点,可以重复点击“添加索引值”步骤直至整个对象链条能够唯一定位需要的控件。
需要注意的是,“index”属性并非控件固有属性,而是控件在父结构中或控件搜索结果中的排列顺序,因此可能随着控件布局的变化而变化。如果你发现你的被自动化应用的控件布局可能有动态变化,请选择避免用 index 属性。
4. 侦测耗时信息
当目标控件唯一性验证完成后,可以在侦测面板下方的提示是否能唯一识别的信息。同时也能看到耗时,它显示的是从顶层对象逐层侦测到最下层对象所花费的时间。一般来说,层级越多,匹配的越精确、耗时也越久、但也可能有例外情况。这个时间也是实际脚本执行时需要的侦测时间。因此在保证精确性的前提下,根据耗时的显示,适当的调整父节点数量、调整识别属性,使耗时最少,这样能够提高控件在实际操作时的性能。
总结
而本次更新 CukeTest 增强了模型管理器的功能,帮助不断提升自动化桌面应用的开发效率,帮助自动化测试从业者能够轻松的应对各类自动化场景。
同样拥有模型管理器的RPA工具的 LeanRunner 适配了这次更新,欢迎前往Windows 10的应用商店下载。
领取专属 10元无门槛券
私享最新 技术干货