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


    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3. 装包接口详解

    1)install()

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

    ...
    
    # 安装应用
    device().install_app(APK_FILE)
    
    # 打开应用
    start_app(PACKAGE_NAME)
    
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    其中,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"])
    
    • 1
    • 2

    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)
    
    ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    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%免费】

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    UG NX二次开发(C++)-采用NXOpen方法创建同步建模中的偏置曲面
    倒序数(模拟)
    【踩坑专栏】代码重构,项目分层:maven reload失败及依赖自身的问题
    金仓数据库KingbaseES物理备份恢复命令选项(start命令)
    编译时编程(Compile-Time Programming)
    【推荐】javaweb JAVA JSP企业财务管理系统记账管理系统jsp财务管理网站(理财系统财务管理系统)源码
    每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——37/70 第三十七天【复习前端】
    快乐数[环类问题之快慢指针]
    C++ - 智能指针 - auto_ptr - unique_ptr - std::shared_ptr - weak_ptr
    riscv fpga
  • 原文地址:https://blog.csdn.net/m0_67695717/article/details/128020950