对
TD 回复
accessibilityservice 被其他进程占用中,可能是 appium\uiautomator\atx 等等,需要关闭后运行 max
@zhangzhao_lenovo 大神,这个错误是什么原因啊,一跑起来就停了,SM-G9600 的手机
java.lang.IllegalStateException: UiAutomationService android.accessibilityservice.IAccessibilityServiceClient$Stub$Proxy@2c0907falready registered!
at android.os.Parcel.createException(Parcel.java:1974)
at android.os.Parcel.readException(Parcel.java:1934)
at android.os.Parcel.readException(Parcel.java:1884)
at android.view.accessibility.IAccessibilityManager$Stub$Proxy.registerUiTestAutomationService(IAccessibilityManager.java:696)
at android.app.UiAutomationConnection.registerUiTestAutomationServiceLocked(UiAutomationConnection.java:399)
at android.app.UiAutomationConnection.connect(UiAutomationConnection.java:97)
at android.app.UiAutomation.connect(UiAutomation.java:234)
at android.app.UiAutomation.connect(UiAutomation.java:210)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.connect(MonkeySourceRandomUiAutomatorMix.kt:123)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.(MonkeySourceRandomUiAutomatorMix.kt:142)
at tv.panda.test.monkey.Monkey.run(Monkey.kt:558)
at tv.panda.test.monkey.Monkey$Companion.main(Monkey.kt:1422)
at tv.panda.test.monkey.Monkey.main(Unknown Source:2)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:341)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.accessibility.UiAutomationManager.registerUiTestAutomationServiceLocked(UiAutomationManager.java:88)
at com.android.server.accessibility.AccessibilityManagerService.registerUiTestAutomationService(AccessibilityManagerService.java:1354)
at android.view.accessibility.IAccessibilityManager$Stub.onTransact(IAccessibilityManager.java:159)
at android.os.Binder.execTransact(Binder.java:739)
java.lang.IllegalStateException: UiAutomation not connected!
at android.app.UiAutomation.throwIfNotConnectedLocked(UiAutomation.java:1112)
at android.app.UiAutomation.getWindows(UiAutomation.java:474)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.getWindowRoots$monkey_release(MonkeySourceRandomUiAutomatorMix.kt:685)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.collectClickable(MonkeySourceRandomUiAutomatorMix.kt:670)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.generatePointerEvent(MonkeySourceRandomUiAutomatorMix.kt:457)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.generateEvents(MonkeySourceRandomUiAutomatorMix.kt:850)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.getNextEvent(MonkeySourceRandomUiAutomatorMix.kt:92)
at tv.panda.test.monkey.Monkey.runMonkeyCycles(Monkey.kt:1155)
at tv.panda.test.monkey.Monkey.run(Monkey.kt:605)
at tv.panda.test.monkey.Monkey$Companion.main(Monkey.kt:1422)
at tv.panda.test.monkey.Monkey.main(Unknown Source:2)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:341)
java.util.NoSuchElementException
at java.util.LinkedList.getFirst(LinkedList.java:244)
at tv.panda.test.monkey.MonkeySourceRandomUiAutomatorMix.getNextEvent(MonkeySourceRandomUiAutomatorMix.kt:95)
at tv.panda.test.monkey.Monkey.runMonkeyCycles(Monkey.kt:1155)
at tv.panda.test.monkey.Monkey.run(Monkey.kt:605)
at tv.panda.test.monkey.Monkey$Companion.main(Monkey.kt:1422)
at tv.panda.test.monkey.Monkey.main(Unknown Source:2)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:341)
求问:第一次用该工具,如何设置精准化 monkey 脚本,可以一直只跑登录退出操作?
问题:
1、跑 app 的过程中重复退出 app,是什么原因导致的?
2、配置了 max.xpath.actions,但是第二次进入页面的时候不会执行 actions 里面的
我也遇到了一样的问题,测试机型是 MEIZU MX5,android 5.1.想了解下后面你们是如何解决的呢
请教个问题,想用 shell 脚本自动化执行 maxim,有一步需要安装 apk,但是会有安装权限弹窗,怎么自动化点掉,有好的办法吗?
查了下资料,Android 自带的 UIAutomator 框架可以满足条件,但是提供的 api 得用 java。。用 java 写这么个操作感觉有点笨重,除了 java,还有其他法子不?
如果 app 使用 RN 导致了整个 app 只有 1 个 activity 的时候,该如何来用白名单和黑名单功能呢?
请问下楼主是怎么处理执行过程中把网络关了的情况
请问一下大佬,如何关闭 屏幕 180 度翻转啊? 发现每次跑 maxim 都会发生 180 度翻转,导致黑区域坐标有变化。
对
TD 回复
@zhangzhao_lenovo 大神,Android11 的是不是也没适配,我看了一下和 Android10 一样的报错呢,麻烦更新一下哈,谢谢了
对
图片在你指定输出位,比如我指定在/SDCARD/MKLOG,还有一种情况是,响应时间小于 200 毫秒是不截图的
为什么要启动多个?我记得允许多台,adb -s xxdevice-id shell xxx
你好,一个模拟器指定了设备 id 能正常跑,再开启一个模拟器就立即停止了。
221Floor has deleted
同问。。。你有了解到为什么吗?
crash 目录生成了,但是目录里头没有图片是什么情况呢?
除了 crash 其他异常的 log 能捕获么
红框上一步是命中了 RESET EVENT 就是重启 app,重启的过程就是把 app kill 掉然后再启动
top activity huawei xxx is isvalid 是指当前在桌面非待测 APP,下一步就启动 app
我想问下,就是当前测试的 activity 正是 我想要测试的 app,但是日志中却提示要 stop 我正在测试的 package,然后后台就把这个 app 进程杀掉了,然后又监测到当前 activity 是 huawei.launcher,就又重启应用。我想问下,明明一切正常并没有 crash,为什么会杀掉进程?是 maxim 代码有点问题么?感谢回复
@zhangzhao_lenovo 大神,能否适配一下 Android10 的手机呢,最近跑 Android10 的稳定性,跑不起来呢。
这个 monkey 支持 Android10 的吗
[Maxim] // DisallowActivity: com.tencent.qqmusic.activity.AppStarterActivity
开头日志里面是有生效的
log 开头会打印 blacklist 先确认下配置是否生效?
为什么 com.tencent.qqmusic.activity.AppStarterActivity 已经加入黑名单了,还能 resume??
[Maxim] // activityResuming(com.tencent.qqmusic)
[Maxim] // : debug, currentActivity is com.tencent.qqmusic.activity.AppStarterActivity
还有个问题,,,为什么在 max.xpath.selector 这个配置文件的 blacklist 里配置了一些控件 它还是能点击呢
adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar execapp_process /system/bin tv.panda.test.monkey.Monkey -p com.fenbi.android.zenglish --uiautomatortroy --running-minutes 6 --imagepolling -v -v --throttle 500
org.json.JSONException: Unterminated object at character 142 of [
{
"firstList":
[
{ "xpath": "//[@class='android.widget.TextView' and @resource-id='com.fenbi.android.zenglish:id/name']" and @text='如何上课'}
],
"selectList":
[
{ "xpath": "//[@clickable='true'//[contains(name(),'android.widget.FrameLayout')]"}
],
"lastList":
[
{ "xpath": "//[@class='android.widget.LinearLayout' and @resource-id='com.fenbi.android.zenglish:id/tab_bar']" }
],
"blackList":
[
{ "xpath": "//[@class='android.widget.ImageButton' and @resource-id='com.fenbi.android.zenglish:id/sobot_btn_set_mode_rengong']" }
{ "xpath": "//[contains(@content-desc, '确认支付')]" }
{ "xpath": "//[@class='android.webkit.WebView' and @resource-id='com.fenbi.android.zenglish:id/web_view']" }
{ "xpath": "//[@class='android.widget.CheckedTextView' and @resource-id='com.fenbi.android.zenglish:id/ytknavibar_right']" }
{ "xpath": "//[@class='android.widget.TextView' and @resource-id='com.fenbi.android.zenglish:id/text_buy']" }
{ "xpath": "//[@class='android.widget.CheckedTextView' and @resource-id='com.fenbi.android.zenglish:id/mission']" }
{ "xpath": "//[contains(@resource-id, 'com.fenbi.android.zenglish:id/misc')]" }
]
}
]
at org.json.JSONTokener.syntaxError(JSONTokener.java:449)
at org.json.JSONTokener.readObject(JSONTokener.java:393)
at org.json.JSONTokener.nextValue(JSONTokener.java:100)
at org.json.JSONTokener.readArray(JSONTokener.java:429)
at org.json.JSONTokener.nextValue(JSONTokener.java:103)
at org.json.JSONTokener.readObject(JSONTokener.java:384)
at org.json.JSONTokener.nextValue(JSONTokener.java:100)
at org.json.JSONTokener.readArray(JSONTokener.java:429)
at org.json.JSONTokener.nextValue(JSONTokener.java:103)
at org.json.JSONArray.(JSONArray.java:92)
at org.json.JSONArray.(JSONArray.java:108)
at tv.panda.test.monkey.ape.model.XPathSelectorReader.read(XPathSelectorReader.kt:82)
at tv.panda.test.monkey.ape.model.XPathSelectorController.(XPathSelectorController.kt:70)
at tv.panda.test.monkey.MonkeySourceUiAutomatorTroy.(MonkeySourceUiAutomatorTroy.kt:67)
at tv.panda.test.monkey.Monkey.run(Monkey.kt:573)
at tv.panda.test.monkey.Monkey$Companion.main(Monkey.kt:1422)
at tv.panda.test.monkey.Monkey.main(Monkey.kt)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
[Maxim] // Troy Selector:
[Maxim]
[Maxim]
[Maxim] *** ERROR // : the top activity package com.mumu.launcher is invalid.
我的也是空的 我的配置文件和你配置的一样 也把配置文件 push 到 sdcard 上了,。。。请问解决了吗
max.config 是需要 push 到 /sdcard
你好,我按如下配置的:配置电脑上的 max.config 文件
然后执行命令 adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.xxx --uiautomatormix --running-minutes 3 -v -v --throttle 400 --output-directory /sdcard/testreport/ --imagepolling
结果跑出了 crash,但是 crash 截图文件夹是空的。求问这是为什么?