Appium 大家做安卓多设备并发时并发时,遇到高版本手机用例执行一半时超时的问题 Proxy error: Could not proxy command to remote server. Original error: Error: ESOCKETTIMEDOUT 怎么解决的

小白 · 2019年07月11日 · 最后由 fei 回复于 2020年03月15日 · 2266 次阅读

以前都用的低版本的手机做并发,并发时未发现此问题,最近需要对高版本的手机做兼容时,根据版本高低加入了 automationName=uiautomator2 和 systemPort 后,发现在并发时,有时候手机会用例跑一半时不动了,log 如下:
[W3C (fa8d7b55)] Driver proxy active, passing request on via HTTP proxy
[WD Proxy] Got an unexpected response: {"code":"ESOCKETTIMEDOUT","connect":false}
[debug] [WD Proxy] Matched '/wd/hub/session/fa8d7b55-bcb7-4947-ad19-5769aaca0736/source' to command name 'getPageSource'
[debug] [WD Proxy] Proxying [GET /wd/hub/session/fa8d7b55-bcb7-4947-ad19-5769aaca0736/source] to [GET http://localhost:8235/wd/hub/session/1ad6799e-2b0f-46bb-8f3a-8bfdd95e91d3/source] with body: {}
[debug] [W3C (fa8d7b55)] Encountered internal error running command: Error: Could not proxy. Proxy error: Could not proxy command to remote server. Original error: Error: ESOCKETTIMEDOUT
[debug] [W3C (fa8d7b55)] at doJwpProxy (C:\Users\yangmeng\AppData\Roaming\npm\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:547:13)
[debug] [W3C (fa8d7b55)] at
[debug] [W3C (fa8d7b55)] at process._tickCallback (internal/process/next_tick.js:188:7)
[WD Proxy] Got an unexpected response: {"code":"ESOCKETTIMEDOUT","connect":false}
[debug] [W3C (fa8d7b55)] Encountered internal error running command: Error: Could not proxy. Proxy error: Could not proxy command to remote server. Original error: Error: ESOCKETTIMEDOUT
[debug] [W3C (fa8d7b55)] at doJwpProxy (C:\Users\yangmeng\AppData\Roaming\npm\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:547:13)
[debug] [W3C (fa8d7b55)] at
[HTTP] <-- GET /wd/hub/session/fa8d7b55-bcb7-4947-ad19-5769aaca0736/source 500 360025 ms - 807
但是低版本的手机中都不会出现
环境:
python2.7
appium-server 1.12.0

共收到 7 条回复 时间 点赞

systemPort 端口不能重复。还有确实有 (锤子,魅族) 等部分版本手机用 uiautomator2 服务,运行一会手机里 uiautomator2 进程就会 crash。具体也可以看下手机 logcat 日志

YueChen 回复

systemport 做了重复校验并且在 8200-8299 之间,最近发现,一些手机跑着跑着就不能用了,然后看 log 都是这种 socket timeout,也没找到好方法,换个 usb 端口重新插拔一下或者手机重启一下又好了,太奇怪了

小白 回复

可能是执行过程中,手机发现后台 UIAutomator 进程耗电严重,就给关闭或者冻结了。

解决方法就是检查手机是否有电源设置,关闭省电模式,比如小米的神隐模式

cmlanche 回复

华为的 nova 手机,我把所有相关的权限都打开了,电源设置能关的都给关了,还是会报 sockettimeout,adb logcat 里面关于 uiautomator2 也没有 error。。。

同样遇到过此类问题,不知道是否有好的解决办法?

想知道怎么解决的,我也遇到这样的问题,请求答复

所以这个问题到现在还没有解决方案是吗?

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