如何在Google Play上测试应用更新?

时间:2017-09-08 09:44:19

标签: android google-play android-testing

我们说我在Google Play商店中安装了1.0版的应用程序。

在新版本(1.1)中,我想用新列升级数据库。

数据库升级是我的应用程序中常见的崩溃,因为以前版本(1.0)中的用户在数据库中没有新列。

我曾尝试使用Google Play商店的测试版测试功能,但问题是没有有效的方法(或者至少我还没有找到),以便执行以下操作:

将当前稳定版本(1.0)安装到测试仪设备,然后将应用程序更新为(1.1) - 假设我们在新更新版本的游戏测试中遇到错误(1.1) ),我修复它(1.2),我想重复这个程序,我想将1.0稳定的应用程序安装到测试人员的设备上,然后我想再次将应用程序更新为1.2(已解决误差)

唯一的方法(就我而言)是从beta测试列表中删除beta测试人员(可能需要数小时才能在Google Play系统中刷新),重新下载1.0应用程序,将测试人员重新添加到beta测试列表,(再次等待数小时)并下载新的1.2应用程序。

是否有更复杂的方法来测试应用版本更新?

提前致谢。

编辑:

如果我可以与其他人测试我的应用程序,这将是很好的。因此,解决方案所需的编程和命令提示符使用越少越好。

7 个答案:

答案 0 :(得分:7)

您不需要Play Store来测试数据库升级 你可以使用模拟器。 Drag& Drop版本1.0(这将安装应用程序),打开应用程序,拖放版本1.1。

没有任何真正的“升级”功能。这只是新版本的安装。

顺便说一下,您可以在SQLiteOpenHelper的{​​{3}}中添加新闻列。

答案 1 :(得分:2)

我将Beta用于iOS和Android应用程序的无痛beta版本。

来自:Overview

  

您希望在整个开发生命周期中尽早提供反馈。使用Beta,您可以轻松地向用户发送测试版。您将自动获取所有构建的使用情况统计信息和稳定性指标,以便了解何时准备发货。

我发现它非常有用,并且与crashlytics一起使用beta进行崩溃报告。以下是优点:

  • 您可以使用Android Automation for Continuous Delivery自动构建,并通过gradle支持beta版。
  • 构建可立即供所有测试人员使用。
  • 所有版本都已存档,可以随时使用。
  • 动态添加QA工程师,跟踪进度,通过创建和共享构建动态添加QA工程师。
  • 使用build(apk)和构建版本访问所有构建发行说明。
  • 此外,如果构建得到QA工程师的批准,可以直接将相同的apk上传到带有来自gradle本身的fastlane的playstore。

答案 2 :(得分:2)

我建议您备份数据,以便轻松测试和调整迁移代码。这仅适用于模拟器或有根设备!

  1. 安装并使用您的" old"应用
  2. 通过adb pull /data/data/com.company.app $LOCALDIR
  3. 保存数据
  4. 通过IDE或adb
  5. 更新到您的新应用版本
  6. 测试迁移
  7. 从现在开始无需再次安装旧应用程序。

    重试迁移: 1. adb push $LOCALDIR /data/data/com.company.app 2.测试您的迁移 3.修复迁移代码并重复

答案 3 :(得分:1)

您真的不需要测试版渠道来测试应用更新。一旦完成测试并希望开始接收用户反馈,您只想使用测试版通道。

要测试应用更新,最基本的方法是...

  1. 卸载您应用的任何当前安装
  2. 安装最新的PlayStore版本
  3. 打开应用程序,登录,执行填充数据库和设置所需的任何内容
  4. 安装新的,更新的App版本。必须使用发布密钥库进行签名,否则更新将失败
  5. 测试应用更新
  6. 修复错误并重复。

    步骤1.是为了确保您的用户可以获得PlayStore版本。卸载是确保清除应用程序数据的最佳方法。然后,您只需按照2.中的任何用户安装应用程序。

    您必须至少打开一次应用程序,否则它将无法运行。使用数据填充您的应用程序,以便您可以正确测试更新。 3.步骤是设置测试数据。

    在步骤4.中请注意,您只需要一个与您的发布密钥库签名的应用,但它仍然可以是 debuggable 。您仍然可以附加调试器,并检查发生了什么,以防出现更严重的错误 如果您正确配置了build.gradle文件,则可以在选择发布版本变体后按Android Studio中的“播放”按钮。您可以在测试时将发布配置修改为可调试,也可以创建第三个已发布签名但可调试的buildType。

    进行有趣的测试。

    如果您正在使用VCS

    如果您使用的是版本控制系统(VCS) - 我真的希望您这样做 - 您也可以构建&在使用最新快照进行更新之前安装以前的版本。同样的步骤适用,仅在步骤2.中您自己构建并安装以前的版本 与使用应用程序的发布版本相比,在某些情况下这可能更容易,因为您不需要访问发布密钥库,您只需使用调试签名的应用程序,而无需更改build.gradle中的任何内容。

    此方法要求您跟踪当前发布的版本,或者您可能会测试错误的更新。所以一定要标记你的版本!

