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 中没有"查询测试版本列表"或"查询测试版本详情"接口。这导致:
- CI 在新一轮 pipeline 跑起来时,并不知道上一轮提交的 versionId 是哪个(pipeline 是干净环境,不会保留上次产物)。
- 即便我们想缩小范围、只清理"审核中"状态的版本,也没接口可以读到当前测试版本的 auditStatus / gmtSubmit 等元数据。
- 结果是开发者必须自己额外维护一个"上一次 versionId"的持久化存储(CI Variable / 外部对象存储 / 自建 DB 等),相当于在 AGC 之外重建一份测试版本索引,对接成本和易错性都比较高。
四、对比
AGC 同套体系内的其它对象多数都有列表/详情接口可以反查,比如 Testing API 里"测试群组"就有 查询测试群组列表 接口,“邀请码"也有 查询测试群组邀请码;Publishing API 也有应用信息查询。唯独"测试版本"这一核心对象只能"按 versionId 操作”,不能"按条件查询",能力上是不闭环的。
五、期望
希望 Testing API 能补充以下两个接口的任意一个,优先级前者更高:
- 查询测试版本列表:按 appId + 状态/类型/时间范围分页返回 versionId / auditStatus / releaseType / testType / gmtCreate / gmtSubmit / 绑定的 pkgId / groupInfos 等关键字段。
- 查询测试版本详情:按 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
✅ 解决方案:使用现有的Publishing API接口
1. 接口信息
接口名称:查询应用所有版本类型的版本列表
接口URL:POST 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- 绑定的软件包IDgroupInfos- 绑定的测试群组信息
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 鉴权支持
开发者您好,可以通过提交工单向工程师进行反映
统一
支持一下
当前 Testing API 确实没有“查询测试版本列表”或“按条件获取详情”的接口,导致 CI 环境无法反向检索上次提交的 versionId。对于邀请测试这种存在在架数量限制的场景,缺少查询能力会让清理逻辑必须依赖外部持久化,使用成本明显偏高。同类产品中群组、邀请码都有列表或详情接口,测试版本作为核心对象的查询能力闭环确实有缺口。
这个需求已记录。我们会将场景和优先级同步给 AGC 相关团队,推动补充查询接口,优先支持按 appId 分页获取版本列表及关键状态字段。


