AirtestProject 答疑 | 使用 Airtest 最常问的 8 大问题

fishfish-yu · 2020年03月12日 · 1102 次阅读

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

在我们的开发者交流 Q 群(1017250147)里面,大家每天都会提出各种各样的问题,但其中存在一部分问题,大家提出的概率非常高。

所以我们决定推出几期 “问题答疑”,专门针对高频问题进行解答。当然,如果大家有别的希望我们答疑的问题,也欢迎直接在我们公众号留言,我们会筛选一些问题加入到这几期的答疑推文中。

下文是本期精选的 8 大问题,希望能帮助大家在自动化测试的研究中少走一些弯路:

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

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

① 请自行在你的电脑上安装属于你自己的 Python(python<=3.7,3.8 暂不支持),然后再安装对应的依赖库。你可以通过一些环境管理方案来管理你的 python 环境,例如 virtualenv

② 在刚才安装好的本地 Python 环境中,安装 airtest 相关的依赖库,详细内容请参考文档:https://airtest.doc.io.netease.com/IDEdocs/run_script/1_useCommand_runScript/#python

③ 在本地安装完属于你自己的 python 环境后,再在 IDE 的设置里面设置好你本地的 python.exe 的路径,详细内容请参考文档:https://airtest.doc.io.netease.com/IDEdocs/settings/1_ide_settings/#python

2. RuntimeError:minitouch setup timeout

出现这个报错,最常见的是以下俩种情况:

① 手机系统是 MIUI11,此时我们需要在点击 “connect” 按钮之前,把 “use Javacap + use orientation” 这两个选项勾选上,再点击 “connect” 按钮即可正常使用

② 手机的安卓版本是 Android10,此时仅需要把 IDE 更新到最新版本即可;如果 IDE 使用的是本地的 python 环境,那还需要把本地 python 环境的 Airtest 更新到最新版本。

3. Yosemite 等 apk 在哪里可以下载

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

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

4. 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 统一成同样的版本就行。

另外,adb 版本冲突,还会容易导致设备断开,出现如下报错:

解决办法依旧是将本地所有的 adb.exe 统一成同样的版本。

5. 连接模拟器出现黑屏

① 先尝试在连接模拟器之前下拉勾选 Use javacap 选项,之后再点击 “connect” 按钮连接模拟器

② 如果仍然黑屏,断开模拟器,下拉勾选 Use javacap 和 Use ADB orientation 这俩个选项,再次连接即可

③ 如上述方式都不见效,可以上 GitHub 提一个 issue,贴上使用的 IDE 和模拟器版本详情(GitHub 地址:https://github.com/AirtestProject/AirtestIDE/issues

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

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

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

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

7. Airtest 的报告步骤显示能否自定义

当 Airtest 版本≥1.2.2,或者 IDE 版本≥1.2.2,支持在报告上自定义断言信息,其余操作在报告上的显示暂不支持自定义。

8. 如何在报告中显示报错信息

可以使用如下代码:

import traceback
try:
    xxxx
except:
     log("出错啦", traceback. format_exc())

关注下方公众号,可以查看更多往期教程;回复 “交流群” 即可加入我们的测试开发官方交流群

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册