Install Prerequisites,Want to Install Prerequisites? Here’s the Ultimate Guide You Can’t Miss!,Need to Install Prerequisites? Here’s the Ultimate Guide You Can’t Miss!

今天 4565阅读

系统环境要求

Airtest支持主流Linux发行版(包括但不限于Ubuntu/Debian/CentOS等),具体要求如下:

  • 操作系统:推荐使用Ubuntu 20.04 LTS或更高版本
  • Python环境:必须Python 3.6+运行环境,建议使用Python 3.8+以获得最佳兼容性
  • 硬件配置
    • 建议使用SSD存储设备提升图像识别性能
    • 最低4GB内存(8GB以上推荐)
    • 支持OpenGL 3.0+的显卡

基础环境配置

Python环境安装与配置

# Ubuntu/Debian系统
sudo apt update && sudo apt upgrade -y
sudo apt install python3 python3-pip python3-dev python3-venv -y
# CentOS/RHEL系统
sudo yum install epel-release -y
sudo yum install python3 python3-pip python3-devel -y

版本验证提示

  • 执行python3 --version确认版本符合要求
  • 建议使用pyenv管理多版本Python环境
  • 生产环境推荐使用虚拟环境隔离依赖

ADB工具安装(Android测试必备)

# Ubuntu/Debian系统
sudo apt install adb android-sdk-platform-tools -y
# CentOS/RHEL系统
sudo yum install android-tools -y
# 验证安装
adb version

设备连接优化建议

  • 启用Android设备的开发者选项和USB调试模式
  • 执行adb kill-server && adb start-server重置ADB服务
  • 使用adb devices -l查看设备详细信息
  • 对于远程设备,配置adb tcpip 5555进行无线调试

Airtest核心组件安装

主框架安装方案

# 升级pip工具
python3 -m pip install --upgrade pip
# 标准安装方式(推荐使用虚拟环境)
python3 -m venv airtest_env
source airtest_env/bin/activate
pip install airtest

权限管理方案

  • 开发环境:使用--user参数或虚拟环境
  • 生产环境:建议使用容器化部署
  • 系统级安装:sudo -H pip3 install airtest

扩展组件安装

# UI层级测试框架(增强元素定位能力)
pip install pocoui
# 图像处理增强组件(推荐安装)
pip install opencv-contrib-python-headless
# 多设备管理插件
pip install airtest-selenium
# 性能监控组件(可选)
pip install psutil

Linux特殊环境配置

无图形界面解决方案

# 安装Xvfb虚拟显示服务
sudo apt install xvfb libgl1-mesa-glx x11-utils -y
# 启动虚拟显示器(推荐配置)
Xvfb :99 -ac -screen 0 1920x1080x24 +extension RANDR &
export DISPLAY=:99
# 验证显示环境
glxinfo | grep "direct rendering"

高级配置建议

  • 内存优化:添加-shmem参数减少内存占用
  • 高分辨率支持:设置3840x2160x24分辨率
  • 自动化管理:使用xvfb-run包装测试脚本
  • 多会话支持:配置不同DISPLAY值实现并行测试

测试执行与管理

脚本运行示例

# Android设备测试标准命令
airtest run demo.air \
    --device Android:///[设备序列号] \
    --log ./test_logs \
    --recording
# Windows应用测试(需配置Wine环境)
airtest run win_app.air \
    --device Windows:///?title_re=.*应用标题.* \
    --compress 80

报告生成高级配置

airtest report demo.air \
    --log_root ./test_logs \
    --export ./html_report \
    --lang zh \
    --plugins airtest_selenium \
    --outfile full_report.html

报告定制技巧

  • 添加--simple参数生成精简版报告
  • 使用--record参数嵌入执行录像
  • 通过--export_all导出所有中间文件
  • 自定义模板:修改airtest/report/template目录

容器化部署方案

Docker标准部署流程

# 拉取官方镜像(支持多架构)
docker pull airtest/airtest:latest
# 运行测试容器(推荐配置)
docker run -it --privileged \
    --shm-size="2g" \
    -v /dev/bus/usb:/dev/bus/usb \
    -v $(pwd):/airtest \
    -v ./airtest_logs:/root/AirtestProject/logs \
    airtest/airtest \
    airtest run /airtest/smoke_test.air

生产环境建议

  • ARM设备使用airtest/arm64v8专用镜像
  • 添加--network=host参数提升网络性能
  • 配置资源限制:--memory="4g" --cpus=2
  • 使用docker-compose管理多容器测试

常见问题诊断指南

问题现象 解决方案 预防措施
ADB设备未授权 检查~/.android/adbkey权限,执行adb devices重新授权 配置udev规则永久授权
OpenCV依赖缺失 安装libopencv-dev包,或使用opencv-python-headless 预装完整多媒体库
图像识别失败 调整ST.THRESHOLD参数(范围0.6-0.9) 优化截图质量,增加特征点
多显示器异常 明确指定export DISPLAY=:0.0 使用Xvfb统一显示环境

性能调优建议

  • 在脚本中添加ST.SAVE_IMAGE = False减少IO操作
  • 修改ST.THRESHOLD_STRICT平衡精度与性能
  • 使用--compress 50参数降低截图质量
  • 启用ST.CVSTRATEGY = ["tpl", "sift"]多算法识别

最佳实践方案

混合开发工作流

  1. 在Windows/macOS使用Airtest IDE开发调试脚本
  2. 通过Git版本控制同步到Linux环境
  3. 使用CI/CD工具实现自动化测试

持续集成示例(GitLab CI)

stages:
  - test
airtest_android:
  stage: test
  image: airtest/airtest:latest
  variables:
    DEVICE_IP: "192.168.1.100:5555"
  script:
    - adb connect $DEVICE_IP
    - airtest run regression_test.air --log /tmp/logs
    - airtest report regression_test.air --export junit.xml
  artifacts:
    paths:
      - /tmp/logs/
      - junit.xml
    expire_in: 1 week

分布式测试方案

  • 使用multi_device接口实现多设备并行
  • 结合Selenium Grid搭建测试集群
  • 通过Redis管理测试任务队列

技术限制与解决方案

平台兼容性说明

  1. 显示差异

    • 不同DPI显示器需调整ST.RESIZE_METHOD
    • 高刷新率屏幕需配置ST.SNAPSHOT_QUALITY
  2. 文件系统

    • Linux路径大小写敏感,建议统一使用小写命名
    • Windows脚本需转换换行符(dos2unix

纯Python API示例

from airtest.core.api import *
from airtest.cli.parser import cli_setup
# 初始化设备连接
if not cli_setup():
    auto_setup(__file__, devices=[
        "Android:///?cap_method=JAVACAP",
    ])
# 增强型元素操作
touch(Template("login_button.png", 
    threshold=0.8, 
    rgb=True, 
    record_pos=(0.5, 0.5))

扩展开发指南

  1. 自定义设备支持:

    • 继承DeviceBase类实现新协议
    • 重写snapshot方法优化截图
  2. 工具函数扩展:

    • 使用airtest.utils.logger定制日志
    • 通过airtest.utils.retry实现重试机制

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]