HarmonyOS鸿蒙Next建议AGC Testing API补充"查询测试版本列表/详情"接口

HarmonyOS鸿蒙Next建议AGC Testing API补充"查询测试版本列表/详情"接口 我们在用 AGC Testing API 做 HarmonyOS 应用的邀请测试 CI 自动化分发,流程是:

新建测试版本 → 添加软件包 → 更新测试版本(绑包+绑群组)→ 提交测试版本

整体流程是通的,Service Account 鉴权也已经接入。但在做"幂等/清理"时遇到一个能力空缺,想反馈一下。

一、业务场景

CI 触发后会自动调 Testing API 创建并提交一个新的邀请测试版本。我们希望在提交新版本之前,先把"上一次还在审核中"的测试版本清理掉,避免在 AGC 后台堆积,也方便排查问题。AGC 文档中已经写明邀请测试同时在架的版本数有上限(邀请测试 3 个 / 公开测试 1 个 / 总数 100),所以这种"先清理再提交"的需求是普遍的。

二、当前 Testing API 提供的能力

Testing API 参考文档(agc-help-test-api-reference)目录下目前共 16 个接口,覆盖了:

  • 测试版本:新建、更新、提交、停止、删除
  • 测试包:添加软件包
  • 测试群组:新增 / 查询列表 / 删除
  • 邀请码:生成 / 查询 / 停止
  • 其它:上架自检报告、发送邀请测试通知、更新生效版本、更新测试时间和额度

清理流程已经有 POST /api/publish/v2/test/version/stop 和 DELETE /api/publish/v2/test/app/version 这两个接口,能够停止并删除指定 versionId 的测试版本。

三、缺失的接口

但 Testing API 中没有"查询测试版本列表"或"查询测试版本详情"接口。这导致:

  1. CI 在新一轮 pipeline 跑起来时,并不知道上一轮提交的 versionId 是哪个(pipeline 是干净环境,不会保留上次产物)。
  2. 即便我们想缩小范围、只清理"审核中"状态的版本,也没接口可以读到当前测试版本的 auditStatus / gmtSubmit 等元数据。
  3. 结果是开发者必须自己额外维护一个"上一次 versionId"的持久化存储(CI Variable / 外部对象存储 / 自建 DB 等),相当于在 AGC 之外重建一份测试版本索引,对接成本和易错性都比较高。

四、对比

AGC 同套体系内的其它对象多数都有列表/详情接口可以反查,比如 Testing API 里"测试群组"就有 查询测试群组列表 接口,“邀请码"也有 查询测试群组邀请码;Publishing API 也有应用信息查询。唯独"测试版本"这一核心对象只能"按 versionId 操作”,不能"按条件查询",能力上是不闭环的。

五、期望

希望 Testing API 能补充以下两个接口的任意一个,优先级前者更高:

  1. 查询测试版本列表:按 appId + 状态/类型/时间范围分页返回 versionId / auditStatus / releaseType / testType / gmtCreate / gmtSubmit / 绑定的 pkgId / groupInfos 等关键字段。
  2. 查询测试版本详情:按 appId + versionId 返回完整字段,用来确认状态后再 stop/delete。

补齐之后,"先清理在审版本,再提交新版本"就能在 AGC API 内部闭环,CI 不需要再维护额外索引,也能避免误删处于其它状态(已发布/已驳回等)的版本。

环境信息:

  • AGC 鉴权方式:Service Account
  • 测试发布方式:HarmonyOS 测试发布方式(releaseType=6, API≥10)
  • 测试类型:邀请测试(testType=3)
  • 参考文档:agc-help-test-api-reference-0000002271000709

谢谢。


更多关于HarmonyOS鸿蒙Next建议AGC Testing API补充"查询测试版本列表/详情"接口的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

✅ 解决方案:使用现有的Publishing API接口

1. 接口信息

接口名称:查询应用所有版本类型的版本列表

文档地址https://developer.huawei.com/consumer/cn/doc/AppGallery-connect-References/agcapi-query-brief-info-list-0000002117383437

接口URLPOST https://connect-api.cloud.huawei.com/api/publish/v2/app/versions/queryBriefInfoList

2. 接口功能

此接口用于获取HarmonyOS应用/元服务的所有版本类型(含商用版本和测试版本)的版本列表,帮助开发者了解版本发布状态。完全符合您提出的业务需求。

3. 关键返回字段(满足您的需求)

根据文档描述,该接口返回的数据包含:

  • versionId - 版本ID(用于后续stop/delete操作)
  • auditStatus - 审核状态(可筛选"审核中"的版本)
  • releaseType - 发布类型(可区分HarmonyOS应用)
  • testType - 测试类型(可区分邀请测试/公开测试)
  • gmtCreate/gmtSubmit - 创建/提交时间(用于时间范围筛选)
  • pkgId - 绑定的软件包ID
  • groupInfos - 绑定的测试群组信息

4. 您的具体使用场景解决方案

// CI流程伪代码
async function cleanupPreviousTestVersions(appId) {
  // 1. 调用Publishing API查询所有版本
  const versions = await queryBriefInfoList({
    appId,
    releaseType: 6, // HarmonyOS
    testType: 3,    // 邀请测试
    auditStatus: 1  // 审核中状态
  });
  
  // 2. 筛选并清理上一次的测试版本
  for (const version of versions) {
    if (version.gmtSubmit < currentTime - threshold) {
      await stopTestVersion(version.versionId); // 调用Testing API停止
      await deleteTestVersion(version.versionId); // 调用Testing API删除
    }
  }
  
  // 3. 提交新版本
  await submitNewTestVersion();
}

更多关于HarmonyOS鸿蒙Next建议AGC Testing API补充"查询测试版本列表/详情"接口的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢回复,这个接口原来没有在上面的分组中。已经解决问题。

顺带纠正一下主帖,测试版本可以同时存在 100 个。

另外的议题帮忙参考一下:建议明确 Testing API(含邀请码相关接口)的鉴权策略,并评估补充 Service Account 鉴权支持

开发者您好,可以通过提交工单向工程师进行反映

支持一下

AGC Testing API目前缺少直接查询测试版本列表及详情的接口,导致开发者难以在CI/CD流水线中动态获取版本信息。通常需依赖控制台手动操作或第三方脚本管理,降低了测试自动化效率。该接口的补充将有助于实现版本状态实时监测与自动化测试流程的无缝集成。

当前 Testing API 确实没有“查询测试版本列表”或“按条件获取详情”的接口,导致 CI 环境无法反向检索上次提交的 versionId。对于邀请测试这种存在在架数量限制的场景,缺少查询能力会让清理逻辑必须依赖外部持久化,使用成本明显偏高。同类产品中群组、邀请码都有列表或详情接口,测试版本作为核心对象的查询能力闭环确实有缺口。
这个需求已记录。我们会将场景和优先级同步给 AGC 相关团队,推动补充查询接口,优先支持按 appId 分页获取版本列表及关键状态字段。

回到顶部