移动性能测试 Android 项目中利用 instrumentation 启动 Monkey

易寒 · 2015年05月13日 · 最后由 Monkey 回复于 2015年05月15日 · 3598 次阅读

Monkey 源码下载

下载Monkey源码 ,包含 3 个文件

这里写图片描述

导入到 AS 中

添加项目

AndroidMonkey.tgz ,解压后目录如下:

这里写图片描述

demo 项目 NodePadMonkeyTester.tgz ,提取其中的 Android 项目,导入到 Android studio(原来是 android,需要转化为 android studio,我没有 eclipse,我手工添加的),项目结构如下:

这里写图片描述

将项目的 Monkey 源码以库的形式导入到 Android studio 中,

这里写图片描述

修改 build.gradle

在 monkey 项目下发布 debug 版本:

android {
    ....
    publishNonDefault true
    }

在 app 下 build.gradle 中加入该 library。

debugCompile project(path:':monkey',configuration:'debug')

添加 intrumentation

在 src/androidTest 目录下添加下载的 RandomTest.java,修改其中的包名,让起指向你自己的项目

这里写图片描述

运行

这里写图片描述

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 21 条回复 时间 点赞

这个的使用场景讲下呗

#1 楼 @lihuazhang 获取 monkey 的代码覆盖率,保存 monkey 每一步的截图。都有 monkey 源码了,可用的场景自己开发吧

#1 楼 @lihuazhang 什么情况。。。恒温 和 Monkey 最近都换头像了。。。
这个方法不错,运用得好的话应该能获取到更多有助于分析 monkey crash 原因的信息。

但这样的话,虽然都是调用 MotionEvent,但是感觉套在 instrumentation 里面不是进一步限制了 monkey 的使用么?

#4 楼 @monkey 限制什么?首先你有原生 monkey 可以使用。这个地方只是为了在原生 monkey 无法满足你要求的时候,你可以修改 monkey 源码以适应自己的需求。

#3 楼 @chenhengjie123 你看到了方向,他们两个换头像的原因是想改头换面,重新做人。得罪的人太多了

#5 楼 @doctorq =。=。。。修改源码直接修改,打包 jar 就好啦。。。何必那么麻烦呢。。。

#5 楼 @doctorq 而且 instrumentation 本身,你不是还是会受限于 instrumentation 框架的限制么?难道不会么?

易寒 #10 · 2015年05月14日 Author

#7 楼 @monkey 咦,你提供了我一个新方向,原来可以直接打包.233

易寒 #11 · 2015年05月14日 Author

#8 楼 @monkey 好吧,我老是交代,我只是想 debug 一下 monkey 源码。

#10 楼 @doctorq 但打包就是需要 linux 和源码。。很麻烦。。。。

#11 楼 @doctorq =。=。。有啥 debug 的。。。我建议你直接增加一个遍历功能更直接。。。放 instrumentation。。真心不明白意义。。

易寒 #14 · 2015年05月14日 Author

#13 楼 @monkey 我要研究去生成随机事件的算法,然后出一个 monkey 工具,加截图,保存 log,crash 捕捉。就这......

易寒 #15 · 2015年05月14日 Author

#13 楼 @monkey 遍历......很麻烦的,之前做了一个,再也不想做了。

#14 楼 @doctorq 。。。。。就是 java 的 random,伪随机数。。你这个要研究么。。我觉得你方向不对啊。。。

#15 楼 @doctorq 看 ROI。。。

易寒 #18 · 2015年05月14日 Author

#17 楼 @monkey 我放弃了,我还是去看 ddmlib 吧

#18 楼 @doctorq ddmlib 还是很好方向啊~

#19 楼 @monkey @doctorq 你们果然是真爱。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册