【更新公告】Airtest更新至1.2.9版本

news2024/11/24 0:41:36

1. 前言

本次更新为Airtest库更新,版本提升至1.2.9,主要新增 对Android13的支持新增Windows和iOS的录屏接口 等。

2. 更新功能

1)新增对Android13的支持

Airtest1.2.9版本新增了对Android13设备的支持,有该系统设备连接/自动化需求的同学,请务必把使用的Airtest刚更新至1.2.9版本。

2)新增Windows、iOS录屏接口,优化Android录屏

目前录屏功能不仅支持Android设备,还支持了windows、iOS设备!

函数 start_recording() 的参数修改如下:

  • max_time : 录屏最长时间限制,默认为1800,单位是秒
  • output : 录像保存文件地址, 默认为 None ,将会自动保存在log目录下,自动以当前时间命名

特别注意:原先 output 参数在 stop_recording 中,现在改为在 start_recording 里!

  • fps=10 :输出视频的帧率,目前暂时限定不超过10fps,默认为10(仅对ffmpeg和cv2生效)
  • mode="ffmpeg" : 保存视频的后台,可选 ‘ffmpeg’ ‘cv2’ ‘yosemite’,三种模式的区别如下:

ffmpeg :对机型兼容较好,但cpu占用较高,第一次运行将会预先下载ffmpeg,有一定的额外空间占用(几十M)

cv2 :无需占用额外空间,生成的视频体积比ffmpeg更大

yosemite :Android旧版本的录屏方案,假如当前设备是Android,默认会使用这个模式录屏,必须要事先安装 Yosemite.apk ,并支持旧的参数,帧率比ffmpeg和cv2要高,但兼容性差,有一些手机不支持

  • snapshot_sleep=0.001 : 截图间隔
  • orientation=0 : 视频朝向模式 1 为竖屏;模式 2 为横屏;模式 0 为方形填充,默认是0

其中大部分参数使用默认值即可,最重要的参数有两个:

① 新增参数 orientation
当跑测过程中大部分时间是竖屏时,可以考虑将 orientation=1 ,或 orientation="portrait"

② 当跑测过程中大部分是横屏,可以 orientation=2 ,或 orientation="lanscape" ,适合游戏等横屏应用;

③ 横竖屏都有可能的话,可以不指定参数,默认值为0,会用一个正方形来容纳视频内容,方便横竖屏转换

output=xxx.mp4,默认将录屏文件存放在log目录下,如果有重命名需求的话可以传这个参数,否则直接所有参数用默认值即可

录屏代码示例:

Record 30 seconds of video and export to the current directory test.mp4:

>>> from airtest.core.api import connect_device, sleep
>>> dev = connect_device("Android:///")
>>> save_path = dev.start_recording(output="test.mp4")
>>> sleep(30)
>>> dev.stop_recording()
>>> print(save_path)

>>> # the screen is portrait
>>> portrait_mp4 = dev.start_recording(output="portrait.mp4", orientation=1)  # or orientation="portrait"
>>> sleep(30)
>>> dev.stop_recording()

>>> # the screen is landscape
>>> landscape_mp4 = dev.start_recording(output="landscape.mp4", orientation=2)  # or orientation="landscape"
3)IOS支持传入udid参数

iOS的初始化字符串中,支持传入名为 serialno/udid/uuid 的字段,用于设置这台iOS的设备udid,示例:

>>> connect_device("iOS:///http://localhost:8100/?mjpeg_port=9100&&udid=00008020-001270842E88002E")  # iOS with mjpeg port and udid
>>> connect_device("iOS:///http://localhost:8100/?mjpeg_port=9100&&uuid=00008020-001270842E88002E")  # udid/uuid/serialno are all ok

该名称无论使用 udid/uuid/serialno 中任何一个名字传入都可以生效,可以在连接后,通过以下方式获取到这个值:

dev = connect_device("iOS:///http://localhost:8100/?udid=00008020-001270842E88002E")
print(dev.uuid)

在这里插入图片描述

增加这个参数的主要原因是,在wda中获取不到ios手机的udid,但在某些情况下可能需要用到这个值,因此支持主动传入保存。

3. 问题修复

1)修复了部分windows下,游戏无法正确截屏的问题

迭代了windows的 snapshot ,修复了部分游戏截屏图像重复、黑屏等问题,同时修复了在双屏下的截图区域错误问题。

