导读
Android黑盒测试过程中如何进行有效的打点是我们经常遇到的问题,我们一般会在脚本内部进行数据打点,也可以使用其他进程录屏或截图。那我们如何选取合适的方式进行打点记录呢?下图是对常用打点方式的统计!对于测试开发人员来说有效的关键截图信息是最直观的数据,可以很快定位问题场景!本文重点介绍如何在Shell进程内统计屏幕截图变化。
第三方服务截图
本方案可以在uiautomator1.0脚本内实现,也可以自定义Shell进程服务来实现。个人推荐自定义Shell服务,然后用app_process命令启动。即使脚本出现异常退出了也不会影响截图服务,并且可以截取脚本启动前和结束后的状态。最主要的是Android R开始不再支持uiautomator1.0脚本。
主要通过Activity监听、定时器、进程监听服务触发截图操作:在页面变化时、进程状态变化时以及定时检测页面状态。除此之外我们需要一个App提供图片相似度的比较,或者搭建其他图片匹配服务也可以。
Activity变化和应用异常时截图
1.首先我们要注册ActivityController
①. 直接通过IActivityController.Stub()方法获取ActivityController对象;
②. 通过ActivityManager的setActivityController方法设置监听,设置成功后切换页面时就会回调对应的方法;
2.我们可以在ActivityController的回调中记录关键截屏信息,主要信息有:
**①. **新打开的Activity:点击按钮跳转页面时;
**②. **恢复显示的Activity:按返回键退回到上一级页面时显示的页面;
**③. **App产生崩溃的详细信息以及截图;
**④. **App产生ANR时的详细信息以及截图;
**⑤. **我们可以在acti