解决问题:
(1)能够将UI自动化中图像识别的图像集独立管理,与自动化测试代码进行独立,大量降低了代码的整体空间大小,且独立开来能够更好的进行图像集的管理。
(2)通过可视化的方式管理图像集,一是能够直观的去观测出整体图像的缩略图,而不需要去挨个去打开进行查看,且能够进行可视化的进行管理,能够去拆分不同的产品,不同的模块,能够快速对图像进行检索,以及图像的管理,增删改查等。
(3)通过将图像集独立,能够通过封装一种图像的调用方式去获取对应所需要的图像截图,这样降低了整体代码的冗余。只需要通过图像名称和配置就可以直接去调用到图片,如果图像更换也可直接去管理平台去更换,大量提升了图像存储维护、以及UI自动化编写脚本的整体效率和简洁性。
实现逻辑:
(1)存储pc或者移动端目录,创建图片包含图片名称,图片名称唯一,以及图片的描述。图片列表管理字段包括产品名称、模块名称、用例描述、图片名称、创建时间、更改时间以及图片缩略图
(2)环境配置,开启自动化流程,封装图像识别流程调用、断言判断流程。调用FTP连接图像管理平台,连接图片存储路径,获取图像进行屏幕截图,调用opencv处理图像,图像灰度处理,之后将从平台获取的图片也进行灰度处理,然后两者进行模糊匹配,如果超过设置阈值,则匹配成功,并绘制矩形于截图的屏幕图片上标出识别目标。然后找到识别目标的中心点,在基于selenium和appium模拟用户的操作,如点击、输入消息等用户操作
(3)断言判断主要分为两种,全图对比和区域元素检测。
全图对比断言:指定全屏渲染效果图对比执行截图,截图与全屏截图的对比匹配度是否在一定的阈值范围中。
区域元素检测:指定全屏渲染效果图对比区域截图,截图是否存在于全图中。
(4)整体流程处理完成之后关闭自动化测试流程