Appium服务器因没有新命令而关闭

我在Windows机器上使用Appium for Android本机应用程序自动化。 我的所有场景都表现良好,但有时App崩溃了,Appium停止说“没有在60秒内获得新命令,关闭”。

注意 – 如果明确地按下键盘上的任何键,它将获得黄瓜执行时执行的下一个命令。

我可以看到Appium正在发送查找元素的请求,但是没有收到任何响应。 我不知道为什么会这样,但同样的事情大多没有任何问题。 当这个问题发生时,Appium会关闭应用程序,接下来的场景也会失败。

有人帮助解决此问题。

这是Appium服务器日志:

信息:启动应用程序
info:[debug]试图杀死所有’uiautomator’进程
info:[debug]使用’uiautomator’获取所有进程
info:[debug]执行cmd:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell“ps’uiautomator’”
info:[debug]找不到匹配的进程
info:[debug]运行bootstrap
info:[debug]产生:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap – e pkg com.paragyte.publicpartnerships.test -e disableAndroidWatchers false
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:numtests = 1
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:stream =
info:[debug] [UIAUTOMATOR STDOUT] io.appium.android.bootstrap.Bootstrap:
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:id = UiAutomatorTestRunner
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:test = testRunServer
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:class = io.appium.android.bootstrap.Bootstrap info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:current = 1
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE:1
info:[debug] [BOOTSTRAP] [debug]在端口4724上打开套接字
info:[debug] [BOOTSTRAP] [debug] Appium Socket Server Ready
info:[debug]如果设备不活动则唤醒设备
info:[debug]将命令推送到appium工作队列:[“wake”,{}]
info:[debug] [BOOTSTRAP] [debug]加载json …
info:[debug] [BOOTSTRAP] [debug] json loading complete。
info:[debug] [BOOTSTRAP] [debug]已注册的崩溃观察者。
info:[debug] [BOOTSTRAP] [debug]连接客户端
info:[debug] [BOOTSTRAP] [debug]从客户端获取数据:{“cmd”:“action”,“action”:“wake”,“params”:{}}
info:[debug] [BOOTSTRAP] [debug]得到ACTION类型的命令
info:[debug] [BOOTSTRAP] [debug]得到命令动作:唤醒
info:[debug] [BOOTSTRAP] [debug]返回结果:{“value”:true,“status”:0}
info:[debug]执行cmd:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell“dumpsys window”

info:[debug]屏幕已解锁,继续。
info:[debug]将命令推送到appium工作队列:[“getDataDir”,{}]
info:[debug] [BOOTSTRAP] [debug]从客户端获取数据:{“cmd”:“action”,“action”:“getDataDir”,“params”:{}}
info:[debug] [BOOTSTRAP] [debug]得到ACTION类型的命令
info:[debug] [BOOTSTRAP] [debug]得到命令动作:getDataDir
info:[debug] [BOOTSTRAP] [debug]返回结果:{“value”:“/ data / local / tmp”,“status”:0}
info:[debug] dataDir设置为:/ data / local / tmp
info:[debug]将命令推送到appium工作队列:[“compressedLayoutHierarchy”,{“compressLayout”:false}]
info:[debug] [BOOTSTRAP] [debug]从客户端获取数据:{“cmd”:“action”,“action”:“compressedLayoutHierarchy”,“params”:{“compressLayout”:false}}
info:[debug] [BOOTSTRAP] [debug]得到ACTION类型的命令
info:[debug] [BOOTSTRAP] [debug]得到命令动作:compressedLayoutHierarchy
info:[debug] [BOOTSTRAP] [debug]返回结果:{“value”:false,“status”:0}
info:[debug]获取设备API级别
info:[debug]执行cmd:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell“getprop ro.build.version.sdk”

info:[debug]设备处于API级别19
info:[debug]执行cmd:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell“am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n com.paragyte.publicpartnerships.test / com.paragyte.publicpartnerships.SplashActivity“

info:[debug]等待pkg“com.paragyte.publicpartnerships.test”和活动“com.paragyte.publicpartnerships.SplashActivity”重点关注
info:[debug]获得专注的包和活动
info:[debug]执行cmd:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell“dumpsys window windows”

info:[debug]执行cmd:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell“getprop ro.build.version.release”

info:[debug]设备发布版本为4.4.2
info:[debug]设备已启动! 准备好命令
info:[debug]将命令超时设置为默认值60秒
info:[debug] Appium会话以sessionId 00bd22a6-7f2e-435b-a6af-53f5bf115a2c开始
info:< – POST / wd / hub / session 303 16023.269 ms – 74
info: – > GET / wd / hub / session / 00bd22a6-7f2e-435b-a6af-53f5bf115a2c {}

info:[debug]成功响应客户端:{“status”:0,“value”:{“platform”:“LINUX”,“browserName”:“”,“platformVersion”:“4.4.2”,“webStorageEnabled “:假” takesScreenshot “:真” javascriptEnabled “:真” databaseEnabled “:假” networkConnectionEnabled “:真” locationContextEnabled “:假,” 警告 “:{},” 期望的 “:{” appiumVersion“: “1.6.0”,“platformName”:“Android”,“platformVersion”:“4.4.2”,“browserName”:“”,“deviceName”:“三星Galaxy S4 Emulator”,“app”:“D:\ Automation \ Mobile \ apk_files / app-debug.apk“,”name“:”Time 4 Care“},”appiumVersion“:”1.6.0“,”platformName“:”Android“,”deviceName“:”300450adeedc3100“, “app”:“D:\ Automation \ Mobile \ apk_files / app-debug.apk”,“name”:“Time 4 Care”},“sessionId”:“00bd22a6-7f2e-435b-a6af-53f5bf115a2c”}

