zoukankan      html  css  js  c++  java
  • 【更新公告】pocoui更新至1.0.85版本

    1. 前言

    本次更新为Poco框架更新,pocoui版本提升至1.0.85版本,同时更新了pocoservice.apk,更新详情如下。

    2. 更新详情

    1)pocoservice.apk更新

    ① 修复了1.0.84版本可能带来的新问题:假如使用 poco(xx).click()时,当前页面不止一个节点会被筛选出来,并且正好第一个节点可能是不可见节点的话,会导致点击位置超出屏幕的报错,类似下面这样的报错:

    raise InvalidOperationException('Click position out of screen. pos={}'.format(repr(pos)))
    poco.exceptions.InvalidOperationException: Click position out of screen. pos=[0.315632761, 1000.93921]
    

    ② 部分APP的某些页面可能使用了WebView控件,以前的版本无法抓取,现在能够抓取(但并不能完全保证所有的WebView都可以拿到)。

    ③ UI树的层级结构多了一层,因此能够抓取到一些之前无法抓取的控件了
    例如部分手机的一些底部虚拟按钮、某些输入法的按键界面(如讯飞输入法)等。

    ④ 修复了一个筛选出列表后、再进行进一步条件筛选时可能会引发的报错
    例如,poco(xx)[0].parent().exists()执行正常,但是poco(xx)[1].parent().exists()就会报错。

    ⑤ 修复了部分手机可能拿到的节点信息未能实时刷新,导致运行失败的问题:
    例如:某个列表从上往下滚动时,某个节点一开始不存在,但是后来滚动到了画面中心,此时拿到的节点信息可能依然是不存在,导致脚本报错(主要在部分机型上可能出现、以及如果手机在设置-显示-大小,设置为“大”的话,也可能导致此问题)。

    此问题在1.0.84版本已经修复,但是带来了比较严重的性能问题,我们在这个版本做了优化,尽可能在刷新节点的同时保证了运行时的速度。

    ⑥ 去掉了当部分特殊节点无法被抓取到时的一个报错。

    2)其它更新

    ① 由于Android poco不能与uiautomator同时运行,之前的版本会在启动前强制做一些杀进程的操作,现在改为只有启动失败时,才尝试杀进程,加快启动速度。

    ② hrpc提升至1.0.9版本,将一个在断开时可能出现的连接报错hrpc.exceptions.TransportDisconnected: HTTPConnectionPool(host='127.0.0.1', port=11385): Max retries exceeded with url: / 进行了简单处理。

    3. 如何更新

    1)使用了AirtestIDE

    因为本次更新只涉及框架更新,所以我们即使使用最新的1.2.12版本IDE自带的Python环境也是无法享受到的;

    但是我们可以在AirtestIDE设置使用本地Python环境,然后在本地Python环境中将 pocoui 更新至1.0.85版本,这样在IDE运行Poco脚本时,就会使用最新的Poco框架,并且在手机上安装上最新的 pocoservice.apk

    2)使用本地Python环境/其它编辑器

    使用本地Python环境同学,可以直接在对应的Python环境中,使用下述命令更新 pocoui

    pip install -U pocoui
    

    使用其它编辑器,比如pycharm的同学,可以直接找到当前项目使用的Python解释器,然后升级 pocoui 至1.0.85版本:

    4. 更新的注意事项

    1)注意hrpc库是否更新至1.0.9版本

    更新pocoui至1.0.85版本的同学,可以顺便注意下hrpc库是否也同步更新到了1.0.9版本,查看安装的库详情可以使用pip list命令:

    2)如何确保手机上已经安装了最新的pocoservice.apk

    使用最新的pocoservice.apk与旧版pocoservice.apk最大的差别是,拿到的树会多一层 Root 节点:

    并且初次使用1.0.85版本跑Poco脚本时,会出现一条安装最新版本 pocoservice.apk 的log,类似:

    C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\airtest\core\android\static\adb\windows\adb.exe -P 5037 -s 7c5ce4c9 shell dumpsys package com.netease.open.pocoservice
    installed version is None, installer version is 45. force_reinstall=False
    
    3)如需使用AirtestIDE,请使用最新版1.2.12

    如我们需要在AirtestIDE中使用1.0.85的pocoui,请务必确保我们使用的是最新的1.2.12版本的IDE。

    另外为确保成功安装最新的pocoservice.apk,我们可以把设备里已经安装的旧版pocoservice.apk,手工卸载掉,并且杀掉手机的所有后台进程和关闭AirtestIDE的poco模式。

    此时我们在1.2.12版本的IDE(已设置使用本地Python环境并且环境里的pocoui已更新至1.0.85版本)运行类似这样的脚本:

    # -*- encoding=utf8 -*-
    __author__ = "AirtestProject"
    
    from airtest.core.api import *
    from airtest.report.report import simple_report,LogToHtml
    
    auto_setup(__file__)
    
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
    

    就会自动帮我们在设备上安装最新版的pocoservice.apk了,此时打开辅助窗的Android模式,或者运行Poco脚本,都将使用最新的版本。

    4)影响pocoservice.apk活跃的手机设置

    尽管我们已经多次提出同学们需要关注自己手机设置对pocoservice.apk的后台活跃影响,但仍有部分同学会收到pocoservice.apk反复重启的困扰,这里我们仅仅列举了部分常见国产品牌手机的设置项,如果你的手机品牌不在这个列表中,请尽量按照下面提供的示例检查一下手机是否有类似设置:

    • 小米:启用手机管家-应用管理-权限-自启动管理-PocoService,允许PocoService自启动
    • 华为:手机管家(大于8.0版本)-应用启动管理-PocoService允许自启动和后台活动
    • OPPO:设置-电池-应用耗电管理-pocoservice-允许应用自启动,允许完全后台行为
    • VIVO:电池-后台高耗电-> PocoService 开启
    • Realme:设置-电池-应用耗电管理-pocoservice-允许应用自启动,允许完全后台行为
    • 一加:设置-电池-电池优化-PocoService-不优化
    5)对pocoui新版快速提单

    如同学们在使用新版的pocoui时遇到了一些问题无法解决,可以通过此网站向我们的开发者快速提单:https://airtest.netease.com/issue_create

    可以在标题中加入“pocoui1.0.85”之类的字眼,方便我们快速筛选和排查。


    Airtest官网https://airtest.netease.com/
    Airtest教程官网https://airtest.doc.io.netease.com/
    搭建企业私有云服务https://airlab.163.com/b2b

    官方答疑 Q 群:654700783

    呀,这么认真都看到这里啦,帮忙点个推荐支持一下呗,灰常感谢~

  • 相关阅读:
    poj 3616 Milking Time
    poj 3176 Cow Bowling
    poj 2229 Sumsets
    poj 2385 Apple Catching
    poj 3280 Cheapest Palindrome
    hdu 1530 Maximum Clique
    hdu 1102 Constructing Roads
    codeforces 592B The Monster and the Squirrel
    CDOJ 1221 Ancient Go
    hdu 1151 Air Raid(二分图最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/15598591.html
Copyright © 2011-2022 走看看