第1章1节《MonkeyRunner源码剖析》概述:前言(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写《深入理解 MonkeyRunner》书籍“。但因为诸多原因,没有如愿。所以这里把草稿分享出来,所以错误在所难免。有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息。

前言



相信大家做过安卓移动平台UI自动化开发的必然会用过,至少听过MonkeyRunner这个名字。MonkeyRunner是一个针对安卓平台的UI自动化测试框架,这个框架的其中一个但绝不是唯一的优点是支持用当今非常流行和高效的Python语言来进行脚本开发。同时,它相比Instrumentation框架或者基于Instrumentation的自动化测试框架最大的优点之一就是可以跨应用测试。

这本书不会有什么序言或者致谢什么的篇章。你买本书回去不是为了看写序言的人怎么吹捧作者多么牛X,怎么忽悠该书是多么的适合你,或者作者是多么感激它家正在怀孕的小强如何的每晚毫无怨言的默默的从黑暗中钻出来支持着作者编写该书却最终不小心被作者的拖鞋亲密接触致死的。每次我买本书回来看到这些都想打个电话给作者:”大哥!我是给了钱买你这书的好不,能来点实际点的吗?要不你把钱给我,我来每天分5集告诉你我是如何感激我家的旺财的好不!”,可惜作者们聪明,像早预料到必然会有我这种人一般,绝对不会在书本上留下自己的任何电话号码的!

  • 这本书不是一本教你如何一步步编写MonkeyRunner自动化测试脚本的书
  • 这本书不是一本只用长篇累牍的文字跟你空洞的描述MonkeyRunner是怎么回事的书

MonkeyRunner的使用是非常简单的事情,只要你有耐心把测试环境给搭建起来,再花个大不了一两天时间去网上找几篇资料看看,基本上开始使用它来进行测试自动化是没有问题的了,所以不值得为这个东西写本书来指导读者如何去用它来做测试。

在描述了这本书不是什么之后,那么下面我们尝试描述清楚这本书是什么:

  • 这是当今第一本描述MonkeyRunner这个来自Google的自动化测试框架的实现原理的书(起码我在网上还没有找到同类的书籍)
  • 这是一本结合MonkeyRunner源代码分析来阐述MonkeyRunner运行原理的书

所以在这里你也别问我分析了解MonkeyRunner的这些原理对你有什么好处,你如果真还是要问这个问题的话,我建议你去问著名书籍《LINUX内核源代码情景分析》的主要作者之一,著名计算机专家毛德操先生,去问他分析Linux内核源码的目的是什么,对读者有什么好处。不同的人会根据自己的需求有不同的目的,有人是不满足于事物的表面而乐于追求事物的原理所以去分析源码;有人是因为不满足工具的现有功能欲增加满足自身情况的功能而去分析源码;有人是为了移植MonkeyRunner的一些优秀功能到其他框架而分析源码,比如移植图片比较功能到Robitum或者UiAutomator框架;也有人是为了借鉴该框架的实现原理来实现适合自己公司或者组织的自动化测试框架,等等。但无论你是哪一种读者,希望本书都能满足你的要求。



作者:天地会珠海分舵

微信公众号:TechGoGoGo

微博:http://weibo.com/techgogogo

CSDN:http://blog.csdn.net/zhubaitian

时间: 2024-10-22 21:15:10

第1章1节《MonkeyRunner源码剖析》概述:前言(原创)的相关文章

老李推荐: 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge 1

老李推荐: 第8章4节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-启动AndroidDebugBridge 上一节我们看到在启动AndroidDebugBridge的过程中会调用其start方法,而该方法会做2个主要的事情: 715行startAdb:开启AndroidDebugBridge 722-723行:初始化android设备监控并启动DeviceMonitor设备监控线程. 其中第一点我们上一小节已经做了详尽分析了,那么我们往下就去分析下第2点. Dev

老李推荐:第6章5节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-事件

老李推荐:第6章5节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览-事件 从网络过来的命令字串需要解析翻译出来,有些命令会在翻译好后直接执行然后返回,但有一大部分命令在翻译后需要转换成对应的事件,然后放入到命令队列里面等待执行.Monkey在取出一个事件执行的时候主要是执行其injectEvent方法来注入事件,而注入事件根据是否需要往系统注入事件分为两种: 需要通过系统服务往系统注入事件:如MonkeyKeyEvent事件会通过系统的InputManager往系

老李推荐:第6章3节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令翻译类

老李推荐:第6章3节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览-命令翻译类 每个来自网络的字串命令都需要进行解析执行,只是有些是在解析的过程中直接执行了事,而有些是需要在解析后创建相应的事件类实例并添加到命令队列里面排队执行.负责这部分工作的就是命令翻译类.那么我们往下还是继续在MonkeySourceNetwork这个范畴中MonkeyCommand类是怎么一回事: 图6-3-1 MonkeyCommand族谱 图中间的MonkeyCommand是一个接口,

老李推荐: 第1章1节《MonkeyRunner源码剖析》概述:前言

老李推荐: 第1章1节<MonkeyRunner源码剖析>概述:前言 前言 相信大家做过安卓移动平台UI自动化开发的必然会用过,至少听过MonkeyRunner这个名字.MonkeyRunner是一个针对安卓平台的UI自动化测试框架,这个框架的其中一个但绝不是唯一的优点是支持用当今非常流行和高效的Python语言来进行脚本开发.同时,它相比Instrumentation框架或者基于Instrumentation的自动化测试框架最大的优点之一就是可以跨应用测试. 这本书不会有什么序言或者致谢什么

第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. 上一节我们描述了monkey的命令处理入口函数run是如何调用optionProcess方法来解析命令行参数的.启动参数主要时去指导Monkey时怎么运行起来的,但Monkey作为MonkeyRunner框架的一部分,

第5章2节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动流程概览(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. 每个应用都会有一个入口方法来供操作系统调用执行,Monkey这个应用的入口方法就是在Monkey.java这个类里面的,也就是说Monkey.java就是整个Monkey应用的入口类. Monkey作为一个命令行应用,

第2章1节《MonkeyRunner源码剖析》了解你的测试对象: NotePad应用简介(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. 本书脚本相关的示例常会用到Android SDK自带的NotePad这个应用,所以这里很有必要去描述下这个应用.其实去熟悉这个应用最好的办法是自己去把它安装上去你的目标安卓系统,然后亲自去玩一下它的各种功能.因为它只是

第1章2节《MonkeyRunner源码剖析》概述:边界(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. 边界 怎么样才算分析清楚一个事物的原理是什么呢?就以前面提到的<LINUX内核源代码情景分析>为例子,分析到什么程度算是把Linux内核给分析清楚呢?一个操作系统内核的原理无非是要描述清楚这几个核心是如何工

第4章2节《MonkeyRunner源码剖析》ADB协议及服务: ADB服务SERVICES.TXT翻译参考(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. ADB服务器端在接受到ADB客户端发送过来的命令后会进行相应的处理,如果是主机服务就在ADB服务器内部进行处理,如果是本地服务就会发送给Android目标机器端的adbd守护进程进行处理. 因为ADB相关的源代码不在我