info:< – GET / wd / hub / session / 00bd22a6-7f2e-435b-a6af-53f5bf115a2c 200 2.411 ms – 691 {“status”:0,“value”:{“platform”:“LINUX”,“browserName” : “”, “platformVersion”: “4.4.2”, “webStorageEnabled”:假的, “takesScreenshot”:真实的, “javascriptEnabled”:真实的, “databaseEnabled”:假的, “networkConnectionEnabled”:真实的, “locationContextEnabled”:假的, “警告”:{}, “期望的”:{ “appiumVersion”: “1.6.0”, “platformName”: “机器人”, “platformVersion”: “4.4.2”, “browserName”: “”, “设备名称” :“Samsung Galaxy S4 Emulator”,“app”:“D:\ Automation \ Mobile \ apk_files / app-debug.apk”,“name”:“Time 4 Care”},“appiumVersion”:“1.6.0”, “platformName”:“Android”,“deviceName”:“300450adeedc3100”,“app”:“D:\ Automation \ Mobile \ apk_files / app-debug.apk”,“name”:“Time 4 Care”},“sessionId “:” 00bd22a6-7f2e-435B-a6af-53f5bf115a2c“}

info: – > GET / wd / hub / status {}

info:[debug]成功响应客户端:{“status”:0,“value”:{“build”:{“version”:“1.4.13”,“revision”:“c75d8adcb66a75818a542fe1891a34260c21f76a”}},“sessionId “:” 00bd22a6-7f2e-435B-a6af-53f5bf115a2c“}

info:< – GET / wd / hub / status 200 5.141 ms – 156 {“status”:0,“value”:{“build”:{“version”:“1.4.13”,“revision”:“c75d8adcb66a75818a542fe1891a34260c21f76a “}}” 的sessionId “:” 00bd22a6-7f2e-435B-a6af-53f5bf115a2c“}

info: – > POST / wd / hub / session / 00bd22a6-7f2e-435b-a6af-53f5bf115a2c / timeouts / implicit_wait {“ms”:0}
info:[debug]将Android隐式等待设置为0ms

info:[debug]成功响应客户端:{“status”:0,“value”:null,“sessionId”:“00bd22a6-7f2e-435b-a6af-53f5bf115a2c”}

info:< – POST / wd / hub / session / 00bd22a6-7f2e-435b-a6af-53f5bf115a2c / timeouts / implicit_wait 200 2.471 ms – 76 {“status”:0,“value”:null,“sessionId”:“00bd22a6 -7f2e-435B-a6af-53f5bf115a2c“}

info: – > POST / wd / hub / session / 00bd22a6-7f2e-435b-a6af-53f5bf115a2c / appium / device / press_keycode {“keycode”:93}
info:[debug]将命令推送到appium工作队列:[“pressKeyCode”,{“keycode”:93,“metastate”:null}]

info:[debug] [BOOTSTRAP] [debug]从客户端获取数据:{“cmd”:“action”,“action”:“pressKeyCode”,“params”:{“keycode”:93,“metastate”:null} }

info:[debug] [BOOTSTRAP] [debug]得到ACTION类型的命令
info:[debug] [BOOTSTRAP] [debug]得到命令动作:pressKeyCode
info:[debug] [BOOTSTRAP] [debug]返回结果:{“value”:true,“status”:0}

info:[debug]成功响应客户端:{“status”:0,“value”:true,“sessionId”:“00bd22a6-7f2e-435b-a6af-53f5bf115a2c”}
info:< – POST / wd / hub / session / 00bd22a6-7f2e-435b-a6af-53f5bf115a2c / appium / device / press_keycode 200 258.139 ms – 76 {“status”:0,“value”:true,“sessionId”: “00bd22a6-7f2e-435B-a6af-53f5bf115a2c”}

info:[debug]没有在60秒内获得新命令,关闭…
信息:关闭appium会话
info:[debug]按HOME按钮

info:[debug]执行cmd:C:\ Users \ PG106 \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s 300450adeedc3100 shell“输入keyevent 3”

info:[debug]停止logcat捕获
info:[debug] Logcat终止,代码为null,信号为SIGTERM
info:[debug] [BOOTSTRAP] [debug]从客户端获取数据:{“cmd”:“shutdown”}
info:[debug] [BOOTSTRAP] [debug]得到SHUTDOWN类型的命令
info:[debug] [BOOTSTRAP] [debug]返回结果:{“value”:“OK,shut down”,“status”:0}
info:[debug] [BOOTSTRAP] [debug]封闭客户端连接
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:numtests = 1
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:stream =。
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:id = UiAutomatorTestRunner
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:test = testRunServer
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:class = io.appium.android.bootstrap.Bootstrap
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:current = 1
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE:0
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:stream =
info:[debug] [UIAUTOMATOR STDOUT] WatcherResultPrinter =的测试结果。
info:[debug] [UIAUTOMATOR STDOUT]时间:63.073
info:[debug] [UIAUTOMATOR STDOUT] OK(1测试)
info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE:-1
info:[debug]发送shutdown命令,等待UiAutomator停止…
info:[debug] UiAutomator正常关闭
info:[debug]清理android对象
info:[debug]清理appium会话
info:[debug]我们关闭,因为没有新的命令进来

谢谢,卡皮尔

您是否尝试将所需function设置为更高的数字? 它目前设定的是什么?

desiredCapabilities.setCapability("newCommandTimeout", 10000);