引言
移动自动化测试通常涉及使用各种工具和框架来模拟用户交互、运行测试脚本、收集测试结果等
文章目录
一、移动自动化测试常见命令
移动自动化测试通常涉及使用各种工具和框架来模拟用户交互、运行测试脚本、收集测试结果等。以下是一些在移动自动化测试中常用的命令
3.1 Appium
Appium 是一个开源的自动化测试框架,用于测试 iOS 和 Android 应用
- 启动 Appium 服务:
appium
- 使用 Appium Inspector 来检查应用的界面元素:
appium-inspector
3.2 Selenium WebDriver
Selenium WebDriver 用于编写自动化测试脚本。
- 启动浏览器(适用于 Web 应用测试):
from selenium import webdriver
driver = webdriver.Chrome() # 或者使用其他浏览器
- 执行自动化测试脚本:
# 测试脚本代码
3.3 UI Automator
UI Automator 是一个用于 Android 应用的 UI 测试框架
- 运行 UI Automator 测试:
adb shell uiautomator runtest <test-apk-file> -c <test-class> [options]
3.4 Espresso
Espresso 是一个 Android UI 测试框架
- 运行 Espresso 测试:
./gradlew connectedAndroidTest
3.5 Calabash
Calabash 是一个适用于 iOS 和 Android 应用的验收测试框架
- 运行 Calabash 测试:
calabash-android run <apk-file> [options]
calabash-ios sim <app-bundle> [options]
3.6 XCUITest (iOS)
XCTest 是苹果提供的 iOS 应用测试框架
- 运行 XCUITest:
xcodebuild -scheme <scheme-name> -sdk <sdk> -destination 'platform=iOS Simulator,name=<device-name>' test
3.7 ADB 命令(通用)
- 安装测试包:
adb install <apk/ipa>
- 卸载测试包:
adb uninstall <package-name>
- 运行 monkey 测试:
adb shell monkey -p <package-name> -v <event-count>
这些命令需要在终端或命令提示符下运行,并且可能需要适当的权限和环境配置。自动化测试的详细步骤和脚本将取决于所使用的测试框架和测试用例的具体要求。
3.7 pm(package manager)
在移动自动化测试中,pm
命令通常指的是 Android 平台上的 package manager
(包管理器)命令,它允许你执行与设备上应用程序包相关的操作。以下是一些常用的 pm
命令,可以在 Android 设备或模拟器的 shell 中执行
3.7.1 列出安装的包
- 列出所有安装的包:
pm list packages
- 列出特定包名的包:
pm list packages -f
- 列出系统包:
pm list packages -s
- 列出第三方包:
pm list packages -3
3.7.2 安装和卸载包
- 安装 APK:
pm install <path-to-apk>
- 卸载包:
pm uninstall <package-name>
- 卸载包(保留数据和缓存):
pm uninstall -k <package-name>
3.7.3 清除数据和应用缓存
- 清除应用数据:
pm clear <package-name>
3.7.4 其他命令
- 启动应用:
pm start -n <package-name>/<activity-name>
- 显示包信息:
pm dump <package-name>
- 查看包的权限:
pm list permissions -d -g -f
- 设置安装位置:
pm set-install-location [0/auto, 1/internal, 2/external]
- 查看安装位置:
pm get-install-location
3.7.5 注意点
这些命令通常需要在具有相应权限的环境中执行,例如通过 adb shell
命令进入 Android 设备的 shell 环境。例如,要查看所有安装的包,可以使用以下命令:
adb shell pm list packages
使用这些命令时,请确保遵循相关的操作指南和权限要求
3.8 am(activity manager)
在移动自动化测试中,am
命令指的是 Android 平台上的 activity manager
命令,它允许你执行与设备上应用程序的活动(Activities)、服务(Services)、广播接收器(Broadcast Receivers)和内容提供者(Content Providers)相关的操作。以下是一些常用的 am
命令,可以在 Android 设备或模拟器的 shell 中执行
3.8.1 启动活动
- 启动一个特定的活动:
am start [-n <component>] [-a <action>] [-d <data-uri>] [-t <mime-type>]
例如:
am start -n com.example.app/.MainActivity
3.8.2 结束活动
- 结束一个特定的活动:
am force-stop <package-name>
3.8.3 启动服务
- 启动一个服务:
am startservice [-n <component>]
例如:
am startservice -n com.example.app/.MyService
3.8.4 停止服务
- 停止一个服务:
am stopservice [-n <component>]
例如:
am stopservice -n com.example.app/.MyService
3.8.5 发送广播
- 发送一个广播:
am broadcast [-a <action>] [-d <data-uri>] [-t <mime-type>] [-c <category> [-c <category>] ...]
[-e <extra-key> <extra-value>]
例如:
am broadcast -a com.example.app.ACTION_MY_BROADCAST
3.8.6 查看任务
- 查看当前任务:
am stack list
3.8.7 其他命令
- 显示所有正在运行的应用程序:
am monitor
- 清除应用数据:
am clear-data <package-name>
- 查看正在运行的服务:
am list services
- 查看设备上安装的所有广播接收器:
am list receivers
- 查看设备上安装的所有内容提供者:
am list providers
这些命令通常通过 adb shell
来执行,例如:
adb shell am start -n com.example.app/.MainActivity
在使用这些命令时,需要替换 <package-name>
, <component>
, <action>
, <data-uri>
, <mime-type>
, <category>
, <extra-key>
, <extra-value>
等占位符为实际的参数值。这些命令对于自动化测试非常有用,可以帮助模拟用户与应用的交互,验证应用的行为
3.8 dumpsys
dumpsys
是 Android 系统中的一个命令行工具,它用于转储系统服务的状态信息。在移动自动化测试中,dumpsys
命令非常有用,因为它可以提供有关系统服务、应用程序和设备状态的大量详细信息。以下是一些常用的 dumpsys
命令及其在自动化测试中的应用
3.8.1基础命令
- 获取所有系统服务的列表:
dumpsys -l
- 获取特定系统服务的状态信息:
dumpsys <service-name>
3.8.2 应用和服务信息
- 获取特定应用包的信息:
dumpsys package <package-name>
- 获取特定应用的内存使用情况:
dumpsys meminfo <package-name>
- 获取特定应用的进程信息:
dumpsys activity <package-name>
- 获取特定服务的信息:
dumpsys service <service-name>
3.8.3 界面和窗口管理
- 获取窗口管理器信息:
dumpsys window
- 获取特定窗口的信息:
dumpsys window windows
- 获取当前焦点窗口的信息:
dumpsys window focus
3.8.4 网络和连接
- 获取网络状态信息:
dumpsys netstats
- 获取网络连接信息:
dumpsys connectivity
3.8.5 电池和电源管理
- 获取电池信息:
dumpsys battery
- 获取电源管理信息:
dumpsys power
3.8.6 输入和手势
- 获取输入管理器信息:
dumpsys input
- 获取手势导航信息:
dumpsys window policy
3.8.7 其他
- 获取设备CPU信息:
dumpsys cpuinfo
- 获取设备存储信息:
dumpsys storage
- 获取系统设置信息:
dumpsys settings
3.8.8 总结
在自动化测试中,dumpsys
命令可以用来验证应用是否按预期运行,检查资源使用情况,诊断性能问题,以及收集测试过程中的各种数据。例如,你可以使用 dumpsys meminfo
来检查应用在测试过程中的内存使用情况,从而帮助识别内存泄漏。
要执行这些命令,通常需要通过 adb shell
来访问设备:
adb shell dumpsys meminfo <package-name>
请记住,使用 dumpsys
需要相应的权限,通常这些命令在具有 root 权限的设备上或者在开发者选项中开启了 USB 调试和授权调试功能的设备上才能执行
3.9 input
在移动自动化测试中,input
命令是 Android 平台上的一个工具,用于模拟用户输入,如按键、触摸屏幕、滑动等操作。这个命令可以在 Android 设备或模拟器的 shell 中执行,通常与 adb
命令配合使用。
以下是一些常用的 input
命令及其在自动化测试中的应用:
3.9.1 模拟按键事件
- 模拟按下按键(例如,模拟按下“HOME”键):
input keyevent <keycode>
例如:
adb shell input keyevent 3 # 按下HOME键
其中 <keycode>
是按键码,Android 定义了一系列的按键码,例如:
- 3: HOME
- 4: BACK
- 26: POWER
- 82: MENU
- 85: SEARCH
3.9.2 模拟触摸屏幕
- 模拟点击屏幕上的特定位置(使用屏幕坐标):
input tap <x> <y>
例如:
adb shell input tap 100 200 # 点击屏幕上坐标为(100, 200)的位置
3.9.3 模拟滑动屏幕
- 模拟从一点滑动到另一点:
input swipe <x1> <y1> <x2> <y2> <duration>
例如:
adb shell input swipe 300 1000 300 500 # 从(300, 1000)滑动到(300, 500)
<duration>
是滑动操作持续的毫秒数。
3.9.4 输入文本
- 向当前焦点输入文本:
input text <string>
例如:
adb shell input text "Hello, World!" # 输入文本"Hello, World!"
3.9.5 模拟长按
- 模拟长按屏幕上的特定位置:
input swipe <x> <y> <x> <y> <duration>
例如,长按坐标(100, 200) 2秒:
adb shell input swipe 100 200 100 200 2000
3.9.6 模拟旋转屏幕
- 模拟屏幕旋转:
input keyevent 26 # 旋转屏幕(如果支持)
3.9.7 其他输入事件
- 模拟滚轮事件:
input roll <dx> <dy>
- 模拟鼠标事件:
input mouse <action> [<x> <y>]
3.9.8 注意点
使用这些命令时,请确保坐标值 <x>
和 <y>
符合设备的屏幕分辨率,并且当前界面允许相应的输入操作。这些命令在自动化测试中非常有用,可以模拟用户交互,验证应用的响应