您可以将命令行界面与 Android 调试网桥 (adb) 实用程序以及命令行工具(例如 curl)一起使用,从而将 Android 应用的测试过程自动化。
然后,您可以将命令行语句整合到脚本和批处理文件中。
开始之前
- 安装
IBM® Rational® Test Workbench Mobile Test Edition 并确保选择了 Extension for
Mobile。有关详细信息,请参阅安装产品软件。
- 在其上安装了 测试工作台 的计算机上下载并安装 Android SDK。
至少,确保安装 Android SDK 工具、Android SDK 平台工具、Android SDK 构建工具和 Android 调试网桥 (adb) 实用程序(如果尚未安装)。Android SDK 的最新下载页面位于 Get the Android SDK,但是位置在将来可能会更改。
- 如果您在 Windows 计算机上工作,请从 http://curl.haxx.se/ 下载 curl。curl 是一个命令行工具,用于传输具有 URL 语法的数据,此处需要此工具来将检测过程自动化。缺省情况下,在大多数 Linux 分发版上随附了 curl。
- 要在 Android 仿真器上进行测试,请设置一个或多个 AVD(Android 虚拟设备)配置。有关详细信息,请参阅使用仿真器。本文还描述了通过硬件加速改善仿真器性能的方式。
- 要在 Android 设备上测试,请转至“设置”并启用“USB 调试”。
然后,通过 USB 电缆将 Android 设备连接到运行 测试工作台 的计算机。因为某些移动设备需要特定的 USB 驱动程序,所以可能需要转至设备供应商的 Web 站点,以下载并安装设备的 USB 驱动程序。有关详细信息,请参阅通过 adb 安装 Android 移动测试客户机。
- 记录受测试应用程序 (AUT) 的测试脚本。
无法自动化测试记录过程。请参阅从 Android 移动测试客户机中记录测试,以了解详细信息。
关于此任务
自动化过程包括以下步骤:
- 检测最新发行版的应用
- 在 Android 设备或仿真器上安装最新发行版的应用
- 安装 移动测试客户机 然后以被动方式将其启动
- 从命令行界面运行测试
过程
- 检测最新发行版的 AUT。
您可以通过将应用程序从移动设备或仿真器上载到 测试工作台 或者通过单击 测试工作台 内的将应用程序添加到列表按钮来手动检测 Android 应用。要将此过程自动化,请使用工具,例如 curl。
- 启动 Rational Test Workbench Eclipse
Client。
- 在测试工作台中,单击显示工作台 URL 图标
,并记录工作台 URL。您需要来自工作台 URL 的 IP 地址和端口以执行下一个步骤。
- 运行以下命令行来检测 AUT:
curl -F "appfile=@MyApp.apk"
-F "appdescription=My App Description"
http://Workbench-URL:port/moeb/service/com.ibm.rational.test.lt.core.moeb.services.buildchain.IBuildChainService/?action=upload
例如:
curl -F "appfile=@MyExpenses.apk"
-F "appdescription=Expense report app"
http://192.0.2.24:7878/moeb/service/com.ibm.rational.test.lt.core.moeb.services.buildchain.IBuildChainService/?action=upload
此步骤生成三个新的 .apk 文件:
- R-原始 apk 名称.apk -
回放就绪应用程序
- T-原始 apk 名称.apk -
应用程序的测试引擎
- I-原始 apk 名称.apk -
记录就绪应用程序
有关 .apk 文件、检测和 Android 构建过程的详细信息,请参阅Android 测试概述。
- 使用 adb 在 Android 设备或仿真器上安装最新发行版的 AUT。必须安装回放就绪的 .apk 文件和测试引擎 .apk 文件。adb 实用程序一般安装于 Android-SDK 安装位置\sdk\platform-tools。
- 在 Eclipse 工作空间中的以下位置找到回放就绪的 .apk 文件和测试引擎 .apk 文件:
your-workspace/.metadata/.plugins/com.ibm.rational.test.lt.models.behavior.moeb/builds/AUT-uid/R-original-apk-name.apk
其中 AUT-uid 是构建文件夹的最后修改子文件夹的文件夹名称。
一般,AUT-uid 是长十六进制数字。
示例:
C:\workspaces\rtw86\.metadata\.plugins\com.ibm.rational.test.lt.models.behavior.moeb\builds\b01714617a0a34788898e05c9696e0bf\R-expenses.apk
您可以在同一位置找到测试引擎应用。只需将 R 前缀替换为 T。
- 从命令行运行以下命令:
adb install -r Workspace/.metadata/.plugins/com.ibm.rational.test.lt.models.behavior.moeb/builds//AUT-uid/R-AUT-name.apk
adb install -r Workspace/.metadata/.plugins/com.ibm.rational.test.lt.models.behavior.moeb/builds//AUT-uid/T-AUT-name.apk
要在多个设备或仿真器上安装 AUT,请使用 -s(序列号)选项,例如:
adb install -s emulator-5556 -r
C:\workspaces\rtw86\.metadata\.plugins\com.ibm.rational.test.lt.models.behavior.moeb\builds\b01714617a0a34788898e05c9696e0bf\R-expenses.apk
adb install -s emulator-5558 -r
C:\workspaces\rtw86\.metadata\.plugins\com.ibm.rational.test.lt.models.behavior.moeb\builds\b01714617a0a34788898e05c9696e0bf\T-expenses.apk
有关详细信息,请参阅 Directing Commands to a Specific Emulator/Device Instance。
- 安装移动测试客户机并以被动方式将其启动。被动方式允许在 测试工作台 中以脚本或批处理文件来控制文本执行。
运行以下 adb 命令来卸载现有版本的移动测试客户机,重新安装更新版本的客户机,然后将客户机设置为被动方式。
adb uninstall com.ibm.rational.test.mobile.android.client.ui
adb install "Eclipse client path/com.ibm.rational.test.mobile.android.client.ui-release.apk"
adb shell am start
-n com.ibm.rational.test.mobile.android.client.ui/.MainActivity -e workbench_url "Workbench-Url" --ez passive_mode “true”
例如:
adb uninstall com.ibm.rational.test.mobile.android.client.ui
adb install "C:\Program Files\IBM\IBMIMShared\com.ibm.rational.test.mobile.android.client.ui-release.apk"
adb shell am start
-n com.ibm.rational.test.mobile.android.client.ui/.MainActivity -e workbench_url "9.44.55.666:7878" --ez passive_mode “true”
- 以命令行方式运行测试。
现在,您可以运行测试。有关以命令行方式运行测试或调度的详细信息,请参阅从命令行运行测试或调度。
注: 您不能在 Mac OS X 上从命令行运行测试。
缺省情况下,测试工作台 选择最适合测试执行需求(Android OS 和 Android API)的第一个已连接设备。要在一个或多个特定设备上运行测试,请使用 adb -s 设备标识选项。
要查找设备标识,请在 测试工作台 中打开“移动设备”编辑器,选择设备,然后在“详细属性”中查找此标识。
您还可以使用变量来选择特定设备。有关详细信息,请参阅定义变量以通过所选移动设备运行测试。
所有测试脚本都链接到特定版本的 AUT。如果您上载新版本的 AUT,那么您应该始终在最新版本的 AUT 上运行测试。有关详细信息,请参阅在测试中定义一个变量以运行最新版本的应用程序。