源码已挂载到 github 上: CrashMonkey4Android
关联项目: CrashMonkey4iOS
CrashMonkey4Android,是一个依靠 Cts 框架,对原生 Monkey 进行改造后的产物,拥有以下新增功能:
下面以 Mac 环境为例
同步CrashMonkey4Androd_bin 项目来获取可执行文件,或者直接下载 ZIP 包,解压。
解压后,项目目录结构如下:
找到 tools 目录下的 cts-tradefed 文件,双击会出现终端窗口:
(可以看出来我们支持多设备)
在终端输入命令 : run cts --plan Monkey
按return
,@Monkey开跑了。
参看报告,在 tools 的同级目录 repository 下有 2 个目录很重要
首先去 results 下打开报告,一个文件夹代表一次测试,我们刚才有 2 台设备,所以生成了 2 个报告,进入文件下找到 index.html,打开:
有 crash 版本:
index.html
为结果总结页面,上面显示了测试设备的硬件信息 (Hardware),被测应用信息 (Application),测试周期 (Span),结果 (Results)。下方有一个表格中显示了测试所花时间 (Duration),Monkey 的事件数 (20)。点击 result 一览的链接进入详细报告:
无 crash 版本:
有 crash 版本
详细页面中显示了最后 50 步的操作截图 (少于 50 的全部列出),截图上绘制了操作的类型,还可以点击图片查看该步操作的相关 logcat 信息。还包括 3 按钮 (crash log 按钮会在发生 crash 的时候显示),点击system log
可以看到系统 log:
点击uiauto trace
按钮会显示所有步骤的信息:
如果有crash log
按钮,会显示 crash 的简短信息,目前只是简单的从 logcat 分析 ANR 和 Java Crash 信息,后续会详细研究一下 crash 知识:
我们可以通过在命令行下输入run cts --help-all
获取所有的可设置参数:
test options:
--p package of test app
--a main activity of test app
--v monkey event count Default: 20.
--throttle The delay time between the events Default: 300.
--pct-tap percentage of tap event Default: 25.0.
--pct-motion percentage of motion event Default: 0.0.
--pct-nav percentage of navigation event Default: 15.0.
--pct-majornav percentage of major navigation event Default: 15.0.
--pct-syskeys percentage of system key event Default: 15.0.
--pct-drag percentage of drag evnet Default: 30.0.
--logcat-size The max number of logcat data in bytes to capture when --logcat-on-failure is on. Should be an amount that can comfortably fit in memory. Default: 20480.
--plan the test plan to run.
--[no-]reboot Do not reboot device after running some amount of tests. Default behavior is to reboot. Default: false.
--[no-]skip-device-info
flag to control whether to collect info from device. Providing this flag will speed up test execution for short test runs but will result in required data being omitted from the test report. Default: false.
--[no-]device-unlock unlock device Default: false.
--app-path local app's path
--wifiSsdk wifi username
--wifiPsk wifi password
--[no-]skip-uninstall-app
no uninstall test app Default: true.
--monkey-log-size monkey log size Default: 10485760.
-b, --[no-]bugreport take a bugreport after each failed test. Warning: can potentially use a lot of disk space. Default: false.
--[no-]tracefile get trace file ,in /data/anr/trace.txt Default: false.
'stdout' logger options:
--log-level minimum log level to display. Default: INFO. Valid values: [VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT]
主要关注以下属性:
目前只实现了 5/6,但是上面的数字相加一定要为 100%。
因为该工具支持自动连接 wifi,所以你的 app 需要在 wifi 情况下工作,请设置这两个属性,它会自动检测断网并重连
目前 CrashMonkey4Android 还处于 pre-release 阶段,需要改善的地方还有很多,请大家多多提出建议。
目前我们已经推出了 iOS 和 Android 两个平台的 Monkey,归并到一个组织58Automation中,
欢迎大家 fuck,有问题请在 github 上提。
就一定要故意 @ 我一下么。。。
吊吊的!等着 troubleman 帮你测试吧!
楼上的,别众目睽睽下秀恩爱。 能支持多设备,太好了。
牛 B!!! Q 你是那么的牛 B!
#8 楼 @doctorq 既然你这么说,我吐槽下 release 的链接应该是: https://github.com/DoctorQ/CrashMonkey4Android/releases
#9 楼 @testly ..为什么我点击的就是这个连接 https://github.com/DoctorQ/CrashMonkey4Android/releases
@doctorq ReadMe 太少
#15 楼 @lihuazhang 嗯,后续会补上
另外有个问题,为啥不使用 maven 管理?
#17 楼 @lihuazhang 我准备用 gradle 修改一下项目。
#15 楼 @lihuazhang README.md 已补充内容
牛逼得不要不要的
#21 楼 @lihuazhang 晚痛不如早痛
赞,挺实用的。Github 已 follow.
win 系统用户有点忧伤。
mac 需要 adb path
大赞!
#25 楼 @shijin880921 windows 也可以用啊
#27 楼 @chenhengjie123 老醋装新瓶
#43 楼 @shijin880921 我正在生成 window 下的 bat 文件,做好通知你
感觉--p packgename 这个参数不准确,老是会跳到系统其他界面
#47 楼 @x746560359
#44 楼 @shijin880921 已更新 windows 下的 bat 文件,重新下载可执行文件
#46 楼 @nickbeibei 贴一下你输入的命令行信息
#51 楼 @shijin880921 我的电脑是 64 位的,你的是 32 位的,你可以把源码下载下来,自己编译。看这篇文章:如何进行二次开发
#53 楼 @nickbeibei 需要 activity 名,-a 指定。-a 和-p 这两个参数要一起使用
谢谢分享!!
“错误:找不到或无法加载主类 Files.”
这个是什么问题?
#57 楼 @Sernity0919 去 github 上提供详细的信息
#52 楼 @doctorq @shijin880921 这个是因为 jine.0.9.9.jar 包版本太低,不支持 win7 64 位,上官网下个 jline.1.0.jar 就行了。链接如下:http://sourceforge.net/projects/jline/files/jline/
06-11 11:59:58 I/DeviceNetWorkListener: please connect wifi : 58-guest
为什么提示我链接这个 wifi?
#60 楼 @x746560359 啊,测试用的一个自带的一个 wifi,可以修改成你自己的。在 tools/config/cts.xml 修改,如果不用 wifi,直接注释掉
直接在 CTS.XML 配置文件参数化。执行 run cts --plan Monkey。不会打开指定 APP
#61 楼 @doctorq 是注释掉的,但是控制台还是提示链接,另外:
信息: Error starting command: monkey --port 12345
com.android.ddmlib.ShellCommandUnresponsiveException
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:408)
at com.android.ddmlib.Device.executeShellCommand(Device.java:435)
at com.android.chimpchat.adb.AdbChimpDevice$1.run(AdbChimpDevice.java:104)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
这是什么?指定端口 12345?
#62 楼 @x746560359 在 github 提 issue,把能给的信息都给全了,我好定位问题
#62 楼 @x746560359 Error starting command: monkey --port 12345 是 ddmlib 包的错误,不影响。
#62 楼 @x746560359 确保的-a 和-p 都配置了,且是主 activity。才能启动,你可以先在命令行试一下,以确保可以启动。
二次开发 源码下载下来,解压,导入 Eclipse 后只有一个项目。。。
#59 楼 @woniu 替换成 jline-1.0.jar 后提示 java.lang.NoClassDefFoundError: jline/ConsoleReader
Exception in thread "main" java.lang.NoClassDefFoundError: jline/ConsoleReader
at com.android.tradefed.command.Console.getReader(Console.java:186)
at com.android.tradefed.command.Console.(Console.java:198)
at com.android.cts.tradefed.command.CtsConsole.(CtsConsole.java:52
)
at com.android.cts.tradefed.command.CtsConsole.main(CtsConsole.java:249)
Caused by: java.lang.ClassNotFoundException: jline.ConsoleReader
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
#71 楼 @doctorq 我的电脑是 window 64 位,java version 64-Bit,但是出现下面错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\IQIYI\AppDat
a\Local\Temp\jline_0_9_9.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at jline.WindowsTerminal.loadLibrary(WindowsTerminal.java:215)
at jline.WindowsTerminal.initializeTerminal(WindowsTerminal.java:144)
at jline.Terminal.setupTerminal(Terminal.java:69)
at jline.Terminal.getTerminal(Terminal.java:26)
at jline.ConsoleReader.(ConsoleReader.java:151)
at jline.ConsoleReader.(ConsoleReader.java:146)
at jline.ConsoleReader.(ConsoleReader.java:135)
at com.android.tradefed.command.Console.getReader(Console.java:186)
at com.android.tradefed.command.Console.(Console.java:198)
at com.android.cts.tradefed.command.CtsConsole.(CtsConsole.java:52
)
at com.android.cts.tradefed.command.CtsConsole.main(CtsConsole.java:249)
把 64 位的 jdk 换成 32 位的,可以运行了,不会出现这个了: Can't load IA 32-bit .dll on a AMD 64-bit platform
@doctorq 在运行的时候,已将 monkey 的进程关闭,仍然可以再次调起 apk
这个需要如何操作来停止运行?
@doctorq index.html 里面点 systemlog 提示报错:
截图中说的 monkey Log 在 D:\Android\CrashMonkey4Androd_bin-master\android-cts\repository\logs\2015.06.12_10.23.57 文件夹中找到了
@doctorq 我用的是 jdk1.7.0_45
@doctorq 是昨天中午下载的
@doctorq 最新版,点击 systemlog,已显示
能不能不进入控制台,我想和 jenkins 集成,一条命令直接跑起来,该怎么做?
#90 楼 @aizaimenghuangu 我就是放在 jenkins 下跑的,直接调用sh cts-tradefed run cts --plan Monkey
@doctorq 这个工具的事件是怎么定义的?就是,这里的事件数是怎么算的?这边的 20,实际操作中比直接命令跑 Monkey 要时间久,有什么区别吗?
必须在 mac 上用吗?
#95 楼 @gaoxing200851 windows 也可以
使用这个工具,执行结束一次 monkey 后,又会自动再次的重复执行起来
运行正常,有报告,只是不明白,index.html 中的 hardware 不显示设备名会是什么原因了?
#46 楼 @nickbeibei
遇到同样的问题,老是会跳出到系统界面.
@doctorq 测试会跳转到其他界面,效率有点低,重复动作太多了.期待更完善的版本的 release
@doctorq 那个帖子删掉了,没看明白你说的这个公司是指哪个公司???自荐??
#108 楼 @625398988 @nickbeibei不是跳转到,而是有的 monkey 事件会使我们的应用退出到后台了,我做了判断,一旦检测到不在我们所测应用的界面,就会重新启动应用。
如果想测试系统的多个自带的 apk,在命令中该如何指定呢?
出一个 windows 的操作文档吧,观望中!
@doctorq 目前实际应用中,发现重复事件太多.有时候呆在一个界面很长时间没有动静.感觉效率有点低,期待更有效的版本.
@doctorq 另,我想把测试过程中打印出来的 log 映射到我自己的 textView 中去,但是没有找到在哪里打印的 log.望指点....
run cts --plan Monkey --p packagename --a activityname
@doctorq 哪个参数可以指定 monkey 事件的数量, 默认为 20, 觉得有点少
@doctorq
运行命令为 sh cts-tradefed run cts --plan Monkey -p com.yek.lafaso --throttle 50 -v 20000,但是会报如下错误:
sh cts-tradefed run cts --plan Monkey -p com.yek.lafaso --throttle 50 -v 20000
Android CTS 4.4_r0
Using commandline arguments as starting command: [run, cts, --plan, Monkey, -p, com.yek.lafaso, --throttle, 50, -v, 20000]
09-26 00:55:27 I/ConfigurationFactory: Loading configuration 'cts'
09-26 00:55:27 I/DeviceStateMonitor: Waiting 30000 ms for device 810EBLS2736K shell to be responsive
09-26 00:55:27 I/ManagedDeviceListener: Device connected 810EBLS2736K
09-26 00:55:27 I/DeviceManager: Detected new device 810EBLS2736K
09-26 00:55:27 I/CommandScheduler: Scheduling 'cts' on '810EBLS2736K'
09-26 00:55:27 I/DeviceManager: Allocated device 810EBLS2736K
09-26 00:55:27 I/TestInvocation: setup: true tearDown: true
09-26 00:55:27 I/TestInvocation: Starting invocation for 'cts' on build '4.4_r0' on device 810EBLS2736K
09-26 00:55:27 I/MonkeyTest: Monkey Test for device 810EBLS2736K
09-26 00:55:29 I/RemoteAndroidTest: Running am instrument -w -r android.tests.devicesetup/android.tests.getinfo.DeviceInfoInstrument on 810EBLS2736K
cts-tf > 九月 26, 2015 12:55:43 上午 com.android.chimpchat.ChimpManager sendMonkeyEventAndGetResponse
信息: Monkey Command: wake.
九月 26, 2015 12:55:43 上午 com.android.chimpchat.ChimpManager sendMonkeyEventAndGetResponse
信息: Monkey Command: getvar display.width.
九月 26, 2015 12:55:43 上午 com.android.chimpchat.ChimpManager sendMonkeyEventAndGetResponse
信息: Monkey Command: quit.
09-26 00:55:43 W/TestInvocation: Unexpected exception when running invocation: java.lang.NumberFormatException: null
cts-tf > 九月 26, 2015 12:55:43 上午 com.android.chimpchat.ChimpManager sendMonkeyEventAndGetResponse
信息: Monkey Command: quit.
09-26 00:55:43 E/InvocationThread: null
java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at com.android.cts.tradefed.testtype.monkey.Monkey.init(Monkey.java:57)
at com.android.cts.tradefed.testtype.monkey.Monkey.<init>(Monkey.java:29)
at com.android.cts.tradefed.testtype.MonkeyTest.run(MonkeyTest.java:148)
at com.android.tradefed.invoker.TestInvocation.runTests(TestInvocation.java:590)
at com.android.tradefed.invoker.TestInvocation.prepareAndRun(TestInvocation.java:400)
at com.android.tradefed.invoker.TestInvocation.performInvocation(TestInvocation.java:332)
at com.android.tradefed.invoker.TestInvocation.invoke(TestInvocation.java:133)
at com.android.tradefed.command.CommandScheduler$InvocationThread.run(CommandScheduler.java:362)
09-26 00:55:43 I/InvocationThread: Updating command 'cts --plan Monkey -p com.yek.lafaso --throttle 50 -v 20000 -s 810EBLS2736K' with elapsed time 15786 ms
cts-tf >
#131 楼 @app_testing 获取手机的屏幕高和宽失败了,以后我看看能不能换一种方式获取。这个问题有几个人报给我了
Andriod 版的在使用中,App 停止或者闪退,但是从来没有没有看到这 HTML 报告,不知道为什么,应该是什么 Bug
支持白名单和黑名单吗?
#133 楼 @jeffleung 可以描述一下具体情况么,在什么时候停止,或者闪退?
@doctorq 我把源码中的 MonkeyReporter.java 下的 mDir 字段改成固定的字符串,将原来的时间命名文件夹换成固定的,再导出两个 jar 包替换原来的 jar 包,运行后为何没起作用呢?
#137 楼 @miaocunsheng 在哪里更改的,构造方法里面会重新赋值,如果你想改,在下面代码中mDir = TimeUtil.getResultTimestamp();
地方改,两个 jar 包是啥意思,只需要替换 cts-tradefed.jar 就可以。
public MonkeyReporter(File xmlFile, File saveFile, File logDir) {
this.mXmlFile = xmlFile;
if (!saveFile.exists()) {
throw new NullPointerException(String.format(
"report path :%s not exists", saveFile.getAbsolutePath()));
}
mDir = TimeUtil.getResultTimestamp();
mLogDir = logDir;
mSaveFile = new File(saveFile, mDir);
mSaveFile.mkdir();
if (mXmlFile == null || !mXmlFile.exists())
return;
// 初始化
init();
}
#139 楼 @miaocunsheng 截下图,看下报告生成的位置,我专门设置了report-path
参数来将报告移动到某个webservice
下的路径,因为我们也是放在 jenkins 下去做的,最后放到公共站点下,你可以试试这个参数
@doctorq Hi, 想請問一下, 參數 --wifiSsdk 是否為 wifi ssid 而非屬性表內的 wifi user name?
查看了一下原代碼, 好像只有 ssid & password
Thanks,
Charles
#142 楼 @charlesh21 我解释成 wifi user name 是怕大家不理解 ssid 代表的意思,其实 wifissdk 就是 ssid。
@doctorq 你好,代码中【 mWSRPATH】这个参数的实际值 是在哪里配置的呢?
private void generateMonkeyReslutTxt(MonkeyReporter reporter) {
if (mWSRPATH == null || mMonkeyResultPath == null) {
return;
}
File monkeyResult = new File(mMonkeyResultPath);
String url = mWSRPATH + File.separator + reporter.getmDir()
+ File.separator + "index.html";
try {
if (! monkeyResult.exists()) {
monkeyResult.createNewFile();
}
FileUtil.writeToFile(mDeviceSerial + "," + url + "\n", monkeyResult);
.....
}
}
#145 楼 @miaocunsheng 这是为了在 jenkins 集成的时候把报告保存到公共站点的目录下,可以外部访问用的。外部传参设置
#147 楼 @miaocunsheng 下载源码了么?可以源码中下图的代码,就明白了
@doctorq
我想问下,Jenkins 在执行 bat 脚本时,设备已识别,但是无法执行,是怎么回事?
12-13 17:35:39 W/DeviceManager: Fastboot is not available.
Android CTS 4.4_r0
Non-interactive mode: Running initial command then exiting.
Using commandline arguments as starting command: [run, cts, --plan, Monkey]
12-13 17:35:39 I/ConfigurationFactory: Loading configuration 'cts'
12-13 17:35:39 I/DeviceStateMonitor: Waiting 30000 ms for device YT910D90AU shell to be responsive
12-13 17:35:39 I/ManagedDeviceListener: Device connected YT910D90AU
12-13 17:35:39 I/DeviceManager: Detected new device YT910D90AU
12-13 17:35:40 I/CommandScheduler: Scheduling 'cts' on 'AndroidDevice'
12-13 17:35:41 I/CommandScheduler: Waiting for invocation threads to complete
12-13 17:35:41 I/LogRegistry: Saved log to C:\Windows\TEMP\tradefed_global_log_6242512099387051107.txt
12-13 17:35:41 I/CommandScheduler: All done
请按任意键继续. . .
12-13 17:35:41 W/DeviceManager: Fastboot is not available.
Android CTS 4.4_r0
Non-interactive mode: Running initial command then exiting.
Using commandline arguments as starting command: [run, cts, --plan, Monkey]
12-13 17:35:41 I/ConfigurationFactory: Loading configuration 'cts'
12-13 17:35:41 I/DeviceStateMonitor: Waiting 30000 ms for device YT910D90AU shell to be responsive
12-13 17:35:42 I/DeviceManager: Detected new device YT910D90AU
12-13 17:35:42 I/ManagedDeviceListener: Device connected YT910D90AU
12-13 17:35:42 I/CommandScheduler: Scheduling 'cts' on 'AndroidDevice'
12-13 17:35:43 I/CommandScheduler: Waiting for invocation threads to complete
12-13 17:35:43 I/LogRegistry: Saved log to C:\Windows\TEMP\tradefed_global_log_4300395381232860371.txt
12-13 17:35:43 I/CommandScheduler: All done
请按任意键继续. . .
[workspace] $ cmd /c call C:\Windows\TEMP\hudson2657637810539007819.bat
神器,感谢分享~
@doctorq 请教下,下面这种报错是什么情况呢?
十二月 29, 2015 2:30:26 下午 com.android.chimpchat.adb.AdbChimpDevice$2 step
信息: Monkey Command: tap 481 951.
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implWrite(Unknown Source)
at sun.nio.cs.StreamEncoder.write(Unknown Source)
at java.io.OutputStreamWriter.write(Unknown Source)
at java.io.BufferedWriter.flushBuffer(Unknown Source)
at java.io.BufferedWriter.flush(Unknown Source)
at com.android.chimpchat.ChimpManager.sendMonkeyEventAndGetResponse(ChimpManager.java:187)
at com.android.chimpchat.ChimpManager.sendMonkeyEvent(ChimpManager.java:235)
at com.android.chimpchat.ChimpManager.tap(ChimpManager.java:330)
at com.android.cts.tradefed.testtype.monkey.MonkeyTapEvent.fireEvent(MonkeyTapEvent.java:34)
at com.android.cts.tradefed.testtype.monkey.Monkey.nextRandomEvent(Monkey.java:41)
at com.android.cts.tradefed.testtype.MonkeyTest.run(MonkeyTest.java:152)
at com.android.tradefed.invoker.TestInvocation.runTests(TestInvocation.java:590)
at com.android.tradefed.invoker.TestInvocation.prepareAndRun(TestInvocation.java:400)
at com.android.tradefed.invoker.TestInvocation.performInvocation(TestInvocation.java:332)
at com.android.tradefed.invoker.TestInvocation.invoke(TestInvocation.java:133)
at com.android.tradefed.command.CommandScheduler$InvocationThread.run(CommandScheduler.java:362)
这里使用 Monkey 自动生成测试步骤, 可以自定义测试脚本吗?
#154 楼 @justin001 Monkey 没有测试脚本一说,测试步骤只是为了定位问题的时候找到一段时间的操作
测试流程全部都是坐标, 我想改成通过坐标去去解析 pageSources 的 xml 文件进一步确定元素这样在流程看上去更清晰写。
还有, 我下载了相关的源码,有没有对项目的说明,二次开发,前提需要看懂你的思路。有没有相关的说明文档。
#157 楼 @justin001 github 就有help
#159 楼 @justin001 自己看源码,想看实现思路,看 cts 框架。cts 框架不知道,在社区搜 cts。如果还像端到你手上,给你个连接:cts
#run cts --p xxxxxx --v 10000 --throttle 1000 --plan Monkey 成功执行了,但是一会儿就触发了 Home 键事件,跑出 app 界面,没有能自动切回来 貌似没有判断?
打开后这样,请指教
#162 楼 @devilsroar 同遇到该问题,跑出 app 界面后,没有切回来。 @doctorq 这种情况怎么解决呀 ?
@doctorq 请问获取手机高宽失败的问题有解决吗?
Monkey Command: getvar display.width.
com.android.chimpchat.ChimpManager sendMonkeyEventAndGetResponse
Monkey Command: quit.
W/TestInvocation: Unexpected exception when running invocation: java.lang.NumberFormatException: null
@doctorq 为什么跑一会 就停了 信息: Monkey Command: quit.
07-25 14:35:29 I/MonkeyActivityListener: MonkeyActivityListener stop.....
@DoctorQ 能在 ReadMe 里写些命令示例吗,如:--p --a 的使用方法
总报 ConfigurationException: Could not find class
@DoctorQ 请问可以指定某台设备跑吗?目前的情况是连接电脑的几台设备都在跑
@DoctorQ 发现--serial 无效,但--exclude-serial 有效
@DoctorQ 另外截图可以只保存最后 10 张么?
@DoctorQ 最后只拷贝 50 张到 PC 么?
@DoctorQ 如果-v 参数很大比较难跑,本身就跑得比原来的 monkey 慢很多
#131 楼 @app_testing 获取手机的屏幕高和宽失败了,以后我看看能不能换一种方式获取。这个问题有几个人报给我了
@DoctorQ 这个问题还会出现
@DoctorQ
易寒,这个工具设计想法不错,今天试用了一下你的 CrashMonkey,其中,遇到问题,
看此错误的原因,是由于检测到不在当前测试 app 下的 activity 下,尝试重启 app 的时候,monkey comand quit,导致生成报告出错!
@DoctorQ https://github.com/baozhida/CrashMonkey4Android_bin 原版基础上改造了一下,支持 java 64 位,并且把不用的系统 key 事件去掉了,只保留了 back
执行完一次,生报告之后,等待下次执行的时间比较久,还没仔细看怎么控制的
博士,打算加入性能监控的功能吗?
Doctor,总结最后一句是把 fork 拼错了吧
你好啊,我在运行的时候出现了说无法定位
thankdanny:~ thanksdanny$ /Users/thanksdanny/Documents/test\ tools/CrashMonkey4Androd_bin/android-cts/tools/cts-tradefed ; exit;
usage: dirname path
Unable to locate /../../android-cts/tools/chimpchat-22.2.0.jar
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
是我存放的路径有问题么
命令是啥?/Users/thanksdanny/Documents/test\ tools/CrashMonkey4Androd_bin/android-cts/tools/cts-tradefed
?
我是根据步骤来,同步 CrashMonkey4Androd_bin 项目来获取可执行文件,或者直接下载 ZIP 包,解压。然后双击 cts-tradefed 文件就出那些命令了
请问大佬,为什么我运行 run cts --plan Monkey 后,手机没反应