在Android上安装Squish

Squish可用于测试满足以下先决条件的Android软件

  1. 应用程序必须提供用户界面。
  2. 必须从应用程序创建测试包并安装。

第二个先决条件是安装Java JDK版本7或更高版本,以及可选的Android SDK。

准备工作就绪后,可以使用Squish对应用程序进行测试,无论是使用Android模拟器还是通过USB连接到运行Squish的机器的Android设备。

为了找到一些UI元素,Squish必须使用Java反射。这些代码路径可能会在未来、不受支持的Android版本中中断。因此,从Android-28(Android Pie)开始,一个警告对话框会提醒用户关于这种访问。当然,这将破坏UI测试,因此Squish禁用了警告对话框,但将警告保留在日志中(logcat输出)。

注意:在Windows上,当使用USB测试真实设备时,必须安装来自特定Android设备或型号的制造商的开发和调试专用USB驱动程序。参见OEM USB驱动程序。Android设备在操作系统中出现通常不足以作为可用的设备。

注意:在Linux上,当使用USB测试真实设备时,请确保已正确配置对设备的访问权限。参见使用硬件设备

使Android应用程序可测试

如果包含针对您的应用程序包名设置的SquishHook仪表化的包,则Squish可以记录和回放应用程序的测试脚本。

使用单独的测试包

这是squishide使用的此方法。它将构建一个测试apk,重新签名您的apk,最后安装它们。无论是选择测试套件设置页面的新包还是测试套件设置页面中的管理Android AUTs,还是在服务器设置中。

对于命令行用户,要创建测试包、重新签名并安装,运行

apk-tool -a <path-to-android-sdk> -j <jdk> -pkg <your-apk> -o <temp-dir> -d <device>

其中apk-tool是Squish bin目录中的一个脚本,jdk指向版本7或更高版本的Java JDK的完整路径,以及temp-dirapk-tool写入临时文件的某个目录。

可能省略-a选项,因为Squish包含了所需的工具。当您的应用程序使用来自Android SDK的更新资源时,请使用它。

当两者都存在于您的路径中时,可以省略-j选项。

您可以向apk-tool传递多个-d device对。

注意:由于重新签名,apk-tool安装的软件包可能与先前安装的软件包冲突。要么先手动卸载,要么编辑apk-tool脚本的设置签名字段,以匹配apk使用的密钥库和凭证。

使用内置的SquishHook

这是获取可测试应用程序的另一种方法。除了创建测试apk之外,squish钩也可以内置。在某些工作负载中,这可能会更快地编译/测试周期。

我们将以AddressBook为例,您可以在examples下的android目录中找到它。

该项目创建为

$ android-sdk/tools/android create project --target android-8 \
    --name AddressBook --path AddressBook \
    --activity AddressBook --package com.froglogic.addressbook

要自己编译此应用程序,首先创建一个包含的local.properties文件

sdk.dir=path-to-your-android-sdk

注意:在Windows上,可以使用正斜杠或使用双反斜杠来表示路径。

接下来,创建一个包含以下内容的 project.properties 文件。

target=android-8

在您的 Android SDK 目录中查找可能的 targets,它们是 android-sdk/targets/ 下的子目录。这里我们使用 target android-8

然后创建一个 libs 子目录,并将文件 squishandroid.jar 复制到其中。

要添加对 UiAutomation 的支持,还可以将 jars 测试支持库和 uiautomator 复制到 libs。这两个 jars 可以从已安装 'Android 支持仓库' 的 Android-SDK extras/android/m2repository/com/android/support/test 目录中获取。解压 aar 文件,并将 classes.jar 重命名,以便这两个 jars 不会相互覆盖。

编辑 AndroidManifest.xml 文件,以启用 Squish 仪器化和添加 android.permission.INTERNET 权限。

注意:以上两步已在 AddressBook 应用程序中执行完毕。

要编译应用程序,请执行

$ ant debug

启动设备或模拟器,一旦准备好,通过执行以下命令安装应用程序

$ android-sdk/platform-tools/adb install -r bin/AddressBook-debug.apk

其中 android-sdk 是您 Android SDK 安装的完整路径。

启动 AUT

有关在测试脚本中启动应用程序的更多信息,请参阅 使用 startApplication 与 Android 相关的注意事项

要验证 Squish 是否能识别多个设备和模拟器,请执行

squishrunner --info androidDevices

要查看 Squish 可以使用的所有应用程序,请运行

squishrunner --info androidInstrumentation

注意:必须运行 squishserver 以处理 --info 请求。

©2024 Qt 公司有限公司。本文件中包含的文档贡献是该各自所有者的版权。
此处提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可协议 1.3 版本 的条款进行许可。
Qt 和相应的标志是芬兰及/或世界其他地区的 Qt 公司的商标。所有其他商标均为各自所有者的财产。