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

小白 · July 11, 2019 · Last by 笑哼 replied at July 15, 2019 · 662 hits

以前都用的低版本的手机做并发,并发时未发现此问题,最近需要对高版本的手机做兼容时,根据版本高低加入了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

共收到 5 条回复 时间 点赞

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

小白 #2 · July 11, 2019 作者
YueC 回复

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

小白 回复

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

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

小白 #4 · July 12, 2019 作者
cmlanche 回复

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

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up