开发者控制台

App Tester用户指南

App Tester用户指南

借助App Tester,在将应用发布到亚马逊应用商店前,您可以测试亚马逊应用内购买 (IAP) 功能。在下载、安装并设置App Tester工具后,可以开始测试IAP功能。

如果尚未为应用设置App Tester,请参阅安装并配置App Tester

使用App Tester

Amazon App Tester是一款模拟亚马逊应用商店授权的工具(以前仅由IAP使用)。可以从Amazon App Tester零售页面或从测试用设备上的亚马逊应用商店下载App Tester。

要使用Amazon App Tester测试应用的许可证验证,请执行以下操作:

  1. 通过ADB将计算机连接至Fire TV或Fire平板电脑。有关详细信息,请参阅以下任一内容:

  2. 使用以下命令将应用设置为沙盒模式:

    adb shell setprop debug.amazon.sandboxmode debug
    

    沙盒模式会对通常发送到亚马逊应用商店客户端的调用加以限制,转而将其路由至Amazon App Tester。此模式仅可用于本地测试。

  3. 卸载现有版本的Amazon App Tester,然后在Fire设备上下载并打开最新版本。
  4. 打开Amazon App Tester,然后转至Appstore SDK APIs > DRM API Response Settings(DRM API响应设置)> GetLicense API。可以设置多个许可证选项:

    GetLicense API选项包括:Default, LICENSED、NOT_LICENSED、ERROR_VERIFICATION、ERROR_INVALID_LICENSING_KEYS, EXPIRED和UNKNOWN_ERROR。
    App Tester中DRM API响应设置
  5. 运行包含DRM的Fire TV或平板电脑应用。Amazon App Tester会根据您在Amazon App Tester中的选择,模拟有关用户许可证状态的响应。

    要退出沙盒模式,请运行以下命令:

    adb shell setprop debug.amazon.sandboxmode none
    

选择Appstore SDK API

首次启动App Tester应用时,着陆页会提示您选择Appstore SDK APIs:

Appstore SDK API。用于应用内购买和数字版权管理API的App Tester插件模块。

点击Appstore SDK APIs提示开始操作。 

可用选项列表。请参阅以下编号列表,查看相应的描述。

App Tester会显示Appstore SDK APIs的导航选项列表:

  1. User Account Settings(用户账户设置): 为应用配置用户测试账户。
  2. Subscription Purchase Settings(订阅购买设置): 配置订阅测试案例的条件,例如自动续订和免费试用。
  3. IAP API Response Settings(IAP API响应设置): 为测试案例配置条件和响应。
  4. DRM API Response Settings(DRM API响应设置): 配置DRM测试案例的许可证响应。
  5. Simple Sign-In API Response Settings(简单登录API响应设置): 配置简单登录测试案例的条件。有关详细测试说明,请参阅简单登录文档中的使用App Tester测试您的应用
  6. Manage Sign-In links(管理登录链接): 清除与简单登录关联的账户,以重置测试条件。有关详细信息,请参阅管理关联账户
  7. Notification Settings(通知设置): 启用或禁用添加到下拉通知栏的通知。
  8. Manage Transactions(管理交易)​: 管理应用中有效的IAP交易。
  9. IAP Items in JSON File(JSON文件中的IAP商品): 以人类可读的格式从JSON文件中查看您添加到App Tester中的数据。

管理用户

您可以让用户登录和退出、更改用户以及更改与用户关联的市场。这些选项有助于利用不同市场中的用户来测试各种情景。

要访问用户管理页面,请在App Tester着陆页中选择Appstore SDK APIs,然后点击User Account Settings

可用字段包括:Status、Amazon User ID、User Marketplace和LWAConsentStatus。

登录和退出

要使当前用户在登录和退出状态之间切换,请在Status(状态)下点击Logged in(已登录)或Logged Out(已退出)选项。

更改当前用户

App Tester提供了三个不同的测试用户账户。测试用户名分别为Amazon User 1Amazon User 2Amazon User 3

选择要用于测试的用户ID。

为当前用户更改用户市场

使用App Tester可以在不同的国际市场中测试您的应用。要更改与当前用户关联的市场,请查看User Marketplace(用户市场)并选择新市场。可用市场如下:

  • US:​ 美国
  • CA: 加拿大
  • MX:​ 墨西哥
  • BR:​ 巴西
  • GB:​ 英国
  • DE:​ 德国
  • FR:​ 法国
  • IT:​ 意大利
  • ES:​ 西班牙
  • JP:​ 日本
  • IN:​ 印度
  • AU:​ 澳大利亚

如果已对应用集成快速订阅,则可以通过LWAConsentStatus选项设置同意状态。要对集成进行测试,请将对同意状态的响应设置为CONSENTED(已同意)或UNAVAILABLE(不可用)。如果设置为CONSENTED,则应用应调用Login with Amazon API以获取客户数据并自动让客户登录。如果设置为UNAVAILABLE,则应用应回退到默认登录体验。

配置IAP API响应设置

使用API Response Settings(API响应设置)选项卡来设置对IAP API的测试调用的条件和响应:

可用字段包括:GetProductData API、GetPurchaseUpdates API、GetUserData API、Purchase API和ModifySubscription API。

在指定响应时,以下部分中的Default(默认)只是表示使用现有的默认设置。Default本身不是可用的设置。如果您明确选择了一个值(如SUCCESSFULFAILED),则App Tester将返回所选值。例如,如果JSON文件包含所请求的SKU,则getProductData将返回SUCCESSFUL。如果在User Account Settings中将用户设置为Logged Out,则GetUserData将返回FAILED

