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报告的内容~