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

Android 如何在Google Play上测试应用程序更新?,android,google-play,android-testing,Android,Google Play,Android Testing,比如说,我在谷歌Play商店中安装了1.0版的应用程序 在新版本(1.1)中,我希望使用新列升级数据库 数据库升级是我的应用程序中常见的崩溃,因为以前版本(1.0)中的用户在数据库中没有新列 if (oldVersion == 2 && newVersion == 3) { previousMeasures = dbManager.getMeasureListAnglePhoto(); db.execSQL("DROP DATABASE dbOl

比如说,我在谷歌Play商店中安装了1.0版的应用程序

在新版本(1.1)中,我希望使用新列升级数据库

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

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);
        }
    }
}
我曾尝试使用Google Play Store的beta测试功能,但问题是没有有效的方法(或者至少我还没有找到)来执行以下操作:

将当前稳定版本(1.0)安装到测试仪的设备上,然后将应用程序更新到(1.1)-假设我们在新更新版本(1.1)的播放测试期间出错,我修复了它(1.2),我想重复此过程,我想将1.0稳定应用程序安装到测试仪的设备上,我想再次将应用程序更新为1.2(已解决错误)

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

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

提前谢谢

编辑:


如果我能和其他人一起测试我的应用程序,那就太好了。因此,解决方案所需的编程和命令提示符使用越少越好。

您不需要使用
播放存储来测试数据库升级。
您可以只使用模拟器。拖放版本1.0(这将安装应用程序),打开应用程序,然后拖放版本1.1

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

顺便说一下,您可以在我用于iOS和Android应用程序的无痛beta发行版的
SQLiteOpenHelper

中添加新闻栏

发件人:

在整个开发生命周期中,您希望尽早并经常获得反馈。使用Beta版,您可以轻松地向用户发送Beta版。您将自动获取所有构建的使用情况统计数据和稳定性指标,以便您知道何时可以发布

我发现它非常有用,并将beta与用于崩溃报告的工具结合使用。以下是优点:

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

你真的不需要beta频道来测试应用程序更新。您只希望在完成测试并希望开始接收用户反馈后使用beta频道

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

  • 卸载应用程序的任何当前安装
  • 安装最新的PlayStore版本
  • 打开应用程序,登录,执行任何需要填充数据库和设置的操作
  • 安装新的、更新的应用程序版本。必须使用发布密钥库对此进行签名,否则更新将失败
  • 测试应用程序更新
  • 修正错误并重复


    步骤
    1.
    是确保您获得用户想要的PlayStore版本。卸载是确保清除应用程序数据的最佳方式。之后,您只需像任何用户在
    2.
    中一样安装应用程序

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

    在步骤
    4.
    中,请记住,您只需要使用发布密钥库签名的应用程序,但它仍然可以调试。如果出现更严重的错误,您仍然可以附加调试器并检查发生的情况。
    如果您正确配置了build.gradle文件,您可以在选择发布版本变量后在Android Studio中按下播放按钮。您可以在测试时将发布配置修改为可调试,也可以创建第三个版本签名但可调试的buildType

    有乐趣的测试


    如果您使用的是VCS

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


    这种方法要求您跟踪当前发布的版本,否则您可能会测试错误的更新。因此,请务必标记您的发布

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

  • 安装并使用您的“旧”应用程序
  • 通过adb pull/data/data/com.company.app$LOCALDIR保存数据
  • 通过IDE或adb更新到新的应用程序版本
  • 测试您的迁移
  • 从现在起,无需再次安装旧应用程序

    要重试迁移,请执行以下操作: 1. <代码>亚洲开发银行推送$LOCALDIR/data/data/com.company.app
    2.测试您的迁移
    3.修复迁移代码并重复

    这非常简单,您可以通过自己更改数据库版本来测试它。您甚至不需要更新清单文件中的版本代码。如果您使用的是SQLite数据库和
    SQLiteOpenH,那么我的答案是有效的
    
        @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
       }
    }
    
    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);
            }
        }
    }