Mumu 模拟器 pytest 测试框架
目录结构
mumu-pytest/
├── conftest.py # pytest配置和公共fixture
├── test_mumu.py # 测试用例
├── start.png # 启动按钮图片
├── running.png # 运行中图片
├── web.png # web按钮图片
├── web_address.png # 地址输入框图片
├── web_goon.png # 继续按钮图片
├── web_debug.png # 调试按钮图片
├── web_debug_apk.png # APK按钮图片
├── web_debug_apk_download.png # 下载按钮图片
├── web_debug_apk_open.png # 打开文件按钮图片
├── web_debug_apk_install.png # 安装按钮图片
├── web_debug_apk_run.png # 运行按钮图片
├── requirements.txt # Python依赖
└── README.md # 说明文档
安装依赖
pip install -r requirements.txt
配置
在 conftest.py 中修改以下配置:
MUMU_EXE_PATH = r"C:\Program Files\Netease\MuMu\nx_main\MuMuNxMain.exe"
MUMU_PROCESS_NAME = "MuMuNxMain.exe"
ADB_PATH = r"C:\Program Files\Netease\MuMu\shell\adb.exe"
WEB_URL = "http://192.168.3.15/"
INSTALLED_PACKAGE_NAME = "com.example.flomo_ai"
APK_DOWNLOAD_URL = "http://your-server.com/app-release.apk"
功能说明
MumuEmulator 类
| 方法 | 说明 |
|---|---|
is_running() |
检查模拟器是否运行 |
start() |
启动模拟器并置顶窗口 |
bring_to_front() |
将模拟器窗口置顶 |
find_and_click(image_name, confidence, timeout) |
查找图片并点击 |
type_text(text) |
输入文本 |
press_enter() |
按回车 |
wait_for_boot(timeout) |
等待模拟器启动完成 |
check_image_exists(image_name) |
检查图片是否存在 |
run_sequence() |
按顺序执行任务 |
close() |
关闭模拟器 |
AdbHelper 类
| 方法 | 说明 |
|---|---|
exec_cmd(*args) |
执行ADB命令 |
install_apk(apk_path) |
安装APK |
uninstall_app(package_name) |
卸载应用 |
launch_app(package_name, activity) |
启动应用 |
is_app_installed(package_name) |
检查应用是否已安装 |
pull_file(remote_path, local_path) |
从模拟器拉取文件 |
测试流程 (run_sequence)
- 置顶模拟器窗口
- 等待30秒
- 点击 web.png
- 检测 web_address.png 出现后,输入 URL (http://192.168.3.15/)
- 点击 web_goon.png
- 点击 web_debug.png
- 点击 web_debug_apk.png
- 点击 web_debug_apk_download.png
- 点击 web_debug_apk_open.png
- 点击 web_debug_apk_install.png
- 点击 web_debug_apk_run.png
运行测试
# 运行所有测试
pytest
# 运行指定测试
pytest test_mumu.py::test_start_emulator_sequence
pytest test_mumu.py::test_run_sequence
# 显示详细输出
pytest -v -s
注意事项
- 确保MuMu模拟器已正确安装
- 需要先截取各个步骤对应的图片放入 mumu-pytest 目录
- pyautogui需要配置合适的置信度(默认0.8)和超时时间
- 确保模拟器路径和ADB路径正确
- 测试图片文件名不要包含空格,使用下划线分隔