下表显示了IAP API的可用响应。

API名称 可用响应
GetProductData Default、SUCCESSFUL、FAILED
GetPurchaseUpdates Default、SUCCESSFUL、FAILED
GetUserData Default、SUCCESSFUL、FAILED
Purchase Default、SUCCESSFUL、FAILED、ALREADY_PURCHASED、INVALID_SKU
ModifySubscription Default、SUCCESSFUL、FAILED、INVALID_REQUEST、INVALID_SKU

启用或禁用通知

使用Notification Settings选项卡可启用或禁用添加到系统通知栏的通知。

下图显示了Notification Settings选项卡:

以下为可用的通知设置:

  • Purchase Updates Notifications(购买更新通知): 默认情况下,若应用加载购买对话但从未调用过getPurchaseUpdates(),亚马逊会发送通知。  应用调用getPurchaseUpdates()一次后,亚马逊会停止发送此通知。使用Purchase Updates Notifications可设置亚马逊是否发送此通知。

  • Notify Fulfillment Notifications(发送履行通知): 默认情况下,如果用户进行了购买,但商品没有在30秒内履行,亚马逊会发送通知。使用Notify Fulfillment Notifications可启用或禁用此通知。

  • Reset Purchase Updates(重置购买更新): 重置指示getPurchaseUpdates()是否已调用的状态。

管理交易

使用Manage Transactions选项卡可查看、取消或删除当前用户的购买交易。在测试权利和订阅时,取消或删除交易是非常有用的工具。此选项卡显示当前用户的所有交易。

一个交易列表,其中每笔交易都包含以下字段:Item type、Sku、Receipt ID、Sold by、Purchased on和Status。

Manage Transactions选项卡包含每个交易的以下信息:

  • Item Type(商品类型): 所购买产品的类型。IAP的有效值为CONSUMABLE、ENTITLEMENT和SUBSCRIPTION。
  • Sku: 商品SKU。
  • Receipt Id(收据ID): 交易的唯一标识符。
  • Sold By(销售方):​ 销售商品的应用。
  • Purchased On(购买日期):​ 购买商品的日期。
  • Status(状态): 交易状态。有效值为:PURCHASED、CANCELED或PENDING。这些App Tester值分别对应IAP API值FULFILLED、UNAVAILABLE和PENDING。

当应用调用PurchasingService.notifyFulfillment(receiptId, FulfillmentResult.FULFILLED)时,“Manage Transactions”部分会显示收据,其状态为: FULFILLED(已履行)。

 在Manage Transactions选项卡中,您可以执行以下任务:

  • 刷新当前用户的交易列表。
  • 删除当前用户的所有交易。
  • 取消单个交易。
  • 删除单个交易。

查看JSON文件中的IAP商品

要提供简单方法来查看您在安装并配置App Tester中配置的JSON文件中的IAP商品,请点击IAP Items in JSON File(JSON文件中的IAP商品)选项卡。如果已正确添加有效JSON文件,则App Tester会解析此文件的内容并将其显示在此选项卡下。

如果尚未正确添加有效JSON文件,则此选项卡会显示一条错误消息,或指明JSON文件不存在。

模拟您用户的体验

除了为API请求提供响应,App Tester还可以像已发布的上线应用一样,显示购买流程对话框。此功能的好处是,对话框可以帮助您评估应用购买过程的用户体验。

App Tester会为每个购买请求显示两个插屏对话框。第一个对话框是显示购买价格和其他信息的详情屏幕,如以下IAP示例所示:

选项包括:Cancel和Get Item。
应用详情屏幕

第二个对话框是用户必须通过点击右上角的“X”按钮来手动关闭的“感谢”屏幕,如以下IAP示例所示:

谢谢!您的订单已完成。
“感谢”屏幕

日志记录

App Tester使用Logcat工具来捕获有关应用交易以及其他API交互的详细信息。使用Logcat查看在测试应用时生成的日志:

  1. 将包含应用和App Tester的Android设备连接到运行Android调试桥 (ADB) 的计算机。
  2. 搜索标签“AmazonAppTester”以查看App Tester日志条目。

如果使用Eclipse DDMS开发环境,可以通过在Logcat选项卡中的筛选条件文本区域中输入tag:AmazonAppTester来筛选App Tester生成的日志条目。

使用App Tester测试DRM

需要安装Amazon App Tester才能在设备中测试DRM。要测试应用中的DRM功能,就必须使用Amazon App Tester。

Amazon App Tester中提供了名为“DRM API Response Settings”的选项卡,使您能够模拟不同许可证状态的响应。

要使用Amazon App Tester测试应用的许可证验证,请在应用的AndroidManifest.xml文件中添加以下drm.ResponseReceiver。如果您的应用以Android 12或更高版本为目标,则必须在MainActivityResponseReceiver中显式地将android:exported设置为true,如下面的示例所示:

 <application>
 ...
    <activity android:label="@string/app_name" android:name="com.amazon.sample.drm.MainActivity" 
                android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver android:name = "com.amazon.device.drm.ResponseReceiver" android:exported="true" 
                android:permission = "com.amazon.drm.Permission.NOTIFY" >
        <intent-filter>
            <action android:name = "com.amazon.drm.NOTIFY" />
        </intent-filter>
    </receiver>
 ...
 </application>

DRM示例应用中也提供了更多详情。


Last updated: 2023年12月19日