其他测试框架 MonkeyTalk 无源代码 测试安卓项目的原理

rock · 2017年02月13日 · 501 次阅读

Monkeytalk 原理:
MonkeyTalk 不是基于 Instrumentation, UIAutomator 的测试框架, 是基于 aspectj,在所有安卓对象创建时加入对象列表,启动 jsonserver,等待命令输入,客户端输入 json 格式的命令;

monkeytalk 需要在代码里插入 agent,所以需要源代码才能使用,但 IDE 提供了一个 Instrument apk 的功能,无需代码。
只需要反编译 monkeytalk 的 license check 的代码,就可以掠过 IDE 的 license 检查,但现在 cloud monkey 已经无法使用了(已经被 oracle 收购了)。

通过反编译,可以看到原理:
monkeytalk 订制了一套基于 ant 的 task 来完成整个任务;
通过 apktool 解压 apk 包
通过 dex2jar 工具,反编译 dex 包。
加入 aspectj 依赖,修改 AndroidManifest.xml,添加 monkeytalk agent ,重新编译 apk.

monkeytalk 的执行速度飞快,因为直接调用对象,不需要像 appium 一样依赖 UIAutomator。

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