安装并配置App Tester
您可以在提交并发布应用前,使用App Tester在沙盒模式下对应用的应用内购买 (IAP) 功能进行单元测试。
从亚马逊应用商店将App Tester下载到您的应用所在的Android设备上。App Tester模拟生产环境。
在应用上运行与IAP相关的测试案例,App Tester将生成您使用JSON文件配置的API响应。
App Tester先决条件
您的开发和测试环境必须满足以下先决条件,才能使用App Tester运行测试案例:
- 您的开发环境允许通过ADB和logcat进行日志记录
- 支持SDK版本10或更高版本的Android设备
- 您的应用实现Appstore SDK API方法调用
- 设备上没有SDK Tester。SDK Tester与App Tester或Appstore SDK不兼容。
注意: 如果您的应用面向Android OS 5.0 (Lollipop),请确保您下载的App Tester工具是2014年12月3日之后的版本。
建议您在亚马逊应用商店中为您的应用创建一个或多个可购买商品。这样,您就可以轻松创建所需的JSON文件。
安装App Tester
App Tester是能够在Android移动设备上运行的免费应用。从亚马逊应用商店下载App Tester:
- 卸载用于测试IAP v1.0任何版本的SDK Tester工具。
- 下载App Tester
您也可以直接从亚马逊应用商店将App Tester应用安装到Android移动设备:
- 卸载用于测试IAP v1.0任何版本的SDK Tester工具。
- 在您的Android移动设备上,启动亚马逊应用商店应用。
- 搜索Amazon App Tester。
- 选择Amazon App Tester应用。(请勿选择网页应用测试器,这是不同的应用。)
- 点击完成提示以下载并安装该应用。
创建JSON数据文件
App Tester使用JavaScript对象表示法 (JSON) 文件中存储的数据响应API调用。该文件包含IAP商品的购买数据。
您可以通过开发者控制台自动创建JSON文件。
- 在网页浏览器中,转到开发者控制台中的应用页面。
- 将IAP可购买商品添加到应用中(如果您尚未这样做)。
- 单击链接来下载JSON数据文件。
- 将已下载的文件命名为“amazon.sdktester.json”。
-
将该文件复制到设备文件系统内的
/sdcard/
文件夹中。$ adb push [_您的JSON文件夹_]/amazon.sdktester.json /sdcard/amazon.sdktester.json
/mnt/sdcard/
中。在下载的JSON文件中,一般文件格式如下所示。
{
Item_ID_1:{Item_1_Description},
Item_ID_2:{Item_2_Description},
.
.
.
Item_ID_n:{Item_n_Description}
}
实际的商品描述定义因商品类型而异。JSON文件中商品的顺序并不重要。请注意描述定义之间的逗号“,”。
文件格式和示例: IAP消费品和权利商品
消费品和权利IAP商品描述具有相同的格式。itemType属性指示商品是ENTITLED还是CONSUMABLE。每个可购买项目均与其唯一的标识符相关联,这个标识符称为SKU。
"your_item_SKU":{
"itemType": "ENTITLED|CONSUMABLE",
"price": price,
"title": "item_title",
"description": "item_description",
"smallIconUrl": "full_url_for_small_icon"
}
下面的示例显示了消费品商品和权利商品:
{
"com.amazon.sample.iap.consumables.orange":{
"itemType": "CONSUMABLE",
"price": 10.00,
"title": "橙子",
"description": "一个橙子",
"smallIconUrl": "http://www.amazon.com/orange.jpg"
},
"com.amazon.sample.iap.entitlements.level2":{
"itemType": "ENTITLED",
"price": 10.00,
"title": "关卡2",
"description": "玩关卡2的权利"
}
}
文件格式和示例: IAP订阅商品
订阅商品不同于您可购买的其他类型商品。每个可购买商品均与唯一标识它的、称为SKU的标识符相关联。在购买订阅时,涉及两个SKU。一个是“父SKU”,描述订阅针对什么(如杂志标题)。另一个SKU是“期限SKU”,描述订阅的期限(价格、时长)。期限SKU是客户实际购买的内容。
由于期限SKU是可购买商品,JSON IAP商品描述针对的是该商品。不过,描述还必须包含对父SKU的引用。因此,订阅商品类型包括额外的属性:subscriptionParent
,如下面示例中所示。
"your_terms_SKU":{
"itemType": "SUBSCRIPTION",
"price": price,
"title": item_title,
"description": item_description,
"smallIconUrl": "http://www.amazon.com/kindle.jpg",
"subscriptionParent": "your_parent_SKU"
}
以下是订阅商品描述的示例(注意订阅父SKU)。
{
"com.amazon.sample.iap.subscription.mymagazine.silver": {
"description": "《我的杂志》白银会员月度订阅",
"title": "白银会员月度订阅",
"itemType": "SUBSCRIPTION",
"price": 50.0,
"subscriptionBase": "com.amazon.subs.base",
"subscriptionParent": "com.amazon.subs.silver",
"term": "Monthly",
"freeTrialPeriod": "Monthly",
"promotions": [
{
"promotionType": "试销",
"promotionPlans": [
{
"promotionPrice": 15,
"promotionPricePeriod": "Monthly",
"promotionPriceCycles": 2
},
{
"promotionPrice": 20,
"promotionPricePeriod": "Monthly",
"promotionPriceCycles": 1
}
]
}
]
},
"com.amazon.sample.iap.subscription.mymagazine.gold": {
"description": "《我的杂志》黄金会员月度订阅",
"title": "黄金会员月度订阅",
"itemType": "SUBSCRIPTION",
"price": 80.0,
"term": "Monthly",
"subscriptionBase": "com.amazon.subs.base",
"subscriptionParent": "com.amazon.subs.gold"
}
}
验证您的IAP商品
您可以查看JSON文件的内容。从App Tester主菜单中,点击IAP Items in JSON File(JSON文件中的IAP商品)选项以显示JSON文件中商品数据的人类可读列表。
后续步骤
熟悉App Tester工具和适用于IAP的测试选项。
- 要了解如何使用App Tester,请参阅App Tester用户指南。
- 要了解如何测试您的IAP功能,请参阅设计并运行IAP的测试案例。
Last updated: 2024年11月6日