airtest自动化

提高截图准确性、兼容性的方法

截图时尽量保证截取的图像辨识度高、独立清晰

例如截取一个按钮图像时,尽量不要带上太多的嘈杂背景图案,避免在背景变化后难以成功识别的问题

图像识别使用的算法更适合用来识别按钮类(带边框)、图标类的图像

仅仅单独截取几个文字的识别成功率很低,请尽量调整图片截取内容来达到较好的识别效果,避免截取识别效果较差的内容

请尽量调整图片截取内容来达到较好的识别效果,避免截取识别效果较差的内容

参考指标:confidence

 代码层面几种方法

  • 修改全局隐式等待时间、显式等待时间:ST.FIND_TIMEOUT = 60, ST.FIND_TIMEOUT_TMP = 10,隐式等待包括touch,wait,swipe的第一张图片识别等,显式等待包括exists等
  • 不涉及画面切换时,多使用exists
# 如果图片存在,则点,支持多次
    def if_exists_touch(self, pic, duration=0.01, n=3):
        for i in range(n):
            pos = exists(pic)
            if pos:
                touch(pos, duration=duration)
                sleep(0.5)
  • 可以尝试多截几张图纳入查找列表,有一个匹配到即可
# 图片脚本兼容性,若干个图片,有一个匹配到即可
    def touch_piclist(self, *args):
        for pic in args:
            pos = exists(pic)
            if pos:
                touch(pos)
                break
  •  涉及画面切换时,先使用wait等待元素出现
 # 画面切换后,使用wait等待后,点击
    def wait_touch(self, pic, timeout=60, duration=0.01):
        my = wait(pic, timeout=timeout)
        touch(my, duration=duration)

报告生成

推荐使用内置函数LogToHtml
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
            report_path_name = now + '_' + self.__class__.__name__
            log_path = os.path.join(os.path.dirname(__file__), 'log')
            output_path = os.path.join(config_data.ROOT_DIR, 'report', report_path_name)
            tmp = LogToHtml(script_root=__file__, log_root=log_path,
                           export_dir=output_path, logfile=os.path.join(log_path, 'log.txt'), lang='en',
                           plugins=None)
            tmp.report()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值