答案 4 :(得分:0)

这非常简单,您可以通过自己更改数据库版本来测试它。您甚至不需要更新清单文件中的版本代码。如果您使用的是SQLite数据库和SQLiteOpenHelper类,那么我的答案是有效的。

首先,在SQLiteOpenHelper类中增加数据库版本。

public DatabaseOpenHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

当您更新构造函数onUpgrade()的版本时,将调用SQliteHelper类的方法。您可以使用println或log方法对其进行测试。

    @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    this.oldVersion = oldVersion;
    this.newVersion = newVersion;

    if(oldVersion == 1 && newVersion == 2) {
          // add columns
    } else if(oldVersion == 2 && newVersion == 3) {
         // Do another stuff
   }
}

您可以在更新之间定义逻辑。例如,用户可能拥有版本1,错过版本2和3并使用版本4的数据库安装更新,如有必要,您也应该考虑。 更新逻辑是您独一无二的。

例如,如果用户的旧版本低于某个版本,并且您希望在特定版本上创建新的数据库或表,则所有用户的版本低于6并且您希望在版本6上删除数据库或表,您可以获取从表到列表或列表或任何数据结构的所有值,然后创建新数据库和/或表,然后从包含对象的列表中移动新值,并将新列的空属性添加到新表。用户不会注意到任何事情,但在幕后您可以毫无问题地更改数据库或表。当我想添加行或重新创建数据库时,我经常使用它。

if (oldVersion == 2 && newVersion == 3) {

        previousMeasures = dbManager.getMeasureListAnglePhoto();
        db.execSQL("DROP DATABASE dbOld.db");
        db.execSQL("DROP TABLE IF EXISTS " + TableConstants.TABLE_ANGLE_PHOTO);

       onCreate(db);

      if (previousMeasures != null) {
        for (Measure measure : previousMeasures) {
            dbManager.addMeasureAnglePhoto(measure);
        }
    }
}

答案 5 :(得分:0)

据我了解,主要问题与数据库无关,但一般而言,“如何检查最终用户从版本1到版本2的更新是否正常?”

我找到了内部应用共享的方法。 在这里您可以放置​​APK版本,为可以访问您的APK的测试用户设置电子邮件。

转到

  

Google Play控制台>开发工具>内部应用共享>上传链接

enter image description here

您可以拖放所需的APK,然后提供链接以供测试用户下载特定的APK。

enter image description here

它完全符合我的预期。

现在,我可以在Android设备上检查对我的用户而言,下一次更新将成功。

0.0.9至0.0.11

0.0.10至0.0.11

答案 6 :(得分:0)

您必须使用以前提供的“工作模式”。

您在androidstudio上编译的每个发行版(在发行版中进行编译的一个版本)和存放在Playstore上的都必须将其保存在本地,您必须跟踪以前所做的所有事情,并且这样做很对使用特殊工具。 我个人使用了“ subversion”应用程序,但是一个和另一个一样好。

1)在设备上手动安装(不使用googleplay)旧的apk(版本发行版,不是调试版本)(从Subversion应用程序中获取)。

2)获取(始终不使用googleplay手动进行)新版本(没有调试版本)并进行安装...更新将开始,您可以完全测试设备上会发生什么。

如果您只想测试数据库的更新部分(了解onUpgrade):

我在我的应用中有一个“按钮”,仅在测试阶段可见,该按钮会启动“还原数据库”;

安装apk NEW并启动任何先前版本的还原(通过按钮测试)(为此,您需要恢复应用程序先前版本的数据库.db文件),这样,OnUpgrade将开始因为您会注意到还原的数据库具有较低的版本。

这是我发现测试更新的唯一方法,而不必疯狂地使用betatester,googleplay,版本代码,上传,下载等,等等……有效!