目前是 动态 Intent 、Json 的 Fuzz 造成的 App 崩溃的情况比较多。之前容错有一些半自动化的工具,这次的想法是结合全自动跑,但 App 崩溃较多可能入口就挂了。
关于 刷 xposed
建议用 google 原生机,比如 nexus 系列。其他厂商不建议刷机容易砖
刷 Android 原生 6.0
下载 img https://developers.google.com/android/images#bullhead
我这里是 6.0.1 (MTC20K) Link
4a950470af6c1e0111cfa8efbd77422928b88d01800dd2fadc6f8eeeae1b97a9
进 fastboot,执行 flash-all.bat
刷 twrp
下载对应的 twrp.img
进 fastboot,执行 fastboot flash recovery twrp.img
刷入成功后,可以在 fastboot 状态下,选择” recovery mode” 来进入 twrp
刷 xposed framework
下载对应版本的 fw https://forum.xda-developers.com/showthread.php?t=3034811
我这里是 xposed-v89-sdk23-arm64.zip
adb push xposed-v89-sdk23-arm64.zip /sdcard
点击 twrp 上 install 选该 zip 包,刷
重启等待进系统
进系统安装 xposed installer
XposedInstaller_3.1.5.apk
刷 supersu
下对应的 su http://www.supersu.com/download
我这里是 SuperSU-v2.82-201705271822.zip
adb push SuperSU-v2.82-201705271822.zip /sdcard
点击 twrp 上 install 选该 zip 包,刷
重启等待进系统
加 q 说
关于 crash-dump.log 及 崩溃捕获
一般如果 app 自己实现了 crash 上报的功能 就会去重写这个 defaultUncaughtHandler 接口,如果 app 没有捕获 crash, ActivityManagerProxy 会调 handleApplicationCrash 进入系统 crash 处理流程(如上图)
UIHandler.sendMessage 就是我们最常见的 app 弹了个 无响应的弹窗。我们主要关注 ams.crashApplication(下图红框)
monkey 里实现了 这个 IActivityController.appCrashed 回调,于是乎就把 crash 记录下来了。
milliseconds
读一下源码就清楚了。
adb shell xxx >log.txt 2>err.txt
可否能和已有的接口自动化框架融合一起使用吗? 比如已用 HttpRunner、Hitchhiker 或其他内部开发的。
这应该是个 提供给接口测试开发人员的, 按规则编写自动用例代码,通过这个框架来进行数据可视化吧,从而量化测试开发的程度
你的参数传错了
正确的: --output-directory /sdcard/MonkeyLog
这个 output 目录 主要是保存 crash,anr traces,截图,pagesources xml
关于 max 标准输出流和异常流 可以重定向保存到 pc github 上有个 issue 有说明
Throttle 是一个完整事件的间隔. 上面是先 down 然后一系列 move 最后再 up. 类似的一个 Click 需要先 down 然后 up
问题没看明白,qq 加我说吧
关于特殊事件的 log 如何查看?
Max 运行 开头会打印出 load 的 Special Event
解析生成 Tree 结构
分别表示
index|height|depth|childCount|descendantCount,className,contentDesc,text,xpath,clickable,rect
3.针对一个 xpath 进行查找
找到打印 Find it,已经对应执行的 event
github 上已有 dfs 算法 可以参考
有些图挂了
adb shell monkey -p package --pct-syskeys 0 --pct-appswitch 0 --pct-anyevent 0 -s 61930 -v-v-v --throttle 1000 10
上面这条命令 只做了 10 个 event,每个 event 间隔 1000 毫秒,所以很快就结束了
仔细看 支持截图的
FastMonkey 的手势从屏幕顶端向下滑 滑动的起始坐标刨去顶部 bar 区域。
qq 我详细看下
点个赞👍
帖子上代码的排版有问题 修改套用下 markdown 吧
不是专业搞压测的。你说的幂等不是很清楚
@jackyroc 定义指定 mock 某些域名 通过修改 fiddlerjs/fiddler.js 种的 filterUrl="panda.tv“ 即可