前言
认真阅读了monkey程序的源码,没想到monkey程序除了支持从命令行直接执行外,还支持从特定的文件中读取【命令】执行,还可以从Socket中读取【命令】执行,当然这些【命令】得符合monkey程序的规范,这真是太牛逼了……monkey程序是2009年左右的代码,程序太稳了,几乎没有新的代码更新,如果你写过Android App,你会发现monkey程序与Android App截然不同,monkey程序是脱离Android App框架执行流的程序,每个Android App的主线程,也称作Ui线程,主线程涉及大量的GUI界面工作,monkey程序没有GUI界面,它是一个CLI程序,即命令行程序,它的主线程全部用来执行业务逻辑,这也是和带有界面的App程序的不同点!
在Android平台启动Java程序仍然脱离不了app_process这个c++程序,ART虚拟机是在app_process这个程序中启动的,所以monkey程序中也有Binder线程池的参与,它也能使用跨进程通信的Binder、也能使用Framework中的Java API,比如ActivityManger等等,这就是Android的标准。
今天将分析monkey程序支持的事件来源、以及各种事件的设计思想
先带着几个问题,继续我们今天的阅读
1、monkey程序支持哪些【事件来源】呢?
2、monkey程序又支持哪些【事件】呢?
3、不同的事件来源,包含的事件有什么区别?
这里注意事件来源与事件本身不是一回事,请继续向下阅读……
Monkey支持的4个事件来源
1、随机事件来源
解释:由命令行参数传递进去,我们日常使用monkey,一般使用的是这种
2、从单个脚本文件作为事件来源
解释:脚本文件路径由命令行参数传递到monkey中
3、从多个脚本文件中的随机选取其中一个脚本文件作为事件来源
解释:所有脚本文件的路径从命

本文深入解析Monkey自动化测试工具的事件来源及事件设计思想,涵盖随机事件、脚本事件及Socket事件等多种来源方式,并介绍了各类事件的具体实现。
最低0.47元/天 解锁文章
1072





