图像自动化基础
图像自动化作为一种通用的界面自动化解决方案,通过匹配图案或指定区域进行操作。它可以在各个平台上使用,如Windows或Linux。CukeTest提供了图案对象Pattern
和区域对象(虚拟控件)来完成图像自动化。不仅可以配合模型在界面自动化相关的模块(leanpro.win
、leanpro.qt
、leanpro.java
、leanpro.common
等)中可以使用,也可以在不引入模型的情况下直接在脚本中使用。
概念介绍
图案对象Pattern
图案对象Pattern
是一张图片——在模型管理器中识别图案对象时,通过在当前屏幕中框选并截图完成图案对象的创建;而在脚本中可以通过指定图片字符串(base64
编码)、图片文件路径来直接创建图案对象。图案对象在使用时,会在当前屏幕中(运行时)寻找与图案对象匹配的区域,接着执行指定的操作(如点击、拖拽、悬停等)。由于寻找的过程使用了图像匹配的技术,所以在操作前需要一定的时间进行运算,在主流的计算机(1920*1080分辨率情况下)上通常为0.5 ~ 1秒。
图案对象的识别属性
由于图案对象在实际使用时需要在屏幕中实时的匹配操作区域,因此为了使匹配操作更稳定、灵活和可控,CukeTest为图案对象提供了几个属性以便用户更好的操作匹配,这些属性可以在模型管理器中通过修改参数面板直接修改,也可以在脚本中直接使用。
similarity: 相似度阈值。对于每次匹配,都会计算匹配结果与目标图案的相似度,这个相似度可以通过调用
Pattern
对象上的score()
方法获得,而相似度阈值的作用就是忽略相似度低于阈值的匹配结果,来获得最准确的匹配结果,默认阈值为0.98
。在实际自动化过程中通常是降低阈值来保证图案匹配更加的灵活,因为当图案匹配到多个结果时,对图案的操作(如点击、悬停等)只会对相似度
score
最高的那个结果生效,因此调整阈值的原则应该是贪多不贪少。
如果需要比0.98
更高的相似度阈值才能匹配到目标结果,那可能是图案中的有效内容占比过小,比如一个按钮中的文字占比比较小,那么识别过程中就可能与其它按钮混淆。这个时候应该要减少截取图案时的背景,以此提高有效内容的占比。resizeFactor: 缩放因子。如果图案对象与实际场景中的尺寸大小不一致,比如因为响应式的布局导致图案缩小或放大,那么可以通过调整缩放因子来进行匹配。假如添加了为
64px
宽的方形图案对象,结果匹配目标的尺寸却变为了128px
宽的方形,那么就可以通过设置一个为2
的缩放因子来完成匹配。默认因子为1
,即不缩放。