APP兼容性测试大部分采用的是通用的方法,就是在app内随机操做。Android自带的Monkey工具因为简单方便,一直沿用到如今并在开发者中普遍使用。但随着在大规模的应用,原生Monkey一些弊端也随之显现出来。
git
优势 | 简单方便一条命令就可以使用,测试稳定;每秒钟能够发送大量操做事件,压力足够,经常能够发现正常使用没法发现的问题 |
---|---|
缺点 | 测试过程不可控,经常点击到咱们不但愿点击到的控件和界面,例如随意点击系统设置,关闭开发者等;单位时间内对app内全部控件的覆盖状况可能并不如意;测试过程信息没法记录,以致于发现问题后没法分析问题产生的过程和缘由 |
原生Monkey的缺点致使测试效果和效率都不可控,如何改善这些问题呢?岩鼠在这方面重点投入进行了较多探索,开发了“智能遍历工具”——利用UI自动化的方式获取APP的控件,进行一个随机的可控的遍历,来达到尽量覆盖被测APP内全部的界面和控件的目的。
github
基于UI自动化实现的Monkey遍历工具主要分为如下2类
web
技术方案 | 基于Macaca或者Appium作驱动,在PC端实现遍历算法进行测试 | 基于Uiautomator驱动在Android手机上实现遍历算法进行测试 |
---|---|---|
表明 | Appcrawler, Macaca自带的NoSmoke | Maxim |
优势 | 1.不须要太关注驱动,利用现有ui自动化框架 2.测试结果数据便于在PC端保存 |
1.利用Uiautomator能够方便快捷执行monkey,兼容性好 2.测试效率和稳定性更高 |
缺点 | 比较依赖框架,效率和稳定性更差一些 | 测试结果数据可能巨大,很差保存在手机端 |
从以上对比,能够看到基于Uiautomator方式直接在手机端运行,更方便部署执行,效率和稳定性也更好。所以岩鼠选择了这个方案进行改造。
固然在这里面还有一个问题就是Uiautomator官方已经不在进行维护,已经被Uiautomator2替代,像主流的Appium等框架也都是基于Uiautomator2进行开发了。但当前Android即便最新版本的android Q也仍然还可以使用Uiautomator,相关的api也基本可以知足Monkey遍历测试的需求。
相比于Uiautomator2,Uiautomator的优点是不须要安装apk能够推送jar到手机端直接执行,避免了像Uiautomator2的框架都须要安装2个额外APK的问题,特别是oppo,vivo等手机须要安装密码等致使的安装成功率问题。
而Uiautomator2的优点是后续官方的持续支持,更多更好用的API,能够得到应用context从而得到android的服务实现更多的功能。
岩鼠当前也正在逐步的演进,即将使用Uiautomator2来驱动测试。
算法
控件的遍历方案是最核心的部分了。固然目标只有一个就是怎么样能够尽量的覆盖APP全部的控件和功能,执行到最多的代码。
但遍历过程可能会遇到不少问题,例如:api
包括但不限于以上的种种问题都是在实现可控Monkey过程当中可能会遇到的问题,目前尚未一个统一的完美的解决方案,更多仍是在实践中不断的改进和完善。
markdown
智能遍历流程
app
对于遍历效果的分析,岩鼠智能遍历工具提供了对于Activity级别的点击覆盖状况分析,能够知道具体访问过哪些Activity以及对应的点击次数。这个是能够经过岩鼠的报告页面进行查看。
框架
岩鼠云真机和兼容性测试服务,正在限时免费体验中,欢迎试用和交流!
yanshu.effirst.com/
长按识别二维码,关注咱们,更多产品资讯,技术干货分享
工具