如何利用Airtest做一些简单的装包小任务

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 如何利用Airtest做一些简单的装包小任务

此文章来源于项目官方公众号:“AirtestProject”

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

很多同学对于Airtest都有一些刻板的印象,觉得Airtest只能截图,然后进行一些简单的点点点操作。

但实际上,抛开Airtest的图像识别点击功能,Airtest还能帮助我们连接设备,然后完成一些别的小任务,比如装包、打开应用、检查应用等等(不需要截图、也不需要生成报告)。

2. 利用Airtest完成装包任务的脚本示例

示例为一个非常简单的纯.py脚本例子,只连接设备,然后安装并打开指定应用即可,log都不需要保存(可以看到auto_setup里面logdir=False):

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
from airtest.cli.parser import cli_setup
auto_setup(__file__, logdir=False, devices=["android://127.0.0.1:5037/PFT4PBLF75GQHYBM"])
# 包体存放的路径
APK_FILE = r"D:\demo\NeteaseCloudMusic_Music_official_8.7.11.220318190241_32.apk"
# 包名
PACKAGE_NAME = "com.netease.cloudmusic"
# 安装应用
install(APK_FILE)
# 打开应用
start_app(PACKAGE_NAME)

3. 装包接口详解

1)install()

install()是Airtest的核心API之一,默认是用当前的设备去执行安装操作,实际上里面调用了 device().install_app(),所以上文中的案例,我们也可以写成这样:

...
# 安装应用
device().install_app(APK_FILE)
# 打开应用
start_app(PACKAGE_NAME)
...

其中,install_app除了需要传入filepath参数之外,还有2个参数我们也可以关注下:

  • replace,如果应用已存在,是否替换,默认为False
  • install_optionsinstall命令的额外选项,默认是[]
# adb install -r -t D:\demo\test.apk
device().install_app(r"D:\demo\test.apk",install_options=["-r", "-t"])
2)pm_install()

pm_installairtest.core.android.adb模块下面的安装方法,在Airtest1.2.7版本,我们对这个安装接口进行了增强:

  • 支持了安装参数的传入(与 adb.install 保持一致),
  • 支持了 中文路径、一些 包含特殊符号路径
  • 对路径的改动同时影响到了 adb.pull()adb.push() 接口,支持了中文路径、包含斜杠的路径(比如 \g 这样的字符也会有问题)、包含特殊符号(空格、括号等)的路径
  • pm_install 安装完毕后,会进行 adb shell rm apk 的操作,超时时间30秒

上文的小任务,也可以通过pm_install接口来实现:

...
# 安装应用
device().adb.pm_install(APK_FILE)
# 打开应用
start_app(PACKAGE_NAME)
...

Airtest1.2.7版本之后,pm_install的参数与install_app保持了一致,同样支持:

  • replace,如果应用已存在,是否替换,默认为False
  • install_optionsinstall命令的额外选项,默认是[]
3)拓展:install的安装参数

Airtest封装的安装接口,包含以下安装参数可以使用:

  • -t,允许测试包
  • -l,锁定应用程序
  • -s,把应用程序安装到sd卡上
  • -g,为应用程序授予所有运行时的权限
  • -r,替换已存在的应用程序(覆盖安装)
  • -d,允许降级覆盖安装

4. 小结

本文主要使用Airtest封装的安装接口,采用多种方式实现了装包的小任务,另外还拓展了下安装参数的介绍,同学们可以自己动手试试哟~


AirtestIDE下载:airtest.netease.com/

Airtest 教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b


相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
4月前
|
人工智能 API
阿里巴巴发布开源视频编辑全功能模型Wan2.1-VACE,视频创作迎来"全能选手"!
阿里巴巴发布的开源模型Wan2.1-VACE,作为“万相2.1”系列成员,是业内首个视频生成与编辑统一解决方案。该多合一AI模型支持文本、图像和视频的多模态输入,提供视频生成、局部编辑、画面延展等功能,大幅提升创作效率。借助创新技术如“视频条件单元”和“上下文适配”,Wan2.1-VACE可广泛应用于短视频制作、广告营销等领域。模型已上线Hugging Face等平台,免费下载使用,助力AI普惠。
587 0
|
9月前
|
人工智能 缓存 安全
每一个大模型应用都需要一个 AI 网关|场景和能力
本次分享的主题是每一个大模型应用都需要一个 AI 网关|场景和能力。由 API 网关产品经理张裕(子丑)进行分享。主要分为三个部分: 1. 企业应用 AI 场景面临的挑战 2. AI 网关的产品方案 3. AI 网关的场景演示
1019 1
|
7月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
9月前
|
数据采集 缓存 API
python爬取Boss直聘,分析北京招聘市场
本文介绍了如何使用Python爬虫技术从Boss直聘平台上获取深圳地区的招聘数据,并进行数据分析,以帮助求职者更好地了解市场动态和职位需求。
|
10月前
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
12月前
|
前端开发 JavaScript Docker
拿下奇怪的前端报错(五):SyntaxError: Unexpected token ‘??=‘或‘xxx‘ - 基于容器搭建开发环境或许是更好的选择
在前端开发中,同时维护多个项目时可能会遇到不同Node.js版本的问题。低版本Node.js可能导致依赖无法安装或启动失败,而高版本Node.js则可能引起第三方库的兼容性问题。推荐使用Docker搭建独立的开发环境,以避免版本不一致带来的困扰。
2868 2
|
设计模式 前端开发 安全
理解最常用的MVC分层模型及其变种
【6月更文挑战第24天】 本文介绍架构模式如MVC、MVVM和MVP是解决软件结构问题的通用方案。。每种模式有其优缺点,适用场景不同。
753 0
理解最常用的MVC分层模型及其变种
|
存储 测试技术 API
Pandas 2.2 中文官方教程和指南(十·一)(4)
Pandas 2.2 中文官方教程和指南(十·一)
604 2
|
Java 应用服务中间件 Windows
简单解决jsp中文乱码问题
简单解决jsp中文乱码问题
简单解决jsp中文乱码问题