zoukankan      html  css  js  c++  java
  • Airtest IDE 自动化测试6

    前言

    Airtest IDE 提供了四种断言快捷断言的方式

    • assert_exists 断言存在
    • assert_not_exists 断言不存在
    • assert_equal 断言相等
    • assert_not_equal 断言不相等

    断言存在(assert_exists)

    assert_exists(*args, **kwargs) 设备屏幕上存在断言目标
    参数:

    • v 要检查的目标
    • msg 断言的简短描述,它将被记录在报告中
    • AssertionError 如果断言失败

    返回:

    • 目标坐标

    支持平台: Android, Windows, iOS
    示例: assert_exists(Template(r"tpl1607324047907.png"), "assert exists")

    使用示例,断言 "我的" 页面存在 "登录/注册" 按钮

    运行用例后查看测试报告

    断言不存在(assert_not_exists)

    assert_not_exists 跟上面的 assert_exists 用法一样
    断言我的页面不存在“新课推荐”

    断言失败 AssertionError

    当断言失败的时候,会抛出AssertionError异常,程序不会继续往下走了
    在我的页面,查找“新课推荐”,故意让断言失败

    如果出现断言失败,会出现AssertionError: Template(D:airtest_codea3.air pl1621832250338.png) does not exist in screen, message: 我的-存在登录/注册按钮

    airtest.core.error.TargetNotFoundError: 'Picture Template(D:\airtest_code\a3.air\tpl1621832250338.png) not found in screen'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "airtestcli
    unner.py", line 73, in runTest
      File "site-packagessix.py", line 703, in reraise
      File "airtestcli
    unner.py", line 70, in runTest
      File "D:airtest_codea3.aira3.py", line 12, in <module>
        assert_exists(Template(r"tpl1621832250338.png", record_pos=(-0.39, 0.069), resolution=(720, 1280)), "我的-存在登录/注册按钮")
      File "airtestutilslogwraper.py", line 90, in wrapper
      File "airtestcoreapi.py", line 669, in assert_exists
    AssertionError: Template(D:airtest_codea3.air	pl1621832250338.png) does not exist in screen, message: 我的-存在登录/注册按钮
    
    ----------------------------------------------------------------------
    Ran 1 test in 41.761s
    
    FAILED (failures=1)
    

    关于查找超时

    当页面上找不到元素的时候,不会立马断言失败,此时会有个timeout时间,默认是20秒。

    ST.FIND_TIMEOUT是在setting.py文件配置的,默认查找超时是20s

    # airtest.core.setting.py
    class Settings(object):
    
        DEBUG = False
        LOG_DIR = None
        LOG_FILE = "log.txt"
        RESIZE_METHOD = staticmethod(cocos_min_strategy)
        # keypoint matching: kaze/brisk/akaze/orb, contrib: sift/surf/brief
        CVSTRATEGY = ["surf", "tpl", "brisk"]
        if sys.version_info[:2] > (3, 7):
            CVSTRATEGY = ["kaze", "tpl", "brisk"]
        KEYPOINT_MATCHING_PREDICTION = True
        THRESHOLD = 0.7  # [0, 1]
        THRESHOLD_STRICT = None  # dedicated parameter for assert_exists
        OPDELAY = 0.1
        FIND_TIMEOUT = 20
        FIND_TIMEOUT_TMP = 3
        PROJECT_ROOT = os.environ.get("PROJECT_ROOT", "")  # for ``using`` other script
        SNAPSHOT_QUALITY = 10  # 1-100 https://pillow.readthedocs.io/en/5.1.x/handbook/image-file-formats.html#jpeg
        # Image compression size, e.g. 1200, means that the size of the screenshot does not exceed 1200*1200
        IMAGE_MAXSIZE = os.environ.get("IMAGE_MAXSIZE", None)
        SAVE_IMAGE = True
    

    判断元素不存在,查找超时时间是FIND_TIMEOUT_TMP = 3

  • 相关阅读:
    concurrent-锁
    字符串查找字符串
    指针作为函数返回值
    数组名作为函数参数
    指针和函数
    多级指针
    指针数组
    指针运算
    指针和数组
    const修饰的指针类型
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14803947.html
Copyright © 2011-2022 走看看