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

news2025/8/11 11:03:36

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_options,install命令的额外选项,默认是[]
# adb install -r -t D:\demo\test.apk
device().install_app(r"D:\demo\test.apk",install_options=["-r", "-t"])

2)pm_install()

pm_install是airtest.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_options,install命令的额外选项,默认是[]

3)拓展:install的安装参数

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

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

4. 小结

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

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以加入我们的QQ群:746506216,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

CAD .NET 14.1.X DWG/ DXF, PLT 自由转换- CNC

CAD .NET CAD .NET是一个用于在 .NET 环境中开发解决方案的库。它支持 AutoCAD DWG/ DXF、PLT和其他 CAD 格式。 该库可用于广泛的领域: 在所有项目阶段使用工业图纸监控和远程控制程序数控加工数据导出为 CAD 格式使用数据库文件管理系统使用图纸的高度专业化产品…

构建镜像开源工具 buildah

构建镜像开源工具 buildah 文章目录构建镜像开源工具 buildah1. 简介2. 特点3. Buildah 和 Podman4. 安装4.1 CentOS4.2 Ubuntu4.3 RHEL74.4 Fedora5. 命令6. 示例6.1 命令行构建一个 httpd 镜像6.2 Dockerfile 构建6.3 构建镜像脚本(代替 Dockerfile)1.…

基于JAVA的新闻发布管理系统开发参考【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86427655 目的 本系统的目的是实现新闻发布系统的基本功能。新闻发布系统提供了不同类型新闻(如社会新闻、娱乐新闻和技术前沿新闻等) 满足不同用户需求;系…

基于Amos优化器思想推导出来的一些“炼丹策略”

©PaperWeekly 原创 作者 | 苏剑林单位 | 追一科技研究方向 | NLP、神经网络如果将训练模型比喻为“炼丹”,那么“炼丹炉”显然就是优化器了。据传 AdamW 优化器是当前训练神经网络最快的方案,这一点笔者也没有一一对比过,具体情况如何不…

RationalDMIS2022校验测头

一.为什么要校验测头 校验测头的目的有2个 第一是得到测针的实际直径,后续用于探头半径补偿; 第二是得到各角度下测针的偏置,这样不同角度的探针测量出来的数据可以统一到一起; 测头校验包括2部分:定位标准球和测头…

C#程序采用AOT发布,真的可以避免被反编译?

上次跟大家分享过,C#程序反编译与篡改代码的教程《C#程序发布时,一定要好好的保护,不然你会后悔的!》,根据这个教程,我们都知道C#程序,发布后必须进行加密混淆,不然就是相当于源码直…

Java 网络编程之 BIO、NIO、AIO

目录I/O 模型BIO基本介绍工作机制编程实例同步阻塞模型(一个客户端对应一个服务端)BIO模式下一个服务端接收多个客户端伪异步I/O编程,使用线程池基于BIO形式下的文件上传NIOBuffer缓冲区Buffer 类及其子类缓冲区的基本属性Buffer常见方法缓冲…

iNFTnews|Web3走进FIFA世界杯

中心化交易所FTX暴雷留下的阴影还未消退,另一个交易所http://Crypto.com的标志出现在了2022卡塔尔世界杯的赛场上。 据FIFA公告,http://Crypto.com的品牌将于今年11月开始,出现在卡塔尔世界杯体育馆中,且作为赞助商的一部分&#…

Redis 各种用法总结

前言 Redis绝不部分使用场景就是用来做缓存;但是,由于Redis 支持比较丰富的数据结构,因此他能实现的功能并不仅限于缓存,而是可以运用到各种业务场景中,开发出既简洁、又高效的系统; 下面整理了几种 Redis 的妙用场景…

免费录屏软件有哪些?录屏软件下载,认准这3款软件

