AirtestProject / AirtestProject/Airtest
批量执行用例,1.经常出现OSError: socket connection broken,2.手机会变卡直到卡死
- Linguagem predominante
- Python
- Estrelas
- 9.6k
- Forks
- 1.5k
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
**描述问题bug**
python环境,使用run_script(args, ComicAirtestCase)批量执行用例(比如100个):
1、经常出现OSError: socket connection broken
2、执行到30~40个时,手机会变得很卡,停止执行后会恢复
(执行结束时发现,如执行了N个用例就会,
日志1, N条,例如::
[06:14:17][DEBUG] orientationWatcher has ended
[06:14:17][DEBUG] orientationWatcher has ended
日志2,2N条,tcp:端口号不同,例如:
[06:14:17][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA forward --remove tcp:12741
[06:14:17][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA forward --remove tcp:17306
[06:14:17][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA forward --remove tcp:17355
[06:14:17][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA forward --remove tcp:12430
)
OSError: socket connection broken日志信息:
```
test_case_path: /Users/chenwenhui/comic-ui-auto-test/manga_ui_version_regression/air/test_reader/continue_reading_comic.air
save log in '/Users/chenwenhui/comic-ui-auto-test/manga_ui_version_regression/log/8LW4MFYTJF5H9DEA/continue_reading_comic8/log'
[05:49:56][INFO] /Users/chenwenhui/comic-ui-auto-test/manga_ui_version_regression/report/log_to_html/8LW4MFYTJF5H9DEA/continue_reading_comic.log/log.html
[05:49:56][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA wait-for-device
[05:49:56][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell getprop ro.build.version.sdk
[05:49:56][WARNING] Device:8LW4MFYTJF5H9DEA updated ->
[05:49:56][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell am force-stop com.bilibili.comic
======restart comic app======
[05:49:58][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell monkey -p com.bilibili.comic -c android.intent.category.LAUNCHER 1
[05:50:07][INFO] Try finding: Template(/Users/chenwenhui/comic-ui-auto-test/manga_ui_version_regression/air/test_reader/next_episode_previous_episode.air/tpl1615277307221.png)
[05:50:07][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell ls /data/local/tmp/minicap
[05:50:07][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell ls /data/local/tmp/minicap.so
[05:50:07][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -v 2>&1
[05:50:08][DEBUG] version:6
[05:50:08][DEBUG] skip install minicap
[05:50:08][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA forward --no-rebind tcp:14249 localabstract:minicap_14249
[05:50:08][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell pm path jp.co.cyberagent.stf.rotationwatcher
[05:50:08][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell export CLASSPATH=/data/app/jp.co.cyberagent.stf.rotationwatcher-fJfBdbHE_R23t7Q54DGzfw==/base.apk;exec app_process /system/bin jp.co.cyberagent.stf.rotationwatcher.RotationWatcher
[05:50:10][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -i
[05:50:11][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell dumpsys window displays
[05:50:11][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -n 'minicap_14249' -P 1080x2340@1080x2340/0 -l 2>&1
[05:50:11][DEBUG] [minicap_server]b'PID: 4977'
[05:50:11][DEBUG] [minicap_server]b'INFO: Using projection 1080x2340@1080x2340/0'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:241) Creating SurfaceComposerClient'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:244) Performing SurfaceComposerClient init check'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:255) Creating virtual display'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:261) Creating buffer queue'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:264) Setting buffer options'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:268) Creating CPU consumer'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:272) Creating frame waiter'
[05:50:11][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:276) Publishing virtual display'
[05:50:12][DEBUG] [minicap_server]b'INFO: (jni/minicap/JpgEncoder.cpp:64) Allocating 7678980 bytes for JPG encoder'
[05:50:12][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:489) Server start'
[05:50:12][DEBUG] (1, 24, 4977, 1080, 2340, 1080, 2340, 0, 2)
[05:50:12][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:492) New client connection'
[05:50:16][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:128) [adolli] @pumps send error, ret=-1'
[05:50:16][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:129) [adolli] @pumps errno=14'
[05:50:16][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:611) send error,close connection'
[05:50:16][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:619) Closing client connection'
[05:50:18][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA forward --no-rebind tcp:12857 localabstract:minicap_12857
[05:50:18][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -i
[05:50:19][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell dumpsys window displays
[05:50:19][DEBUG] /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac/adb -P 5037 -s 8LW4MFYTJF5H9DEA shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -n 'minicap_12857' -P 1080x2340@1080x2340/0 -l 2>&1
[05:50:20][DEBUG] [minicap_server]b'PID: 6276'
[05:50:20][DEBUG] [minicap_server]b'INFO: Using projection 1080x2340@1080x2340/0'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:241) Creating SurfaceComposerClient'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:244) Performing SurfaceComposerClient init check'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:255) Creating virtual display'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:261) Creating buffer queue'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:264) Setting buffer options'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:268) Creating CPU consumer'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:272) Creating frame waiter'
[05:50:20][DEBUG] [minicap_server]b'INFO: (external/MY_minicap/src/minicap_29.cpp:276) Publishing virtual display'
[05:50:21][DEBUG] [minicap_server]b'INFO: (jni/minicap/JpgEncoder.cpp:64) Allocating 7678980 bytes for JPG encoder'
[05:50:21][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:489) Server start'
[05:50:21][DEBUG] (1, 24, 6276, 1080, 2340, 1080, 2340, 0, 2)
[05:50:21][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:492) New client connection'
[05:50:25][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:128) [adolli] @pumps send error, ret=-1'
[05:50:25][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:129) [adolli] @pumps errno=14'
[05:50:25][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:611) send error,close connection'
[05:50:25][DEBUG] [minicap_server]b'INFO: (jni/minicap/minicap.cpp:619) Closing client connection'
======tearDown todo======
======================================================================
ERROR: runTest (__main__.ComicAirtestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 25, in wrapper
return func(inst, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 364, in get_frame_from_stream
return six.next(self.frame_gen)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/threadsafe.py", line 23, in __next__
return self._next()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 297, in _get_stream
frame_data = s.recv(frame_size)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/safesocket.py", line 32, in recv
raise socket.error("socket connection broken")
OSError: socket connection broken
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/cli/runner.py", line 70, in runTest
exec(compile(code.encode("utf-8"), pyfilepath, 'exec'), self.scope)
File "/Users/chenwenhui/comic-ui-auto-test/manga_ui_version_regression/air/test_reader/continue_reading_comic.air/continue_reading_comic.py", line 15, in
touch(Template(r"tpl1615277307221.png", record_pos=(0.125, 0.812), resolution=(750, 1334)))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/logwraper.py", line 90, in wrapper
res = f(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/api.py", line 352, in touch
pos = loop_find(v, timeout=ST.FIND_TIMEOUT)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/logwraper.py", line 90, in wrapper
res = f(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/cv.py", line 59, in loop_find
screen = G.DEVICE.snapshot(filename=None, quality=ST.SNAPSHOT_QUALITY)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/android.py", line 267, in snapshot
screen = self.minicap.get_frame_from_stream()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 28, in wrapper
return func(inst, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 364, in get_frame_from_stream
return six.next(self.frame_gen)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/threadsafe.py", line 23, in __next__
return self._next()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 297, in _get_stream
frame_data = s.recv(frame_size)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/safesocket.py", line 32, in recv
raise socket.error("socket connection broken")
OSError: socket connection broken
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/cli/runner.py", line 72, in runTest
log(err, desc="Final Error", snapshot=True)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/helper.py", line 104, in log
try_log_screen(depth=2)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/logwraper.py", line 90, in wrapper
res = f(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/cv.py", line 103, in try_log_screen
screen = G.DEVICE.snapshot(quality=quality)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/android.py", line 267, in snapshot
screen = self.minicap.get_frame_from_stream()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 25, in wrapper
return func(inst, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/minicap.py", line 364, in get_frame_from_stream
return six.next(self.frame_gen)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/utils/threadsafe.py", line 23, in __next__
return self._next()
StopIteration
----------------------------------------------------------------------
Ran 1 test in 30.853s
FAILED (errors=1)
```
**相关截图**

**复现步骤**
用例点击图片时如:
touch(Template(r"tpl1615277307221.png", record_pos=(0.125, 0.812), resolution=(750, 1334)))
**预期效果**
不出现,socket connection broken
**python 版本:** `3.7.2`
**airtest 版本:** `1.1.8`
**设备:**
- 型号: [OPPO A9 、华为x10]
- 系统: [10、10]
**其他相关环境信息**
macos:11.2.1
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Avaliação
Esta issue ainda não foi avaliada.