AirtestProject / AirtestProject/Airtest

批量执行用例,1.经常出现OSError: socket connection broken,2.手机会变卡直到卡死

Aberta
#874 6 comentários 0 reações 0 responsáveis Ver no GitHub
help wanted
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)
```

**相关截图**
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.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.