• Android Poco初始化时,不大起眼但可能存在坑点的参数们


    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后在生成报告的时候,小A发现,报告没有Poco点击计算器的步骤,而只有1张截图,截图上也没有标注控件点击位置:

    在这里插入图片描述

    经过一顿排查之后,才发现,原来他这里没有传任何的Poco初始化参数,之后他把参数加上:

    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    poco1 = AndroidUiautomationPoco(dev1,use_airtest_input=True, screenshot_each_action=False)
    
    • 1
    • 2

    报告就能正常显示了:

    在这里插入图片描述

    那这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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    # 开启每个步骤的截图操作
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    poco = AndroidUiautomationPoco(use_airtest_input=False, screenshot_each_action=True)
    
    sleep(1.0)
    poco("计算器").click()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    至于,为什么当初始化时,指定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()
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    5. 小结

    本文详细讲述了,进行Android poco初始化时,传参和不传参的差别,以及可能带来的坑点。也跟同学们解释了use_airtest_inputscreenshot_each_action这两个参数的作用,后续我们会跟大家分享更多关于Airtest报告的内容~

  • 相关阅读:
    Vue 中什么阶段(生命周期)才能访问操作dom?为什么?
    Git从入门到起飞(详细)
    【2023-10-12】如何保证代码质量
    229. 多数元素 II Python
    Java Spring
    LVS + KeepAlived实现高可用负载均衡
    数字花园的指南针:微信小程序排名的提升之道
    美国访问学者博士后面签常见问题
    通过位运算进行两个变量值的交换功能
    通过UDP实现参数配置
  • 原文地址:https://blog.csdn.net/AirtestProject/article/details/128131604