如何用Python运行Airtest自动化项目(.air)并实现双Android设备并行执行?
刚好之前帮朋友解决过类似的需求,给你分享两个可行的方案,一个是你想要的通过Python启动两个Airtest IDE窗口分别执行,另一个是更高效的直接用命令行并行运行(不用开IDE界面),你可以按需选择:
方案1:启动两个Airtest IDE窗口并行执行
这个方案完全匹配你想要的"打开两个IDE窗口对应两台设备执行"的需求,核心是用Python的subprocess模块启动两个独立的Airtest IDE进程,分别指定设备和项目路径:
步骤&代码示例
import subprocess import time # 替换成你自己的路径和设备ID AIRTEST_IDE_PATH = r"C:\Program Files\AirtestIDE\AirtestIDE.exe" # Windows路径示例 # AIRTEST_IDE_PATH = "/Applications/AirtestIDE.app/Contents/MacOS/AirtestIDE" # Mac路径示例 AIR_PROJECT_PATH = r"D:\test_projects\my_auto_test.air" DEVICE_IDS = ["emulator-5554", "emulator-5556"] # 你的两台设备ID # 启动两个IDE进程 running_processes = [] for device_id in DEVICE_IDS: # 构造启动命令:指定设备、打开项目、自动运行 launch_cmd = [ AIRTEST_IDE_PATH, "--device", f"Android:///{device_id}", "--script", AIR_PROJECT_PATH, "--auto_run" # 打开IDE后自动执行脚本,不用手动点运行 ] # 启动进程 proc = subprocess.Popen(launch_cmd) running_processes.append(proc) time.sleep(2) # 给IDE启动留2秒缓冲,避免同时启动导致资源冲突 # 等待所有测试完成 for proc in running_processes: proc.wait()
参数说明
--device:指定要连接的安卓设备,格式是Android:///{设备ID}--script:指定要运行的.air项目路径--auto_run:让IDE打开后自动执行脚本,省去手动点击运行的步骤
方案2:用Airtest命令行工具并行运行(更轻量)
如果不需要IDE的可视化界面,更推荐用Airtest自带的airtest run命令行工具,这样不用启动IDE,资源占用更低,运行效率更高:
代码示例
import subprocess AIR_PROJECT_PATH = r"D:\test_projects\my_auto_test.air" DEVICE_IDS = ["emulator-5554", "emulator-5556"] running_processes = [] for device_id in DEVICE_IDS: # 构造命令行运行指令 cmd = [ "airtest", "run", AIR_PROJECT_PATH, "--device", f"Android:///{device_id}", "--log", f"./test_logs/{device_id}" # 每个设备生成单独的日志文件夹 ] proc = subprocess.Popen(cmd) running_processes.append(proc) # 等待所有测试结束 for proc in running_processes: proc.wait()
关键注意事项
- 确保两台设备都已通过adb正常连接,运行
adb devices能看到两个设备处于device状态 - Windows系统下路径要注意用原始字符串(加
r前缀),避免转义字符问题 - 如果启动IDE失败,检查IDE路径是否正确,或者尝试用管理员权限运行Python脚本
- 并行运行时,给每个设备分配独立的日志目录,避免日志文件冲突
内容的提问来源于stack exchange,提问作者Saket Gaur




