• AirtestIDE连接安卓真机及常见问题


    上期回顾:AirtestIDE基本功能(二)


    以下基于

    python3.7;airtest1.1.8;pocoui1.0.81;airtestIDE1.2.8

    USB连接

    用airtestIDE连接安卓真机之前,得先确保你用PC安装apk没问题。

    1. 插上手机,使PC可以识别出手机,一般情况下插上会自动识别,不能识别的自己去手机官网安装驱动。

    2. 打开“开发者选项”,每款手机各不一样,这个自己搜索一下。

    3. 在“开发者选项”中打开‘开启开发者选项’、‘USB调试’、‘USB安装’、‘允许模拟位置’。如果是第一次开启USB调试,手机上会弹出确认界面,点确定

    4. 退出各种手机助手,保证进程也要杀掉。

    5. 如果本机安装了adb环境、模拟器、手机助手,全局搜索adb.exe,全部替换为airtestIDE文件夹下的。

    现在可以在airtestIDE里连接了,默认插上手机后会自动刷新设备列表,如果没刷新就手动点一下‘刷新ADB’。

    图片

    点击设备后的‘connect’按钮,就连接上真机了。如果你的手机连不上,或者一闪又退出了。可以尝试添加一下连接选项,选中上图中的‘Use Javacap’,不行就再选上‘Use ADB Orientation’。

    现在airtestIDE1.2.8有个BUG,就是连接手机后,再断开,再连的时候连不上,可以尝试重启IDE

    如果要断开连接,点击上面的工具按钮,点‘断开当前设备’

    图片

    无线连接

    不推荐,除非你的WIFI环境非常稳定。

    1. 手机USB线连接PC,PC执行命令adb tcpip 5555,5555是端口号,可以是其他数字

    2. 进入手机wifi设备,查看IP地址,比如这里是:192.168.1.1

    3. 拨掉USB线,在airtestIDE中选中‘远程设备连接’,输入adb connect 192.168.1.1:5555,点‘连接’

      图片

    远程连接

    同无线连接一样,如果手机是在云平台下(需要自己搭建),也可以用adb connect ip:port去连接

    常见问题

    一、连接问题

    如果无法连接,首先确保本机环境的adb可以连接。部分手机在连上USB线后需要选择‘MTP模式’进行连接。

    若能够在 adb devices 指令的返回结果中看到自己的设备,但是无法使用AirtestIDE连接手机,可以继续检查以下几个方面:

    • 在设备接入IDE进行初始化时,还会在手机上安装一个RotationWatcher.apk的应用(用于检测手机屏幕是否旋转),可能会在手机上有安装apk的弹窗提醒,需要手工点击同意安装

    • 如果是已root的手机,可能会因为本地文件夹权限已被修改,导致Airtest没有权限将相关文件放入手机内,请检查手机内的 /data/local/tmp 文件夹是否有写入权限

    • 如果手机曾经安装过 STF 库,可能会出现不能正常点击屏幕等问题,可以尝试清空原先安装的STF相关文件(执行指令adb shell rm /data/local/tmp/mini*)后,再重新将手机连接到IDE中进行初始化

    • 部分手机虽然能成功安装 pocoservices.apk ,但是在启动中可能会不断提示重新安装、无法正确启动,此时需要检查手机所处的网络是否是特殊网络(例如开了代理)、手机的开发者选项中的设置是否开启(涉及到USB安装和操作相关的选项,部分型号设备需要选择取消权限监控等)。如果是VIVO/OPPO品牌手机,可能需要设置手机默认输入法为yosemite。

    二、部分厂商设备特殊问题

    小米

    • 在系统设置的语言和输入法中,取消‘安全键盘’的选中状态

    • 部分小米手机在连接失败时,报错Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user],是因为在Airtest试图向手机中安装apk但是被手机自动拦截了。查看手机设置-》授权管理-》USB安装管理-》去掉USB安装应用的相关限制

    三星

    • 显示-屏幕分辨率调到最大:
      部分手机设备(如部分型号三星手机)在连上AirtestIDE后,显示出的手机画面不能撑满整个屏幕,请在“设置”-“显示”中将“屏幕分辨率”调至 “WQHD”

    • 在开发者选项中,打开未知来源、取消权限监控。

    华为

    1. 输入法设置中,取消安全输入

    2. 开发者选项->监控ADB安装应用取消,打开仅充电模式下允许调试

    3. 权限监控->设置->自动配置权限

    4. 部分华为型号的手机,可能出现点击位置与实际位置不符的情况(mate20pro, mate7等),需要在 设置-显示-屏幕分辨率 中,将分辨率设置为最高即可。

    5. 如果华为手机出现poco在启动后十几秒内自动断开的话,可以检查一下手机管家的版本号是否大于8.0,如果是的话,就在手机管家->启动管理里面,找到pocoservice,勾选允许自启动和允许后台活动

    vivo

    1. 取消安全输入,如果遇到Poco初始化失败、text接口无法调用的问题,可以在输入法设置中将Yosemite输入法设置为默认

    2. 部分机型需要 在开发者选项中打开安全权限 ,否则可能在初始化poco的时候报错

    3. 如果vivo输密码的时候出现黑屏,可以在尝试把安全性设置里的 安全键盘 关闭掉再重试。如果没找到 安全键盘 的设置,可以找一下vivo的设置->安全与隐私-> 防止恶意截屏录屏 ,然后把防止恶意截屏录屏关掉就好了。

    4. 如果有 usb模拟点击 选项的话,一定要点开,否则运行脚本可能会报错:

    OPPO

    1. 开发者选项的最底部,勾选 禁止监控权限

    2. 部分OPPO机型在初始化Poco时,或者调用 text() 接口时,会失败报错,原因可能是因为安装或者切换Yosemite输入法失败(需要输入OPPO账号密码才能切换)。此时可以先到系统设置-输入法设置里,将Yosemite输入法设置为默认输入法,如果尚未安装Yosemite输入法,可以在AirtestIDEairtestcoreandroidstaticapks目录下找到它并且手工安装到手机上之后,即可开始使用Poco功能以及 text() 接口。

    魅族

    魅族手机部分型号无法直接通过ADB进行连接,解决方案:
    https://www.zhihu.com/question/26245688/answer/37621798

    LG

    1. LG手机需要选择充电模式才能正确打开USB调试,识别序列号:

    2. 在开发者选项中勾选允许模仿位置

    一加

    一加手机在使用poco的时候,会出现重复安装的问题,报错:

    unable to launch AndroiduiautomationPoco

    此时需要将pocoservice.apk的电池优化关掉,改成“不优化”

    三、全面屏问题

    IDE投屏位置发生偏移,自定义渲染分辨率

    在一些不支持全面屏手机的app,画面不能充满整个屏幕的时候,出现黑边,poco定位发生偏移。

    图片

    进入设置,勾选采用渲染分辨率,然后输入竖屏模式下的渲染分辨率,点击OK即可. 渲染分辨率为用逗号隔开的四个数字,数字分别代表竖屏模式下的 offset_x, offset_y, offset_width, offset_heigt

    图片

    比如本例中在 1080*2220 分辨率下的大鱼来了,它在手机上会有两个黑边,上黑边高度为 100px ,画面高度为2020px ,下黑边高度为 100px ,所以它的渲染分辨率则为(0 ,100 ,1080 ,2020)

    图片

    脚本运行发生偏移

    当app不支持全面屏,出现黑边,运行poco点击的脚本的时候,会发生偏移,像下图执行poco("PauseButton").click()一样,实际点击位置不符合预期。

    图片

    确保当前poco或IDE为最新版本,关闭下图的 虚拟键盘,然后在脚本中调用poco.use_render_resolution(), 让poco切换为当前画面渲染分辨率,运行脚本,即可准确点击。

    图片

    对于Airtest无法支持的全面屏设备,可以自定义渲染分辨率::

    poco.use_render_resolution(True, (0 ,100 ,1080 ,2020))

    如果页面切换,从不支持全面屏的画面切换到支持全面屏的画面,即有黑边的页面->无黑边页面,需要重新设置poco分辨率,传入"False",poco.use_render_resolution(False),poco会切换成手机完整分辨率。

    如当前为多机运行,同时存在普通屏手机和全面屏手机,而app不支持全面屏的时候,需要关闭所有手机的虚拟键盘,脚本按照支持全面屏的脚本编写。

    四、其他常见问题

    部分设备“返回”-“主页”-“菜单”等按钮失效

    • 部分设备不能正确响应一些系统按钮操作,例如 HOME、BACK等:vivo Y55A、vivo Y67、vivo X20 Plus(屏幕指纹版)、红米 3X (Redmi 3X)、小米 5C (Xiaomi 5C)

    • 部分机型由于系统定制原因,text输入文字时,会发生脚本异常退出问题:vivo Y55A
      请在脚本内自行 catch 错误,或使用poco("xxx").set_text("input")

    使用text()接口无法在密码框中输入密码或出现IDE窗口卡死

    部分厂商(例如华为、VIVO等)的某些型号手机限制了密码框的输入。这部分手机设置内的安全选项默认是开启状态,所以强制在输入密码时必须使用 系统键盘输入 (即安全输入键盘)。这样会导致需要输入密码时,直接使用airtest的text()会无法输入内容,所以需要手动关闭安全输入选项后,才能正常输入密码内容:

    另外有部分VIVO手机,在脚本点击到输入密码窗口的时候,IDE的可视化窗口可能会卡死,不会实时更新手机屏幕画面,导致脚本会报找不到图片的错误。

    这时候可以关闭手机上防恶意截录屏选项和安全输入选项,就不会出现脚本点击到输入密码框时,IDE可视化窗口卡死的情况:

    刷出重复设备

    刷新时发现两台同样的设备,状态各为device和offline。
    一般因为开启了手机助手,关掉后再次刷新即可。

    手机能够连接,但是设备画面旋向不对

    连接设备时勾选use ADB orientation参数

    手机能够连接,但是无法点击屏幕

    如果手机能正常连接到AirtestIDE,但是使用鼠标操作屏幕无响应,提示 minitouch 初始化失败 ,请首先确认,手机设置中是否有 允许模拟点击位置 选项,并且处于激活状态(主要是MIUI手机有这个设置)

    如果问题依旧,可以尝试先断开手机,在connect按钮的下拉菜单中勾选 Use ADB touch。

    然后再点击connect按钮连接手机,此时应该可以使用鼠标操作屏幕了。

    如果遇到报错:

    Unable to open device /dev/input/event3 for inspectionopen: Permission denied

    可以运行指令adb shell chmod 777 /dev/input/*来赋予/dev/input目录权限(该操作可能需要手机root权限,如何使用adb shell请自行查询网上资料)

    ---------------------------------------------------------------------------------

    关注微信公众号即可在手机上查阅,并可接收更多测试分享~

  • 相关阅读:
    atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx
    Atitit attilax在自然语言处理领域的成果
    Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结
    atitit。企业的价值观 员工第一 vs 客户第一.docx
    Atitit 实现java的linq 以及与stream api的比较
    Atitit dsl exer v3 qb3 新特性
    Atititi tesseract使用总结
    Atitit 修改密码的功能流程设计 attilax总结
    atitit.TokenService v3 qb1  token服务模块的设计 新特性.docx
  • 原文地址:https://www.cnblogs.com/songzhenhua/p/14716116.html
Copyright © 2020-2023  润新知