AirtestProject Android Poco 初始化时,不大起眼但可能存在坑点的参数们
此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途
1. 前言
进行 Android poco 初始化的时候,可能大多数同学都是直接在 Poco 辅助窗里选择 Android 模式,然后选择自动帮我们补充 poco 的初始化脚本:
这种情况下,我们大多数都不会关注初始化的参数。但如果我们不了解这些参数的含义,也非常有可能在一些特殊情况下踩到一些坑。下文我们就从一次入坑经历说起吧~
2. 入坑分享:没有传 poco 初始化的参数
有一次在给 Android 设备初始化 poco 时,小 A 采用了下述的方式:
dev1 = Android('127.0.0.1:7555')
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco1 = AndroidUiautomationPoco(dev1)
sleep(1.0)
poco1("计算器").click()
然后在生成报告的时候,小 A 发现,报告没有 Poco 点击计算器的步骤,而只有 1 张截图,截图上也没有标注控件点击位置:
经过一顿排查之后,才发现,原来他这里没有传任何的 Poco 初始化参数,之后他把参数加上:
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco1 = AndroidUiautomationPoco(dev1,use_airtest_input=True, screenshot_each_action=False)
报告就能正常显示了:
那这 2 个 Android poco 的初始化参数,究竟起到怎样的作用呢?我们下文详细说明下。
3. use_airtest_input
use_airtest_input=True
是指,使用 Airtest 去执行点击操作,好处是,会在日志里面记录一条 log 记录,这样生成报告时,就能在报告上显示这个点击记录。
如果初始化 Android poco 时,不传入这个参数,默认use_airtest_input=False
,则不使用 Airtest 去执行点击操作,而是调用 Android 接口去点击,这时候不会在日志里面记录一条点击的 log,所以会导致报告里面丢失这个点击步骤。
所以,如果同学们不在意 log 内容,或者无需生成测试报告,这个参数可以不传。
但如果同学们需要生成测试报告,在初始化 Android poco 时,还是需要把use_airtest_input=True
这个参数传上去。
4. screenshot_each_action
screenshot_each_action
是指,是否开启每个 poco 步骤的截图。我们也可以从 1 个对比测试,来看出这个参数的效果:
# 关闭每个步骤的截图操作
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=False, screenshot_each_action=False)
sleep(1.0)
poco("计算器").click()
# 开启每个步骤的截图操作
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=False, screenshot_each_action=True)
sleep(1.0)
poco("计算器").click()
至于,为什么当初始化时,指定use_airtest_input=True
,且screenshot_each_action=False
时,仍然会有截图,这是因为使用了 Airtest 的点击,Airtest 点击是默认开启截图的:
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
sleep(1.0)
poco("计算器").click()
5. 小结
本文详细讲述了,进行 Android poco 初始化时,传参和不传参的差别,以及可能带来的坑点。也跟同学们解释了use_airtest_input
和screenshot_each_action
这两个参数的作用,后续我们会跟大家分享更多关于 Airtest 报告的内容~
Airtest 官网:https://airtest.netease.com/
Airtest 教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b
官方答疑 Q 群:117973773
呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~