zoukankan      html  css  js  c++  java
  • Airtest 新版来袭!揭秘 Airtest1.1.6 和 AirtestIDE1.2.6 的详细更新内容

    前言

    顶着同学们日常催更的压力,我们的AirtestProject终于又更新啦!这次不仅仅 更新了Airtest和poco这两个测试框架,AirtestIDE也有不少的优化 ,详细的更新内容同学们可以阅读下文。

    Airtest1.1.5-1.1.6

    Airtest更新了2个版本,包含多个接口的优化和众多bug修复。

    1.功能新增/优化

    ① 新增对 Android11 的支持

    ② 修改了用于在脚本中记录log的 log() 接口,支持4个参数:

    • args, 可以是字符串或是 traceback 对象,现在还支持传入非字符串,并且对py2做了一下兼容。假如传入的是 traceback 对象,将会自动在报告中标记为报错步骤,否则就是显示正常的 log 内容。
    • timestamp, 参数可以自定义当前这条 log 的时间戳,默认为当前时间(在记录一些长时间的回调中获取到的 log 时,原本默认使用写入本条 log 的时间,但是可能需要修改为 log产生的时间,比如几分钟前)
    • desc , 自定义一个 log 标题,在报告中有更好的展示效果
    • snapshot, 是否需要截取一张当前的屏幕图像并显示到报告中,方便查看。(同时,因为这个参数的加入,现在airtest脚本如果因为执行Poco语句失败报错而终止时,能够额外截取一张当前画面,方便大家排查问题。)

    示例:

    data = {"test": 123, "time": 123456}
    # 第一条log,步骤名显示title,截取一张屏幕截图
    log(data, timestamp=time.time(), desc="title", snapshot=True)
    # 第二条log,标记为报错步骤并截取一张屏幕截图
    try:
        1/0
    except Exception as e:
        log(e, snapshot=True)
    # 第三条log,显示传入的字符串
    log("中文")

    ③ 新增一个用于指定截图最大尺寸的设置:ST.IMAGE_MAXSIZE 。假如设置为1200,则最后保存的截图长宽都都不会超过1200,有利于进一步缩小截图的图片尺寸。

    同时,支持自定义单张截图精度和全局截图精度:

    • snapshot 接口支持传入 quality 参数,单独指定本次截图的图像精度
    • 目前可以使用 ST.SNAPSHOT_QUALITY = xx 设置全局截图精度,在运行脚本时,报告的步骤截图也会采用这个数值进行压缩

    示例:

    # 设置截图质量为30
    ST.SNAPSHOT_QUALITY = 30
    # 设置截图尺寸不超过600*600,如果不设置,默认为原图尺寸
    ST.IMAGE_MAXSIZE = 600
    
    # touch语句保存的截图质量为30, 尺寸不超过600*600
    touch(xx) 
    # 本条语句截图质量为90
    snapshot(filename="test.png", msg="test01", quality=90)  
    # 截图质量为90,尺寸不超过1200*1200
    snapshot(filename="test2.png", msg="test02", quality=90, max_size=1200) 
    # 不设置的情况下,默认采用ST中的全局变量的数值
    snapshot(msg="test12")  

     playground/android_motionevents.py 里面提供了一些 Android自定义手势 的示例代码,现在直接调用 dev.touch_proxy.perform 接口就可以传入写好的 MoveEvent 列表来进行自定义的滑动了(以前是调用 dev.minitouch.perform ,如果是安卓10就会不兼容)。

    示例:

    from airtest.core.android.touch_methods.base_touch import *
    # tap with two fingers
    multitouch_event = [
        DownEvent((100, 100), 0),
        DownEvent((200, 200), 1),  # second finger
        SleepEvent(1),
        UpEvent(0), UpEvent(1)]
    
    device().touch_proxy.perform(multitouch_event)

    2.bug修复

    ① iOS修复了上个版本 stop_app() 失效的问题

    ② 回退了屏幕录制代码到1.0.27之前的版本,取消使用 yosemite.apk 来录屏,避免每次重装过 yosemite.apk 后必须要手工赋予录屏权限才能录屏的问题

    ③ 在一些无法使用 minicap 的手机上,虽然指定了 Javacap 模式也能截屏,但是在调用 get_display_info 的时候依然调用到 minicap.get_display_info ,如果没有指定 ori_method 为 adbori ,会导致脚本无法运行成功。 因此修改为假如获取屏幕信息失败,自动调整 为使用 adbori 模式来获取当前屏幕信息。

    ④ 在脚本中一旦对同一台手机运行了不止一次 connect_device 接口,并指定了不同的设备连接参数时,G.DEVICE 不会更新到最新参数创建出来的设备对象,导致部分手机可能连接失败。现在改为每次更新设备对象时,也会自动更新一下 G.DEVICE

    ⑤ 修复了在高版本Android手机上,get_ip_address() 接口不能正确获取到手机IP的问题

    ⑥ 去掉了 assert_exists() 接口使用特殊的 ST.THRESHOLD_STRICT 值作为找图阈值的设定。假如之前设置了 ST.THRESHOLD_STRICT 将会继续沿用该数值,但是如果没有设置的话,默认与其他图片一样都使用指定的 threshold 参数,或是全局的 ST.THRESHOLD ,这样能够方便统一设置和管理,也不容易造成误解。

    AirtestIDE1.2.6

    AirtestIDE更新到1.2.6版本,主要优化了设备连接窗口部分的内容。

    1.功能优化/修复

    ① 全面修改了设备连接模块的逻辑,同时 优化了windows下窗口连接的体验 ,如果在连接手机、windows窗口时遇到BUG,请向我们反馈~

    反馈渠道:
    官方答疑Q群:1017250147
    官方公众号留言:AirtestProject
    GitHub上提issue:https://github.com/AirtestProject/AirtestIDE/issues

    ② Airtest更新到1.1.6,支持Android11手机,并且对多个接口进行了修改,以及多个BUG修复,请务必查看此链接确认所有更新内容:https://github.com/AirtestProject/Airtest/releases/tag/v1.1.5

    ③ 修复了使用IDE进行Poco连接的部分问题,并且在Poco启动失败时,不会强制重装Poco,而是尝试杀掉其他冲突的进程

    2.更新

    ① 如使用IDE自带的python环境,则只需将旧版AirtestIDE更新到最新的1.2.6即可。(特别注意:覆盖更新之前请检查脚本是否保存在IDE的安装路径内,如是的话,请将脚本转移到其它非IDE安装路径保存,避免覆盖更新之后,造成IDE安装路径内的脚本丢失!!!)

    ② 如使用的是本地的Python环境,请使用 pip install -U airtest 和 pip install -U pocoui 命令,将这两个库到最新版本


    AirtestProject官方答疑Q群:1017250147

    Airtest官网:http://airtest.netease.com/
    Airtest教程官网:https://airtest.doc.io.netease.com/
    搭建企业私有云服务:https://airlab.163.com/b2b

  • 相关阅读:
    一名3年工作经验的程序员面试分享应该具备的技能
    [activiti] Activiti 5.18 的Mybatis版本依赖问题
    [java] JVM监控与调优
    [mysql] mysqldump 导出数据库表
    【extjs】 extjs5 Ext.grid.Panel 搜索示例
    [tomcat] tomcat+nginx 负载均衡配置
    [mysql] mysql explain 使用
    Oracle自用脚本(持续更新)
    Mysql 简单问题汇总(持续更新)
    开源项目导入eclipse的一般步骤
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/13815111.html
Copyright © 2011-2022 走看看