使用App Tester测试您的应用
App Tester是一种工具,允许在集成期间测试应用中的Appstore SDK功能,而无需向亚马逊应用商店发布更改。App Tester工具是一个APK,您可以在测试设备上安装它,它可以模拟所有Fire TV和平板电脑中内置的标准亚马逊应用商店客户端APK。App Tester可处理您的应用请求,并可用于测试作为Appstore SDK一部分提供的所有3个主要功能(IAP、DRM和SSI)。App Tester保留自己的本地数据存储,通过它为所有请求提供服务,而不会影响测试账户或设备的生产状态。
有关如何使用App Tester测试应用内购买(IAP) API的更多详细信息,请参阅App Tester用户指南。
App Tester APK包含在您的亚马逊联系人与您共享的工件包中。然而,它通常是通过亚马逊应用商店分发的。请访问Amazon App Tester链接,下载适用于您设备的APK。
使用App Tester进行测试
应用必须激活沙盒模式才能使用App Tester进行测试。使用ADB连接到设备(Fire TV/Fire平板电脑),并运行以下命令。
adb shell setprop debug.amazon.sandboxmode debug
安装提供给您的App Tester签名APK,然后打开App Tester。要配置测试,请单击Appstore SDK API。
在Appstore SDK API部分,使用Simple Sign-in API Response Settings(简单登录API响应设置)和Manage Simple Sign-in links(管理简单登录关联)来配置和运行SSI相关测试。
简单登录API响应设置
本部分允许您控制App Tester在沙盒测试模式下应向您的应用返回的响应。App Tester将返回一个SUCCESSFUL
响应,无需手动干预。简单登录API(getUserAndLinks()
和linkUserAccount()
)依赖于简单登录后端服务。简单登录API(getUserAndLinks()
和linkUserAccount()
)依赖于简单登录后端服务。可以使用以下方法配置这些API的响应:
GetUserAndLinks API
当您在沙盒模式下测试期间从应用设置账户关联时,关联账户的状态将存储在App Tester的本地数据库中。默认情况下,对getUserAndLinks() API
的响应基于该数据库中账户关联的当前状态。
要测试您的应用如何处理特定场景,请通过配置响应来查看您的API如何以特定输出进行响应。您可以将下面的屏幕用作视觉指南。有关请求状态值的列表,请参阅RequestId
。
使用模拟响应进行测试
App Tester还允许配置getUserAndLinks()
,以便在不引用本地数据库的情况下,使用即时生成的模拟响应进行响应。如果您不想在测试getUserAndLinks()
API之前完成设置关联账户的额外工作,那么这将非常有用。
选中“Mocked response for GetUserAndLinks”(GetUserAndLinks的模拟响应)复选框以启用此选项(请参阅下面的屏幕截图)。您可以根据用户期望返回的关联账户的数量来选择用户希望接收的模拟响应的类型。
- 默认情况下,选择“No linked accounts”(无关联账户),这将导致响应中不返回任何关联账户。
- 当选择“One linked account”(一个关联账户)时,将返回包含单个预定义关联账户数据的响应。
- 当选择“Two linked accounts”(两个关联账户)时,将返回包含两个预定义关联账户数据的响应。
选择此选项不会清除存储在App Tester本地数据库中的任何测试数据。取消选中此复选框将允许您使用存储在App Tester中的测试数据恢复测试。
LinkUserAccount API
App Tester使用存储在其本地数据库中的关联令牌在本地处理账户关联请求。
与使用getUserAndLinks()
API测试应用如何处理特定场景类似,您可以通过配置您想要接收的响应来设置linkUserAccount()
API,从而以您期望的输出响应(请参阅下面的屏幕截图)。有关请求状态值的列表,请参阅RequestStatus
。
由于App Tester没有连接到亚马逊应用商店云,因此它无法访问应用的亚马逊应用商店私钥。因此,它无法解密新账户关联请求中提供的linkSigningKey
。因此,在沙盒模式下从getUserAndLinks()
API返回的SSI令牌将使用任意私有签名密钥进行签名。这些令牌将无法在您的云中使用应用的实际亚马逊应用商店公有密钥进行验证。
在开发的早期阶段,使用App Tester对Appstore SDK集成进行单元测试,并利用动态应用测试(LAT)进行端到端测试。要使用App Tester测试端到端流,请对后端进行额外更改,以区分来自应用调试版本的身份验证请求,并跳过SSI令牌签名验证。
App Tester故障排除
如果您怀疑没有为应用的SSI API调用正确调用App Tester,请检查以下方面。
- 您进行测试时使用的是APK的调试版本。App Tester只能用于您应用的调试版本。
- 您不是Appstore SDK的现有用户,并且以前安装过旧版本的App Tester。要解决此问题,请卸载App Tester并安装最新版本。
-
已成功在设备上激活沙盒模式。您可以通过Appstore SDK中的
SimpleSignInService
类查询getSDKMode()
方法,以确定Appstore SDK的当前模式。此方法可能的返回值为:SANDBOX
PRODUCTION
UNKNOWN
SDK模式应当为SANDBOX
。如果SDK模式返回UNKNOWN
。这表示应用中的Appstore SDK初始化存在问题。检查您是否已调用SimpleSignInService#registerResponseHandler()
来注册应用上下文和响应处理程序。请参阅步骤2: 注册具体实现。
管理关联账户
您可以删除存储在App Tester本地数据库中的关联账户。单击“Unlink linked accounts”(将关联账户取消关联)以清除当前用户的所有关联账户。
模拟您用户的体验
App Tester使用用户同意和登录屏幕的模拟实现。尽管这些屏幕在应用的生产屏幕中显示的详细信息相同,但与应用屏幕相比,这些屏幕的观感截然不同,而且没有经过修饰。