AirtestProject / Poco

A cross-engine test automation framework based on UI inspection
http://airtest.netease.com/
Apache License 2.0
1.74k stars 315 forks source link

Poco disconnect----》ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接 #574

Open alin5295 opened 1 year ago

alin5295 commented 1 year ago

问题描述: 我单行执行《poco("btn_guest").click()》可以,但是结合Airtest一起运行就会报错,看lua-print打印一开始输出是[LUA-print] [poco] server listens on tcp://*:15004,但是过了一会输出[poco] new client accepted 127.0.0.1 nil,紧接着输出[poco] client disconnect

环境: python版本:Python 3.9.6 pocoui版本:1.0.88

报错内容: Traceback (most recent call last): File "D:\Airetest\BY_TP\Airtestide_test.py", line 28, in poco("btn_guest").click() File "D:\Python\lib\site-packages\poco\proxy.py", line 23, in wrapped return func(proxy, *args, kwargs) File "D:\Python\lib\site-packages\poco\proxy.py", line 332, in click pos_in_percentage = self.get_position(focus) File "D:\Python\lib\site-packages\poco\proxy.py", line 72, in wrapped return func(proxy, *args, *kwargs) File "D:\Python\lib\site-packages\poco\proxy.py", line 613, in get_position x, y = map(float, self.attr('pos')) File "D:\Python\lib\site-packages\poco\proxy.py", line 39, in wrapped return func(self, args, kwargs) File "D:\Python\lib\site-packages\poco\proxy.py", line 734, in attr nodes = self._do_query(multiple=False) File "D:\Python\lib\site-packages\poco\proxy.py", line 884, in _do_query self._nodes = self.poco.agent.hierarchy.select(self.query, multiple) File "D:\Python\lib\site-packages\poco\freezeui\hierarchy.py", line 90, in select return self.selector.select(query, multiple) File "D:\Python\lib\site-packages\poco\sdk\Selector.py", line 77, in select return self.selectImpl(cond, multiple, self.getRoot(), 9999, True, True) File "D:\Python\lib\site-packages\poco\sdk\Selector.py", line 71, in getRoot return self.dumper.getRoot() File "D:\Python\lib\site-packages\poco\freezeui\hierarchy.py", line 35, in getRoot root = Node(self.dumpHierarchy()) File "D:\Python\lib\site-packages\poco\utils\simplerpc\utils.py", line 13, in new_func ret, err = cb.wait(timeout=30) File "D:\Python\lib\site-packages\poco\utils\simplerpc\simplerpc.py", line 74, in wait self.agent.update() File "D:\Python\lib\site-packages\poco\utils\simplerpc\rpcclient.py", line 64, in update data = self.conn.recv() File "D:\Python\lib\site-packages\poco\utils\simplerpc\transport\tcp\main.py", line 36, in recv msg_bytes = self.c.recv() File "D:\Python\lib\site-packages\poco\utils\simplerpc\transport\tcp\safetcp.py", line 36, in recv trunk = self.sock.recv(size) ConnectionAbortedError: [WinError 10053] 你的主机中的软件中止了一个已建立的连接。

=========================================源码====================================== from airtest.core.api import * from poco.drivers.std import StdPoco from poco.drivers.android.uiautomation import AndroidUiautomationPoco from airtest.report.report import simple_report import os

测试报告的名字

author = "Yaolintest"

连接设备并生成测试报告

auto_setup(file, logdir=True, devices=["Android:emulator-5554"]) simple_report(file,output=r".\log.html")

实例Poco

poco = StdPoco()

清除APP数据

os.system("adb shell pm clear com.szbt.tkpine.yy") print("app缓存已清除成功")

点击TP图标

touch(Template(r"tpl1679450126773.png", record_pos=(0.363, -0.531), resolution=(1080, 2340)))

wait(Template(r"tpl1679471754179.png", record_pos=(0.168, 0.073), resolution=(2340, 1080)),interval=0.1,timeout=30)

poco("btn_guest").click()#到这一步就报错了

print("test passed")

alin5295 commented 1 year ago

辛苦官方大大!!!