AirtestProject / AirtestProject/Poco

Poco元素查询耗时很长

未关闭
#559 10 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Python
星标
2k
派生
341
PR 合并指标
30 天内没有已合并 PR

描述

**问题分类**
控件识别、树状结构

**描述问题bug**
在 Poco **1.0.87** 版本后,某些场景出现查询节点耗时很慢的问题。

```
# 例子运行在AirTest中,直接python触发效果也等同,因此排除AirTest导致。
from airtest.core.api import *
import json
import inspect
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

auto_setup(__file__)

last_time = time.time()
ui = poco.agent.hierarchy.dump()
print("poco获取dump耗时" + str(time.time() - last_time))

last_time = time.time()
poco("add_passenger_button").exists()
print("poco查询元素存在耗时" + str(time.time() - last_time))

last_time = time.time()
poco("add_passenger_button").click()
print("poco点击耗时" + str(time.time() - last_time))

# 打印的结果
============================================================

[Start running..]
save log in '/var/folders/1x/65cvlf_d715ct5kzqtbnzdqm0000gn/T/AirtestIDE/scripts/5abc0f154388cfbfe093f75f50d61f56'
poco_target
/Applications/AirtestIDE.app/Contents/MacOS/poco/drivers/android/uiautomation.py
poco获取dump耗时0.5019688606262207
poco查询元素存在耗时10.28783893585205
[12:18:34][INFO] update orientation None->0
poco点击耗时14.770931243896484
----------------------------------------------------------------------
Ran 1 test in 28.339s

OK
[Finished]

============================================================

```

```
#耗时正常日志
============================================================

[Start running..]
save log in '/var/folders/1x/65cvlf_d715ct5kzqtbnzdqm0000gn/T/AirtestIDE/scripts/5abc0f154388cfbfe093f75f50d61f56'
poco获取dump耗时1.6259679794311523
poco查询元素存在耗时0.3818488121032715
[12:31:51][INFO] update orientation None->0
poco点击耗时4.8794450759887695
----------------------------------------------------------------------
Ran 1 test in 9.681s

OK
[Finished]

============================================================

```

**复现步骤**
1. 降低Poco版本到 **1.0.84** 此问题没有出现。
2. 继续测试发现,将Poco的版本保持在1.0.84(低版本),Poc Service 的APK的版本升级到 1.0.45(高版本),耗时变得很长。
3. 将Poco的版本保持在1.0.87(高版本),Poc Service 的APK的版本降低到 1.0.43(低版本),耗时正常。

由此推断,是Poco Service Apk升级后,导致某些场景查询exist 和 click事件耗时很长。

**预期效果**
希望查询耗时正常。

**相关截图**
(贴出遇到问题时的截图内容,如果有的话)

**python 版本:** `Python 3.8.9`

**poco 版本:** `1.0.87`

**设备:**
- 型号: [三星s8+]
- 系统: [eAndroid 9]
- (别的信息)

**其他相关环境信息**
排除平台和手机特性导致。测试了不同机型的手机,和所有平台的环境,均能稳定复现。

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。