在移动应用开发与迭代过程中,测试是保障产品质量的关键环节,而掌握高效的app测试命令能够显著提升测试效率、覆盖核心功能点,并快速定位潜在问题,无论是功能测试、性能测试还是兼容性测试,合理运用命令行工具都能提供比图形界面更直接、更灵活的测试能力,以下将从不同测试场景出发,详细介绍常用的app测试命令及其使用方法,并结合实际案例说明操作逻辑。

功能测试命令:验证核心业务逻辑
功能测试主要检查app是否符合需求文档中的功能定义,命令行工具可通过模拟用户操作、检查接口响应等方式实现自动化验证。
使用adb(Android Debug Bridge)进行基础功能测试
adb是Android平台的核心调试工具,通过USB连接或无线网络与设备通信,可执行安装、卸载、启动应用、输入模拟等操作。
- 安装与启动应用:
adb install -r app-debug.apk # 安装/覆盖安装app(-r表示保留数据) adb shell am start -n com.example.app/.MainActivity # 启动app的MainActivity(包名/类名需替换为实际值)
- 模拟用户操作:
adb shell input tap 500 1000 # 模拟点击屏幕坐标(500,1000) adb shell input text "测试文本" # 模拟输入文本 adb shell input keyevent KEYCODE_HOME # 模拟按下Home键
- 检查应用状态:
adb shell dumpsys activity top | grep "ACTIVITY" # 查看当前前台Activity adb shell pm list packages | grep com.example.app # 检查app是否安装成功
使用iOS命令行工具(如idevicediagnostics)
对于iOS设备,需借助Xcode Command Line Tools或第三方工具(如libimobiledevice),以idevicediagnostics为例:
- 获取应用列表:
ideviceinstaller -l # 列出已安装应用
- 启动应用:
idevicelaunch -b com.example.app # 通过Bundle ID启动app
性能测试命令:监控资源占用与运行效率
性能测试关注app的响应速度、资源消耗(CPU、内存、电量)等指标,命令行工具可实时采集数据并生成分析报告。

Android性能监控(adb + top/proc)
- CPU使用率监控:
adb shell top -m 10 -s cpu # 按CPU使用率排序,显示前10个进程 adb shell dumpsys cpuinfo # 查看app的CPU占用详情
- 内存占用监控:
adb shell dumpsys meminfo com.example.app # 查看app的内存使用情况(Pss、Private Dirty等字段) adb shell procrank | grep com.example.app # 按内存占用排序进程
- 电量与帧率监控:
adb shell dumpsys battery # 查看电池状态 adb shell dumpsys gfxinfo com.example.app # 查看GPU渲染帧率(需在Activity中执行)
iOS性能监控(instruments +命令行)
iOS可通过instruments命令行工具采集性能数据:
- CPU使用率:
instruments -t CPU Trace -l 30 com.example.app # 运行30秒CPU跟踪
- 内存泄漏检测:
instruments -t Leaks com.example.app # 检测app内存泄漏
兼容性测试命令:跨设备/系统验证
兼容性测试需覆盖不同Android版本、屏幕分辨率及iOS设备型号,命令行工具可批量执行测试脚本。
Android多设备兼容性测试
- 连接多设备并执行命令:
adb devices # 查看已连接设备列表 adb -s 设备ID shell getprop ro.build.version.release # 指定设备查询Android版本
- 屏幕分辨率适配检查:
adb shell wm size # 查看设备屏幕分辨率 adb shell dumpsys window | grep "mDisplayId" # 检查显示区域信息
iOS设备兼容性(simctl模拟器)
使用iOS模拟器控制器(simctl)进行多设备测试:
- 列出模拟器:
xcrun simctl list devices # 列出所有可用模拟器
- 在指定模拟器中运行app:
xcrun simctl boot "iPhone 14 Pro" # 启动模拟器 xcrun simctl install "iPhone 14 Pro" app.app # 安装app xcrun simctl launch "iPhone 14 Pro" com.example.app # 启动app
网络与接口测试命令:验证数据交互
网络测试关注app的请求响应、错误处理及协议兼容性,可通过curl、Postman等工具模拟接口调用。

接口调用与响应检查
- 使用curl模拟HTTP请求:
curl -X POST http://api.example.com/login -d "username=test&password=123" -H "Content-Type: application/json" # 模拟POST请求 curl -I http://api.example.com/data # 查看HTTP响应头
- 抓包分析(Android):
adb shell tcpdump -p -i any -s 0 -w /sdcard/capture.pcap # 抓取网络包(需root) adb pull /sdcard/capture.pcap # 将抓包文件导出到电脑
网络状态模拟
- Android模拟网络切换:
adb shell svc data disable # 关闭移动数据 adb shell svc wifi disable # 关闭WiFi
自动化测试脚本:批量执行与结果分析
通过编写Shell脚本或Python脚本结合adb/idevicedevice工具,可实现自动化测试用例执行,提升测试效率。
示例:Android自动化测试脚本
#!/bin/bash # 安装app adb install -r app-debug.apk # 启动app并执行操作 adb shell am start -n com.example.app/.MainActivity sleep 2 adb shell input tap 500 1000 # 点击登录按钮 adb shell input text "test" adb shell input tap 500 1200 # 点击提交按钮 # 检查日志关键字 adb logcat -d | grep "Login Success" && echo "测试通过" || echo "测试失败"
测试结果输出与日志分析
测试过程中产生的日志是定位问题的重要依据,需掌握日志过滤与导出方法。
Android日志管理
- 实时查看日志:
adb logcat -s "Tag名" # 过滤指定Tag的日志 adb logcat | grep "Error" # 查看包含Error的日志
- 导出日志:
adb logcat -d > log.txt # 导出设备日志到本地文件 adb shell logcat -b radio -d > radio_log.txt # 导出无线通信日志
iOS日志管理
- 查看系统日志:
idevicesyslog | grep "Crash" # 查看崩溃日志
相关问答FAQs
Q1: 如何通过命令行快速定位app的崩溃问题?
A1: 可通过以下步骤定位:
- Android:使用
adb logcat | grep -i "fatal\|exception\|crash"
过滤崩溃日志,或通过adb shell dumpsys activity top | grep "APP crashed"
查看崩溃状态;导出日志后使用adb logcat -d > crash.log
保存到本地,通过分析堆栈信息定位问题代码。 - iOS:使用
idevicesyslog | grep "Crash"
查看实时崩溃日志,或从设备中获取崩溃报告(路径:~/Library/Developer/CoreSimulator/Devices/{设备ID}/data/Logs/Syslog
),使用atos -o {app.dSYM} -arch {架构} {地址}
解析崩溃地址。
Q2: 如何使用命令行测试app在不同网络环境下的表现?
A2: 可结合网络模拟工具与命令行实现:
- Android:使用
adb shell svc data disable/enable
切换移动数据,adb shell svc wifi disable/enable
切换WiFi;或通过adb shell netcfg
查看网络状态,对于更复杂的网络环境(如弱网、延迟),可使用Charles或Fiddler的命令行工具(如charlescript
)配置代理规则,模拟2G/3G/4G网络。 - iOS:使用
networkLinkConditioner
命令行工具(需Xcode支持)配置网络参数,如sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.networklinkconditioner.plist -dict-add "Active" -bool true
启用弱网模拟,测试过程中结合curl
或ping
命令检查app的网络请求响应时间与错误处理逻辑。