启用 Android 应用程序的远程内容调试
支持测试未注入代码的混合 Android 应用程序,前提是该应用开启了远程内容调试功能。在测试非代码注入的混合 Android 应用程序之前,请检查应用程序以查看是否已启用远程内容调试。有关 WebViews 远程调试的更多详细信息,请参阅 Chrome Developers 文档。
如果尚未启用远程内容调试,则可以将服务器设置为在应用程序上载到服务器后自动启用此功能。或者,使用 Android 启用程序工具手动启用远程内容调试。
自动启用远程内容调试
Android 端混合应用自动开启远程调试的设置使用 OpenText Functional Testing Lab 的应用程序代码注入机制,并需要配置几个设置。
虽然使用了应用程序代码注入机制,但与注入代码的应用程序不同,在应用程序中没有添加录制和重播库。
要启用自动远程内容调试,请执行下列操作:
- 在服务器计算机上,打开服务器属性文件:
- 要进行活动远程调试,请添加以下行:
APP_UPLOAD_ENABLE_REMOTE_DEBUGGING=true
- 在OpenText Functional Testing Lab 控制台中,打开管理
> 设置。在 Android 的代码注入服务部分中,设置以下内容:
- 代码注入服务 . 使用的计算机的 IP 地址和端口预留者默认情况下, Android 软件包服务计算机设置为 localhost。
- 根据连接是否安全,将协议类型设置为 http 或 https。
- 将服务器放到适当的位置。
- 使用仅需要私钥的服务的应用程序: 设置应用程序签名服务。
如果您的 Android 应用使用的是需要提供私有密钥的服务 (如 Google Maps 或身份验证服务),则管理员需要设置为自动重新签署应用。这是通过配置代码注入程序属性文件来完成的。
您还可以启用远程调试,手动对应用程序进行签名,然后将它们上载到实验室。有关详细信息,请参阅手动启用远程内容调试。
要配置服务器以使用您自己的证书自动签署应用程序,请执行下列操作:- 打开服务器计算机上的代码注入程序属性文件:
Linux:< 服务器安装文件夹的路径 >/server/conf/packager.properties
Windows:< 服务器安装文件夹的路径 > \server\conf\packager.properties
- 输入以下信息:
ANDROID_KEYSTORE_PATH =密钥库的路径,它是包含私钥集的二进制文件。
ANDROID_KEY_PASSWORD = 用于签署应用程序的私钥的密码。
ANDROID_STORE_PASSWORD =密钥库的密码。
ANDROID_ALIAS_NAME =用于标识密钥库中私钥条目的名称。
注: 全部需要四个值。如果任何值保留为空,则该过程将失败。
- 打开服务器计算机上的代码注入程序属性文件:
OS | 位置 |
---|---|
Linux: | < 服务器安装文件夹的路径 >/server/conf/server.properties
|
Windows | < 服务器安装文件夹的路径 > \server\conf\server.properties
|
手动启用远程内容调试
您可以使用 Android 启用程序工具从命令行手动启用应用程序中的远程内容调试。
先决条件:
代码注入进程应在满足以下要求的计算机上运行:
- 已安装 Java Runtime Environment (v7.X 或更高版本)
- JRE _ HOME 环境变量已定义
- 1.5GB 免费 RAM (推荐)
要启用远程内容调试,请执行下列操作:
-
复制以下测试工具计算机:
-
Android Tools 文件夹。此文件夹位于OpenText Functional Testing Lab 服务器计算机上的 server 文件夹中。
- 应用程序 (.apk 文件)
-
-
运行应用程序上的启用程序。
-
若要用自己的 Android 证书对应用程序进行签名,请从命令行运行以下命令:
Windows
<Path to AndroidTools folder>\MCAndroidEnabler.bat –keystore <Android key store path> –alias <Android alias name> –storepass <Android store password> -keypass <Android key password> –webdriver <path to your application>
Linux
<Path to AndroidTools folder>/MCAndroidEnabler.sh –keystore <Android key store path> –alias <Android alias name> –storepass <Android store password> -keypass <Android key password> –webdriver <path to your application>
- keystore 包含您的私钥集的密钥库文件的路径。 - alias 用于标识密钥库中私钥条目的名称。 - storepass 密钥库的密码。 - keypass 用于签署应用程序的私钥的密码。 - webdriver 启用远程内容调试。 - removeSecuredLayout 当设置时,从任何检测到的 Window.setFlag ()调用中移除LayoutParams.FLAG _ SECURE 标志。 该过程由数量步骤组成。等待步骤成功完成。
结果是一个使用您的 Android 证书签名的文件。例如,在my-android- 应用程序 .apk上运行上述命令将在原始文件所在的同一文件夹中生成文件: my-android- 应用程序 .apk.signed.apk 。
上传生成的 *.signed.apk 文件至实验室。
-
要使用默认调试证书对应用程序进行签名,请从命令行运行以下命令:
Windows
<Path to AndroidTools folder>\MCAndroidEnabler.bat –webdriver –signdebug <path to your application>
Linux
<Path to AndroidTools folder>/MCAndroidEnabler.sh –webdriver –signdebug <path to your application>
- webdriver 启用远程内容调试。 - signdebug 使用调试证书为应用程序签名。 - removeSecuredLayout 当设置时,从任何检测到的 Window.setFlag ()调用中移除LayoutParams.FLAG _ SECURE 标志。 该过程由数量步骤组成。等待步骤成功完成。
结果是一个使用默认调试证书签名的文件。例如,在 my-android-app.apk 上运行上述命令将在原始文件所在的同一文件夹中生成文件 my-android-app.apk.signed.debug.apk。
上载生成的 *.signed.debug.apk 文件到OpenText Functional Testing Lab。
-
故障排除
在以下情况下远程调试可能不会成功:
-
代码注入服务的参数未定义或参数不正确。检查在管理 > 设置页中为代码注入服务定义的设置。如果使用自己的密钥对 Android 应用程序进行签名,请检查服务器计算机上应用程序代码注入程序文件中的详细信息是否正确。
-
Android 启用器工具版本与服务器上安装的OpenText Functional Testing Lab 版本不兼容。参考 ADM Marketplace,了解您使用的是最新版本。
-
您尝试上载不支持的应用程序。可以上载的最大文件大小为 1GB。