2)修改了报告中对于运行结果是否成功的判定

原先的逻辑是:只要整个运行过程中出现 traceback ,就认为此次任务运行失败。

在这里插入图片描述

【图】1.2.7版本Airtest跑测结果示意

但通常会遇到一种情况是:在运行过程中会出现一些不太重要的脚本异常,我们希望脚本不卡在这里,而是 catch 住异常后继续往下跑,只要能跑到最后就算脚本成功。

在这里插入图片描述

【图】1.2.9版本Airtest跑测结果示意

因此将脚本的成功判断改为:当步骤列表的最后一个步骤有traceback,才认为本次脚本运行失败。

3)对报告中一些显示效果做了一点微调

① 做了一些样式调整,修复了一些显示问题;

② 报告html支持上下左右按键切换预览图片。

4. 如何更新

因本次更新仅更新了Airtest库,所以同学们目前只能在自己本地python环境中,将Airtest更新到最新版本:

pip install -U airtest

对于使用AirtestIDE的同学,可以等我们发布1.2.15版本的IDE,或者在旧版本AirtestIDE中设置使用本地python环境,然后将本地python环境的Airtest库升级到最新版本即可。

在这里插入图片描述

5. 其它问题

如同学们在使用新版的Airtest时遇到了一些问题无法解决,特别是录屏相关的问题,可以通过此网站向我们的开发者快速提单:https://airtest.netease.com/issue_create 。

可以在标题中加入“Airtest1.2.9”之类的字眼,方便我们快速筛选和排查。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/365819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二章 编写MBR主引导记录

主引导记录(MBR,Master Boot Record)是采用MBR分区表的硬盘的第一个扇区,即C/H/S地址的0柱面0磁头1扇区,也叫做MBR扇区 计算机的启动过程 为什么程序要载入内存 CPU的硬件电路被设计成只能运行处于内存中的程序&…

前端开发常用的18个JavaScript框架和库

JavaScript 可以说是最流行的编程语言之一,也是Web 开发人员必须学习的 3 种语言之一,JavaScript 几乎可以做任何事情,更可以在包括物联网在内的多个平台和设备上运行。在WebGL库和SVG/Canvas元素的支持下,JavaScript变得惊人的强…

Spring Cloud Nacos源码讲解(四)- Nacos服务端服务注册源码分析

Nacos服务端服务注册源码分析 服务端调用接口 ​ 我们已经知道客户端在注册服务的时候实际上是调用的NamingService.registerInstance这个方法来完成实例的注册,而且在最后我们也告诉了大家实际上从本质上讲服务注册就是调用的对应接口nacos/v1/ns/instance&#…

网络工程(三)ensp配置静态路由

配置静态路由 这里选择的路由器是AR2220 因为有三个GE接口 下面说拓扑图 一、定义AR路由ip地址和下一条 AR1system-viewsysname AR1interface g0/0/0ip address 10.0.0.254 8interface g0/0/1ip address 50.0.0.1 8下一条代码[AR1]ip route-static 0.0.0.0 0 50.0.0.2AR2 s…

Linux SID 开发指南

Linux SID 开发指南 1 前言 1.1 编写目的 介绍Linux 内核中基于Sunxi 硬件平台的SID 模块驱动的详细设计,为软件编码和维护提供基 础。 1.2 适用范围 内核版本Linux-5.4, Linux-4.9 的平台。 1.3 相关人员 SID 驱动、Efuse 驱动、Sysinfo 驱动的维护、应用开…

Java 方法超详细整理,适合新手入门

目录 一、什么是方法呢? 二、方法的优点 三、带返回值方法定义 语法: 示例: 四、带返回值方法调用 语法: 示例: 五、结果示例 一、什么是方法呢? Java方法是语句的集合,它们在一起执行…

Android 9.0 仿ios的hotseat效果修改hotseat样式

1.概述 在9.0的系统rom定制化的产品中,在launcher3的定制化需求中,有很多功能需求点需要开发,在对一下ui的定制化的过程中,会参考ios的样式进行定制化,所以最近项目需求 要求仿ios的hotseat的样式来进行产品的定制,开发一款仿ios的hotseat,所以需要对hotseat进行分析,然…

C语言进阶(八)—— 链表

