此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途
本次更新为 Airtest 库更新,主要是新增了设备释放接口、大量断言的语句,新增了对 Android 12L 的支持,对安装接口的增强,和若干 bug 的修复。
device.disconnect()
接口原先的 Airtest,在脚本长时间运行、或是使用了 AirtestIDE 反复连接多个不同手机时,可能会 建立大量 adb 连接未释放 ,一直占用资源。
这也会导致在部分手机上,反复切换横屏和竖屏应用时,会有概率 出现屏幕有一半内容变成黑屏 的问题。
因此,1.2.7 版本的 Airtest 新增了device.disconnect()
接口,用于:
dev.disconnect()
,如果还要继续使用这个设备对象,最好重新再创建一次 dev = connect_device("android:///")
在脚本编写中,断言语句是非常重要的组成部分,但 airtest 旧版只支持 assert_exists
和 assert_equal
两种类型的断言语句。
现在 Airtest1.2.7 版本,将所有断言语句单独放在 airtest/core/assertions.py
中,增加了更多类型,方便脚本编写工作。
目前 Airtest1.2.7 支持的断言列表:
assert_exists
assert_not_exists
assert_equal
assert_not_equal
assert_true
assert_false
assert_is
assert_is_not
assert_is_none
assert_is_not_none
assert_in
assert_not_in
assert_is_instance
assert_not_is_instance
assert_greater
assert_greater_equal
assert_less
assert_less_equal
我们也可以在 Airtest 的 API 文档中,找到所有断言接口及其说明:https://airtest.readthedocs.io/en/latest/all_module/airtest.core.assertions.html 。
Airtest1.2.7 除了让断言语句更加丰富以外,还支持设置断言时,是否附带截取当前画面的图片,然后显示在 Airtest 报告中,这样报告的断言内容会更加清晰,也更具有 airtest 的截图特色:
# 默认情况下,断言截图会开启
assert_exists()
# 如不需要断言时截取当前画面,则可以设置关闭断言的截图
assert_exists(截图,snapshot=False)
Airtest1.2.7 已增加 minicap
对 android 12L 的支持,Poco 的支持可以将 pocoui 更新至 1.0.88 版本。
pm_install
的增强Airtest1.2.7 对 pm_install
接口进行了较大的增强:
adb.install
保持一致),adb.pull()
和 adb.push()
接口,支持了中文路径、包含斜杠的路径(比如 \g
这样的字符也会有问题)、包含特殊符号(空格、括号等)的路径pm_install
安装完毕后,会进行 adb shell rm apk
的操作,但在部分低配机型上可能会在这一步卡住超时(实际已经删除完毕,但代码一直不结束,导致整个脚本卡死),因此增加 timeout 30 秒自动结束如果希望把自定义的函数也显示到 airtest 的报告中,可以使用 @logwrap
,例如:
@logwrap
def func1():
pass
如果希望在报告显示 func1
内容的同时,还附带一张当前设备的截图的话,可以增加 snapshot=True
参数在 func1()
的定义中:
@logwrap
def func1(snapshot=True):
pass
adb.text()
在输入字母 + 数字时可能会导致乱序的问题,同时支持空格airtest.core.win.Windows
对象时,允许开发者选择性跳过 connect()
方法中的 set_foreground()
功能Android.get_render_resolution
中增加应用包名参数,
使得 get_render_resolution
能够获取到除 top activity 以外的应用的渲染区域start_app
缺少的传参【tips】关于本版本更新内容的更多示例,可以持续关注我们后续的推文,后续都会展开给同学们介绍对应的接口实例。
因本次更新仅更新了 Airtest 库,所以同学们目前只能在自己本地 python 环境中,将 Airtest 更新到最新版本:
pip install -U airtest
对于使用 AirtestIDE 的同学,可以等我们发布 1.2.15 版本的 IDE,或者在旧版本 AirtestIDE 中设置使用本地 python 环境,然后将本地 python 环境的 Airtest 库升级到最新版本即可。
如同学们在使用新版的 Airtest 时遇到了一些问题无法解决,可以通过此网站向我们的开发者快速提单:https://airtest.netease.com/issue_create 。
可以在标题中加入 “Airtest1.2.7” 之类的字眼,方便我们快速筛选和排查。
Airtest 官网:https://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b
官方答疑 Q 群:117973773
呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~