AirtestProject / AirtestProject/Poco

ios游戏运行一段时间,几率poco server挂掉

Đang mở
#505 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Python
Star
2k
Fork
341
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

:bulb:**相关项目:** Poco

**标题:** [BUG提交]ios游戏运行一段时间,几率poco server挂掉

**AirtestIDE版本:** 无

- [x] **使用了本地Pyhton环境运行脚本**
- Python版本: python3.8.8
- Airtest版本: v1.2.0

**报错描述:**
    iOS unity 游戏运行一段时间(可能10分,也可能1个小时以上),几率poco server挂掉,报错就是simplerpc.py中拉取信息的语句报错。在不关游戏的前提下,此时poco永远连不上了。重启游戏后又正常了。

**相关截图:**

**报错Log:**
```
File "/Users/farm-imac1/stf/vendor/auto_test/util/mt_lib.py", line 272, in mt_wait
if apoco.wait(timeout):
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 659, in wait
while not self.exists():
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 72, in wrapped
return func(proxy, *args, **kwargs)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 774, in exists
return self.attr('visible')
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 39, in wrapped
return func(self, *args, **kwargs)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 734, in attr
nodes = self._do_query(multiple=False)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 872, in _do_query
self._nodes = self.poco.agent.hierarchy.select(self.query, multiple)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/freezeui/hierarchy.py", line 90, in select
return self.selector.select(query, multiple)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/sdk/Selector.py", line 77, in select
return self.selectImpl(cond, multiple, self.getRoot(), 9999, True, True)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/sdk/Selector.py", line 71, in getRoot
return self.dumper.getRoot()
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/freezeui/hierarchy.py", line 35, in getRoot
root = Node(self.dumpHierarchy())
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/utils.py", line 13, in new_func
ret, err = cb.wait(timeout=120)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/simplerpc.py", line 74, in wait
self.agent.update()
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/rpcclient.py", line 68, in update
self.handle_message(msg, self.conn)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/simplerpc.py", line 163, in handle_message
msg = msg.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd4 in position 2057433: invalid continuation byte

iOS会出现以上报错,我们把msg保存下来,发现msg是不完整的(没传完)。另外出现这个问题后,游戏不动,拿着iphone连AirtestIDE,是连不上的,报错
initializing Unity poco. ('localhost', 12428)
/Applications/AirtestIDE.app/Contents/MacOS/poco/utils/simplerpc/rpcclient.py:29: DeprecationWarning:
warnings.warn(DeprecationWarning())
[rpc]connected
[Errno 54] Connection reset by peer
[Errno 32] Broken pipe
Traceback (most recent call last):
File "app/plugins/poco/poco_probe.py", line 70, in close
File "/Applications/AirtestIDE.app/Contents/MacOS/poco/utils/simplerpc/rpcclient.py", line 44, in close
self.conn.close()
File "/Applications/AirtestIDE.app/Contents/MacOS/poco/utils/simplerpc/transport/tcp/main.py", line 43, in close
self.c.close()
File "/Applications/AirtestIDE.app/Contents/MacOS/poco/utils/simplerpc/transport/tcp/safetcp.py", line 72, in close
self.sock.shutdown(socket.SHUT_RDWR)
OSError: [Errno 57] Socket is not connected
Traceback (most recent call last):
File "app/plugins/poco/poco_probe.py", line 70, in close
File "/Applications/AirtestIDE.app/Contents/MacOS/poco/utils/simplerpc/rpcclient.py", line 44, in close
self.conn.close()
File "/Applications/AirtestIDE.app/Contents/MacOS/poco/utils/simplerpc/transport/tcp/main.py", line 43, in close
self.c.close()
File "/Applications/AirtestIDE.app/Contents/MacOS/poco/utils/simplerpc/transport/tcp/safetcp.py", line 72, in close
self.sock.shutdown(socket.SHUT_RDWR)

综上,可以判断游戏内poco的Server坏掉了,重启游戏后正常。安卓就没有

也出现过报错信息是如下的,感觉和上面的报错差不多,应该都是一个问题导致
File "/Users/farm-imac1/stf/vendor/auto_test/util/mt_lib.py", line 36, in wrapper
result = func(*args, **kwargs)
File "/Users/farm-imac1/stf/vendor/auto_test/util/mt_lib.py", line 272, in mt_wait
if apoco.wait(timeout):
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 659, in wait
while not self.exists():
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 72, in wrapped
return func(proxy, *args, **kwargs)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 774, in exists
return self.attr('visible')
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 39, in wrapped
return func(self, *args, **kwargs)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 734, in attr
nodes = self._do_query(multiple=False)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/proxy.py", line 872, in _do_query
self._nodes = self.poco.agent.hierarchy.select(self.query, multiple)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/freezeui/hierarchy.py", line 90, in select
return self.selector.select(query, multiple)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/sdk/Selector.py", line 77, in select
return self.selectImpl(cond, multiple, self.getRoot(), 9999, True, True)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/sdk/Selector.py", line 71, in getRoot
return self.dumper.getRoot()
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/freezeui/hierarchy.py", line 35, in getRoot
root = Node(self.dumpHierarchy())
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/utils.py", line 13, in new_func
ret, err = cb.wait(timeout=120)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/simplerpc.py", line 74, in wait
self.agent.update()
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/rpcclient.py", line 68, in update
self.handle_message(msg, self.conn)
File "/Users/farm-imac1/miniconda3/lib/python3.8/site-packages/poco/utils/simplerpc/simplerpc.py", line 164, in handle_message
data = json.loads(msg)
File "/Users/farm-imac1/miniconda3/lib/python3.8/json/__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "/Users/farm-imac1/miniconda3/lib/python3.8/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/farm-imac1/miniconda3/lib/python3.8/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 2020981 (char 2020980)
```

**连接设备信息:**
设备类型 | 设备型号 | 系统版本号 | apk名称/下载链接 | 使用的wda版本 | wda更新到最新
------------ | ------------- | ------------- | ------------- | ------------- | -------------
iOS | iphonexr,iphone6s | 14.4 | | Appium/WebDriverAgent | 是

**提供最小可复现此BUG的代码:**
```

```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.