AirtestIDE和Airtest环境相关问题FAQ

环境相关问题

pip install -U airtest 无限超时

使用 pip 命令安装Airtest,如果出现无限超时的问题,是因为默认源是国外服务器

AirtestIDE和Airtest环境相关问题FAQ_第1张图片

可以更换成国内源:

pip install airtest -i https://pypi.tuna.tsinghua.edu.cn/simple

ADB版本冲突

在Windows环境中运行Airtest脚本时,假如运行环境本地已经存在有 adb.exe (例如装了android_sdk, 或者是别的工具带有adb.exe),并且ADB版本与Airtest中使用的不同,运行脚本时就可能会出现各种报错。

常见情况下,我们会看到log中包含这样的语句:

adb server version (40) doesn't match this client (39); killing...
  * daemon started successfully *

如log所示,我们可以看到环境里面使用了40和39版本,版本冲突导致报错。解决办法是将本地所有的adb.exe统一成Airtest的版本就行,即用Airtest文件夹里的adb覆盖其他所有adb。
另外,adb版本冲突,还会容易导致设备断开,出现如下报错:

图片

如何检查adb是否连接上设备

使用AirtestIDE连接安卓设备之前,需要确保ADB已经连接上了设备。

① 我们可以使用 adb devices 来查看设备情况,如果仅仅提示 List of devices attached,则表明ADB未连接上任何设备;此时需要检查手机上的 USB调试 功能是否已开启,或者换一根USB数据线;

② 如果ADB已连接上设备,那么执行 adb devices 后,会显示已连接设备的列表:

List of devices attached
SJE5T17B17001648        device
SJE5T17B17001650        device

Yosemite等apk在哪里可以下载

有些设备可能因为某些权限问题,不能自动安装Yosemite、RotationWatcher等apk,同学们首先需要检查下手机设置里是否没有开启“允许通过USB安装应用”这样的设置。

如果确定手机设置都开启了,但还是不能自动安装的话,再考虑手动进行安装。同学们可以在官网上下载一个最新版版本的IDE,然后在如下目录中找到这些apk,然后自行在设备上安装即可:

AirtestIDE和Airtest环境相关问题FAQ_第2张图片

本地pip list可以找到Airtest,但pycharm里找不到

很多同学都遇到过这个问题,明明在本地命令行使用 pip list 可以看到已经安装了Airtest库,但是在自己的pycharm里面却找不到Airtest这个库。这种情况很有可能就是你的pycharm使用了虚拟环境的解释器。
你可以随意运行1个项目,然后查看运行结果窗口显示的解释器是不是你在本地安装的解释器的路径,如果不是,一般会带有 venv 的字样,例如:

D:\test\vene\Scripts\python.exe D:\test\test.py

这时只需要将pycharm从虚拟环境切换到安装了Airtest的本地环境即可。

ImportError: DLL load failed: 找不到指定模块

常见的DLL报错会出现在以下2种情况中:
① 在 cv2 模块报 ImportError: DLL load failed: 找不到指定模块 的错:

AirtestIDE和Airtest环境相关问题FAQ_第3张图片

根本原因应该是DLL文件的缺失,你可以直接下载一个最新版本的AirtestIDE,在解压后的目录中找到 api-ms-win-downlevel-shlwapi-l1-1-0.dll 和 IEShims.dll 两个DLL文件(或者自行在网上搜索这俩个DLL文件也是可以的),然后将它们复制到 C:\Windows\System32 目录,重新运行代码即可解决。

AirtestIDE和Airtest环境相关问题FAQ_第4张图片

② 若在 win.py 中 import win32api 时报 DLL load failed :

<Module>
    import win32api
ImportError: DLL load failed: 找不到指定的程序。

建议您运行下列指令,更新为223版本的 pywin32:

pip uninstall pywin32 pip install pywin32==223 no module named ‘airtest’、‘poco’、‘airtest-selenium’等,找不到模块

在当前使用的python环境中,安装上缺失的对应模块:

pip install airtest
pip install pocoui #(不能安装poco,如安装了请卸载pip uninstall poco)
pip install airtest-selenium

如果安装后仍找不到,请检查真实使用的环境和你以为的环境是不是一个环境。

AirtestIDE相关问题

IDE的脚本编辑和log查看窗口不显示文字

有些同学在启动IDE后,发现不能够看到脚本编辑窗口和log查看窗口中的文字,就像下图这样:

AirtestIDE和Airtest环境相关问题FAQ_第5张图片

包含启动后闪退在内,这些问题大概率都是由显卡兼容性问题导致的。我们可以通过双击文件夹中的 兼容性模式启动.bat 脚本就能够正常启动AirtestIDE。
并且,在设置中有一个选项:

AirtestIDE和Airtest环境相关问题FAQ_第6张图片

默认情况下会选择 default 模式。如果启动有问题的用户,可以尝试选中下拉菜单中的另外三个选项,并且重启AirtestIDE,查看接下来是否能正常显示脚本编辑窗口和log查看窗口。
如果能够生效,未来启动AirtestIDE时都将会以这个配置项来启动,无需每次都手工双击 兼容性模式启动.bat 脚本来启动AirtestIDE了。

复制IDE中log窗口生成的报告在命令行执行报错

常见的情况可能有如下几种:

复制的命令路径中含有空格,导致程序报错:找不到文件或者路径;只需要将命令中的路径用英文模式下的双引号括起来即可。

命令行中包含了&这样的符号,可能会导致命令行被中断,常见于一些勾选了 “use javacap” 这样的选项后连接的设备,但是&这个字符需要转义才能够生效。先尝试用双引号把参数命令括起来,不行的话尝试:Windows下改写成^&,MAC下改写成/&