1. 链表基本概念1.1 什么是链表链表是一种常用的数据结构,它通过指针将一些列数据结点,连接成一个数据链。相对于数组,链表具有更好的动态性(非顺序存储)。数据域用来存储数据,指针域用于建立与下一个结点的…

【CKA】

— k8s basic — 安装版本信息查询 命令行自动补全功能设置 01. Namespaces and Pods 02. Assigning Pods to Nodes 03. Basic Deployments 04. Advanced Deployment 05. Jobs, Init Containers and Cron Jobs 06. Manage DaemonSets 07. Manage Services 08. Manage Ingress …

【技术】雷达液位计设备安装方案

一、设备概述 雷达液位计为我司自主研发,采用FMCW技术,以24G毫米雷达波作为载波信号,该产品测量精度高、功耗低、体积小、重量轻;测量过程不受温度、气压、泥沙、灰尘、河流污染物、水面漂浮物、空气等环境因素的影响&#xff0c…

spring boot项目中i18n和META-INF.spring下的文件的作用

目录标题一、resource下的文件二、i18n下messages_zh_CN.properties三、spring.factories文件四、org.springframework.boot.autoconfigure.AutoConfiguration.imports一、resource下的文件 org.springframework.boot.autoconfigure.AutoConfiguration.imports ; - …

微信小程序日记、微信小程序个人空间、个人日记

一.简述 个人比较喜欢微信小程序,因为小程序所追求的用户体验、代码质量、美观的样式,简单方便丰富的api、样式封装等,同时又与普通的前端开发非常相似,让人很容易就上手。 这篇博客介绍的是一款记录个人/家庭日常记录的微信小程…

VsCode开发工具的入门及基本使用

VsCode开发工具的入门及基本使用一、VsCode介绍1.VsCode简介2.VsCode特点二、安装VsCode1.下载VsCode2.安装VsCode3.打开VsCode三、设置VsCode中文1.搜索中文语言插件2.安装中文语言插件四、初识VsCode1.VsCode左侧栏模块2.系统设置功能五、VsCode初始配置1.禁用自动更新2.开启…

MQTT 5协议你知道多少?

一、MQTT 5简介 MQTT协议是当今世界上最流行、接受度最高的物联网协议。自推出以来,MQTT已经成功地连接了各种规模的部署中的无数受限设备。 流行的用例包括从连接汽车、制造系统、物流和军事到企业聊天应用程序和移动应用程序。MQTT协议的广泛使用催生了进一步发…

【离线数仓-5-数据仓库环境准备】

离线数仓-5-数据仓库环境准备离线数仓-5-数据仓库环境准备1.数据仓库运行环境1.Hive环境搭建1.Hive引擎2.Hive on Spark配置2.Yarn环境配置2.数据仓库开发环境3.模拟数据准备离线数仓-5-数据仓库环境准备 1.数据仓库运行环境 数仓之外需要做的事情: 数据安全认证&…

OSCP-课外2(git泄露、SQL注入)

难度 中 主机发现&端口扫描 sudo arp-scan -l sudo nmap -p- 192.168.65.128 sudo nmap -p22,80 -sC -sV 192.168.65.128 首先,发现了.git目录,可能通过代码审计发现漏洞的存在。 其次,发现了一个描述“login.php修改的更安全”,说明以前login.php版本可能存在安全…

活动预告 | 2023 Meet TVM 开年首聚,上海我们来啦!

内容一览:从去年 12 月延期至今的 TVM 线下聚会终于来了!首站地点我们选在了上海,并邀请到了 4 位讲师结合自己的工作实践,分享 TVM 相关的开发经验,期待与大家线下相聚~ 关键词:2023 Meet TVM 线下活动 自…

操作系统(day15) -- I/O设备

I/O设备的基本概念与分类 I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机中的硬件部分。 I/O设备按使用特性可以分为以下类型: 人机交互类设备。用于与计算机用户之间交互的设备,如打印机、…

华为OD机试用Python实现 -【组合出合法最小数】(2023-Q1 新题)

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 组合出合法最小数…

原子化 CSS 实践

原子化 CSS 实践 jcLee95 的CSDN 博客 邮箱 :291148484163.com CSDN 主页:https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 本文地址:https://blog.csdn.net/qq_28550263/article/details/129178547 目 录1. 概述 2. 原子化…