目前在测试领域中安卓UI自动化,维护成本是非常高的,那有什么方法可以降低维护成本呢?我个人看法有几个,通用的就是使用PO模式设计,跟开发约定命名规则,还有同一个控件可以多个元素定位,图像识别,开发录制工具,降低编写脚本门槛,AI自动化,这些是在排除功能需求频繁变更的因素之外,以下对大家比较有疑问的进行简单解释下: 同一个控件多个元素定位是指不同的版本中同一个按钮的元素如res-id不一样,这时候只要这个控件的定位输入多个res-id,这个没有找到就找下一个,这样脚本就可以在多个版本使用,脚本的复用性就很高了; 降低脚本编写门槛,就是通过简单培训,不需要有编程能力,人人都可以参与脚本的编写; AI自动化,就是通过操作app的规则生成文件,然后通过辅助apk把文件上传到服务器,进行热点分析,然后把数据推到自动化框架进行测试(弱弱地说,已实现,效果还不错,投入成本不高) 图像识别解决难定位元素以及webview,WindowManager 做的图标或者页面定位操作;
对于图像识别的原理,步骤如下: 1.通过minicap会把手机截图存在我们指定的位置,而这个图片的宽度也是我们指定的,这个图片成为模板; 2.通过adb截手机要定位的图片,然后打开画图软件,修改像素到我们指定的大小,然后截取特征图,保存; 3.通过调用opencv 的machTemplate 把特征图跟模板进行匹配,就可以获得相应坐标,进行点击或者输入,检查等操作; 整体4399AT的脚本编写,图像识别用例生成,工具执行,请详情查看视频:
其中同一个元素有两个ID,就是如下图这样配置。
以上就是关于4399AT安卓UI自动化的图像识别功能使用讲解,如对您有帮助,欢迎点赞,收藏,分享~