在IDE中如何引入第三方库?

AirtestIDE内置了一个精简的python环境,缺少很多第三方库;如果需要在IDE中引入各种第三方库,可以先在本地的python环境中装好,再设置IDE使用本地的python环境,具体步骤如下:

请自行在你的电脑上安装属于你自己的Python。你可以通过一些环境管理方案来管理你的python环境,例如conda

在刚才安装好的本地Python环境中,安装airtest相关的依赖库。

在本地安装完属于你自己的python环境后,再在IDE的设置里面设置好你本地的python.exe的路径。
详细内容请参考:Airtest之python本地环境安装、独立IDE运行

连接模拟器出现黑屏

① 先尝试在连接模拟器之前下拉勾选 “Use javacap” 选项,之后再点击“connect”按钮连接模拟器
② 如果仍然黑屏,断开模拟器,下拉勾选 “Use javacap” 和 “Use ADB orientation” 这俩个选项,再次连接即可

模拟器勾选上连接参数之后还是连不上

连接模拟器的时候,我们需要勾选上一些备选的连接参数才能连接上模拟器,或者不让模拟器黑屏。
比如连接雷电时需要勾选上 Use javacap,而连接夜神的时候需要勾选上 Use javacap 和 Use ADB orientation 这俩个选项。
但是在一些版本的模拟器中,即使勾选上了连接参数,仍然可能连接不上模拟器,并出现如下的报错:

AirtestIDE和Airtest环境相关问题FAQ_第7张图片

这是因为在连接这些版本的模拟器时,不能自动安装上 Yosemite.apk ,我们可以通过手动安装这个 apk ,再重新连接模拟器即可。

三个备选的连接参数

1)备选参数在哪里选择

在AirtestIDE的设备连接窗口中,点击connect连接设备之前,单击connect右侧的下拉按钮,即可找到3个连接设备的备选参数:

AirtestIDE和Airtest环境相关问题FAQ_第8张图片

2)3个备选参数分别代表什么意思

① 第一个 Use javacap ,是给部分无法正常看到手机画面、minicap初始化失败 的手机或设备用的,所以模拟器看到黑屏、部分特殊的平板等设备可以考虑勾选这个选项

② 第二个 Use ADB orientation 是用于 屏幕旋转 的,如果在安卓手机屏幕旋转方向检测有问题、或者是部分特殊的平板无法显示正确的屏幕方向时可以勾选

③ 第三个 Use ADB touch 是 发送adb指令来点击屏幕 ,效果很差,速度也很慢,不建议勾选,只有在 部分无法点击屏幕的特殊安卓设备 上才需要使用(例如智能后视镜、特殊型号的平板等设备上) 正常情况下,手机都可以点击,如果无法被点击(比如小米设备),一般都是因为手机设置有选项漏了打开,特别是小米设备要注意 开启允许模拟点击 的设置

3)是不是把备选参数全带上就能适配所有设备

正常情况下,同学们连接设备是不需要勾选任何备选参数的,我们也不建议大家主动把所有备选参数都勾选上,因为这些备选参数会影响设备连接和使用的效果。

除非是上述提到的特殊情况,比如无法使用minicap的设备,可以通过勾选 use javacap 来连接;常见的需要勾选备选参数的设备,MIUI12的小部分型号,部分模拟器,部分特殊安卓设备等。

4)如何在脚本中添加备选参数

如在IDE连接设备时,勾选了一些备选参数,则同学们在脚本中连接该设备,也要添加对应的备选参数。特别是使用此类设备在命令行运行脚本时,千万要记得将参数加在设备连接字符串上:

# 添加了3个备选参数的1个安卓设备
Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH

minicap serve setup time out

屏幕初始化失败,常见于高版本MIUI设备或者模拟器等;先检查当前IDE是否为最新版本,不是请把IDE更新到最新版本;然后再尝试在connect设备之前,下拉勾选 use javacap ,再连接设备。

minitouch serve setup timeout

点击初始化失败,常见于安卓10或者10以上的设备,解决办法,检查当前环境的airtest版本是否为最新的(IDE更新到最新版本,使用本地python环境把本地环境的airtest更新到最新版本)

Javacap server setup timeout

设备不适用于 javacap ,在IDE连接设备之前 请勿勾选 use javacap ,脚本连接设备的字符串也不要带 ?cap_method=JAVACAP。最后请确保当前使用的是最新版本的airtest。

如何显示坐标

顶部菜单栏,选项-设置,只勾选实时坐标显示,则显示绝对坐标;同时勾选实时坐标和相对坐标,则显示相对坐标。(Airtest使用绝对坐标系,poco使用相对坐标系)

辅助窗没有刷出UI树

1)除原生应用之外,其余引擎都需要接入SDK才可以查看UI树;

2)检查手机上是否已经自动安装上poco初始化相关的2个apk(pocoservice-debug.apk、pocoservice-debug-androidTest.apk),未安装要手动安装上;

3)安装输入法 Yosemite 并设为默认输入法
部分厂商的手机需要额外的设置,AirtestIDE连接安卓真机及常见问题

使用IDE截图特别模糊如何处理

如果同学们发现使用IDE截出来的图片非常模糊,可以尝试在AirtestIDE的 选项–设置 中,把 手机设备显示分辨率 调成2000,之后再重新连接设备,查看截图清晰度是否有所改善。

如未改善,还可以查看设备连接窗口的设备画面是否清晰,如还是非常模糊的话,可以先断开连接,然后在 conncet 之前勾选 use javacap ,之后再尝试截图。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

你可能感兴趣的:(自动化测试,程序人生,软件测试,自动化测试,python,软件测试,程序人生,Airtest)