​在网上活动越来越活跃的今天,人们对于录屏的需求也越来越多了起来。在我们日常生活或者工作生活中经常会使用到录屏功能,录屏的场景和需求变得多样化起来。那么有没有一些好用的免费录屏软件呢?别着急,下面小编带来了3款十分好用…

LabVIEW使用Desktop Execution Trace工具包

LabVIEW使用Desktop Execution Trace工具包 可以使用桌面执行跟踪工具包来调试和优化大型LabVIEW应用程序,包括具有多个循环的应用程序、客户端-服务器架构、动态加载VI等。该工具包从本地或远程计算机桌面上运行的应用程序捕获执行事件,并在表窗格中显…

EPICS -- asynRecord记录使用示例

这个示例演示了如何使用asynRecord记录 1、硬件准备工作 在这里准备了一个型号为NPort 5650-8-DT的Moxa串口服务器,用于一根交叉DB9双母头线缆连接设备上端口2和端口3,使之可以相互通信。 串口服务器配置如下: IP地址:192.168…

xilinx PL测 DP 点屏 /接收(三)--TX

环境: a)硬件:官方ZCU106开发板 , tb-fmch-vfmc-dp子卡。 b)软件:vivado2021.1,vitis2021.1,裸机程序。 1、例程: 1、DP TX ip速率: 2、框架: 3、重要寄存器: 4、 5、时钟…

Java 内存溢出(二)使用 MAT 分析 .hprof 内存映像文件

目录一、内存溢出时自动导出 .hprof 文件二、下载安装 MAT三、启动 MAT四、MAT 分析 hprof 文件1.Overview 概览2.Leak Suspects 溢出原因猜测3.Histogram 对象实例数量排序4.Dominator Tree 支配树.hprof 文件: 是 java 项目的 Heap Dump 文件,也叫内存…

手把手教你搭建属于自己的PyQt5-YOLOv5目标检测平台(保姆级教程)

>>>深度学习Tricks,第一时间送达<<< 🚀🚀🚀NEW!!!PyQt5-YOLOv5目标检测平台来啦 ~ 💡💡近期,小海带尝试用Pycharm做可视化界面相关设计,并搭载之前实验训练较好的YOLOv5算法模型,以此成功搭建了属于自己的PyQt5-YOLOv5目标检测平台,平台界面…

前后端分离项目,vue+uni-app+php+mysql在线小说电子书阅读系统设计与实现(H5移动项目)

功能介绍 用户首次登陆系统需要注册一个用户作为账号&#xff0c;用户在登录平台后&#xff0c;可以进行平台的操作。主要模块包括以下几点&#xff1a; 登录功能&#xff1a;注册普通账号登录&#xff1b;登录后可以修改用户的基本信息&#xff0c;也可以退出。 资讯功能&…

stress、mpstat、pidstat

简介 压测命令&#xff1a;stress &#xff0c;一个Linux 系统压力测试工具&#xff0c;这里我们用作异常进程模拟平均负载升高的场景。 监测命令&#xff1a;mpstat 是一个常用的多核CPU 性能分析工具&#xff0c;用来实时查看每个CPU 的性能指标&#xff0c;以及所 有 CPU 的…

(附源码)计算机毕业设计JavaJava毕设项目电脑小白网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

华为机试 - 勾股数元组

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 如果3个正整数(a,b,c)满足a^2 b^2 c^2的关系&#xff0c;则称(a,b,c)为勾股数&#xff08;著名的勾三股四弦五&#xff09;&#xff0c; 为了探索勾股数的规律&#xff0c;我们定义如果勾股数(a,b,…

Spring Boot 检索定时任务

概述 应用经常需要添加检索功能&#xff0c;开源的 ElasticSearch 是目前全文搜索引擎的首选。他可以快速的存储、搜索和分析海量数据。Spring Boot通过整合Spring Data ElasticSearch为我们提供了非常便捷的检索功能支持。 Elasticsearch是一个分布式搜索服务&#xff0c;提…