gplay-testers-orchestration
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseTesters Orchestration for Google Play
Google Play测试人员编排管理
Use this skill when you need to manage beta testers and testing groups.
当你需要管理Beta测试人员和测试组时,可以使用本技能。
Understanding Testing Tracks
了解测试渠道
Google Play has several testing tracks:
- Internal - Up to 100 testers, instant access
- Closed - Invite-only testing groups
- Open - Public beta, anyone can join
Google Play提供多种测试渠道:
- Internal - 最多支持100名测试人员,可即时访问
- Closed - 仅限受邀测试组参与
- Open - 公开Beta测试,任何人都可加入
Manage Testers
管理测试人员
List testers for a track
列出某渠道的测试人员
bash
gplay testers list \
--package com.example.app \
--edit $EDIT_ID \
--track internalbash
gplay testers list \
--package com.example.app \
--edit $EDIT_ID \
--track internalGet tester group details
获取测试组详情
bash
gplay testers get \
--package com.example.app \
--edit $EDIT_ID \
--track betabash
gplay testers get \
--package com.example.app \
--edit $EDIT_ID \
--track betaUpdate tester emails
更新测试人员邮箱
bash
gplay testers update \
--package com.example.app \
--edit $EDIT_ID \
--track internal \
--emails "user1@example.com,user2@example.com,user3@example.com"bash
gplay testers update \
--package com.example.app \
--edit $EDIT_ID \
--track internal \
--emails "user1@example.com,user2@example.com,user3@example.com"Add testers (append to existing list)
添加测试人员(追加至现有列表)
bash
undefinedbash
undefinedGet current testers
获取当前测试人员列表
CURRENT=$(gplay testers get --package com.example.app --edit $EDIT_ID --track internal
| jq -r '.testers[]' | paste -sd "," -)
| jq -r '.testers[]' | paste -sd "," -)
CURRENT=$(gplay testers get --package com.example.app --edit $EDIT_ID --track internal
| jq -r '.testers[]' | paste -sd "," -)
| jq -r '.testers[]' | paste -sd "," -)
Add new testers
添加新测试人员
NEW_TESTERS="user4@example.com,user5@example.com"
ALL_TESTERS="$CURRENT,$NEW_TESTERS"
gplay testers update
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$ALL_TESTERS"
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$ALL_TESTERS"
undefinedNEW_TESTERS="user4@example.com,user5@example.com"
ALL_TESTERS="$CURRENT,$NEW_TESTERS"
gplay testers update
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$ALL_TESTERS"
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$ALL_TESTERS"
undefinedRemove tester
移除测试人员
bash
undefinedbash
undefinedGet current testers
获取当前测试人员列表
CURRENT=$(gplay testers get --package com.example.app --edit $EDIT_ID --track internal
| jq -r '.testers[]' | paste -sd "," -)
| jq -r '.testers[]' | paste -sd "," -)
CURRENT=$(gplay testers get --package com.example.app --edit $EDIT_ID --track internal
| jq -r '.testers[]' | paste -sd "," -)
| jq -r '.testers[]' | paste -sd "," -)
Remove specific email
移除指定邮箱
UPDATED=$(echo "$CURRENT" | tr ',' '\n' | grep -v "user@example.com" | paste -sd "," -)
gplay testers update
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$UPDATED"
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$UPDATED"
undefinedUPDATED=$(echo "$CURRENT" | tr ',' '\n' | grep -v "user@example.com" | paste -sd "," -)
gplay testers update
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$UPDATED"
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "$UPDATED"
undefinedComplete Tester Workflow
完整测试人员工作流
Setup internal testing
设置内部测试
bash
undefinedbash
undefined1. Create edit
1. 创建编辑会话
EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')
EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')
2. Upload build to internal track
2. 上传安装包至内部测试渠道
gplay bundles upload
--package com.example.app
--edit $EDIT_ID
--file app-internal.aab
--package com.example.app
--edit $EDIT_ID
--file app-internal.aab
gplay bundles upload
--package com.example.app
--edit $EDIT_ID
--file app-internal.aab
--package com.example.app
--edit $EDIT_ID
--file app-internal.aab
3. Add testers
3. 添加测试人员
gplay testers update
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "tester1@example.com,tester2@example.com"
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "tester1@example.com,tester2@example.com"
gplay testers update
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "tester1@example.com,tester2@example.com"
--package com.example.app
--edit $EDIT_ID
--track internal
--emails "tester1@example.com,tester2@example.com"
4. Update track
4. 更新渠道配置
gplay tracks update
--package com.example.app
--edit $EDIT_ID
--track internal
--json @track-config.json
--package com.example.app
--edit $EDIT_ID
--track internal
--json @track-config.json
gplay tracks update
--package com.example.app
--edit $EDIT_ID
--track internal
--json @track-config.json
--package com.example.app
--edit $EDIT_ID
--track internal
--json @track-config.json
5. Commit
5. 提交更改
gplay edits commit --package com.example.app --edit $EDIT_ID
undefinedgplay edits commit --package com.example.app --edit $EDIT_ID
undefinedtrack-config.json
track-config.json
json
{
"releases": [{
"versionCodes": [123],
"status": "completed"
}]
}json
{
"releases": [{
"versionCodes": [123],
"status": "completed"
}]
}Internal Testing (Quick Testing)
内部测试(快速测试)
Characteristics:
- Up to 100 testers
- Instant access (no review)
- Ideal for rapid iteration
bash
undefined特点:
- 最多支持100名测试人员
- 即时访问(无需审核)
- 适合快速迭代测试
bash
undefinedRelease to internal with testers
发布至内部测试渠道并添加测试人员
gplay release
--package com.example.app
--track internal
--bundle app.aab
--testers "dev1@company.com,dev2@company.com,qa@company.com"
--package com.example.app
--track internal
--bundle app.aab
--testers "dev1@company.com,dev2@company.com,qa@company.com"
undefinedgplay release
--package com.example.app
--track internal
--bundle app.aab
--testers "dev1@company.com,dev2@company.com,qa@company.com"
--package com.example.app
--track internal
--bundle app.aab
--testers "dev1@company.com,dev2@company.com,qa@company.com"
undefinedClosed Testing (Beta Groups)
封闭测试(Beta测试组)
Characteristics:
- Unlimited testers
- Can have multiple named groups
- Testers need opt-in link
特点:
- 无测试人员数量限制
- 可创建多个命名测试组
- 测试人员需要通过专属链接加入
Create beta release
创建Beta版本发布
bash
gplay release \
--package com.example.app \
--track beta \
--bundle app.aabbash
gplay release \
--package com.example.app \
--track beta \
--bundle app.aabTesters join via opt-in link
测试人员通过专属链接加入
Share this link with testers:
https://play.google.com/apps/testing/com.example.app将以下链接分享给测试人员:
https://play.google.com/apps/testing/com.example.appOpen Testing (Public Beta)
公开测试(公开Beta)
Characteristics:
- Anyone can join
- Public opt-in page
- Still requires Play Store review
bash
gplay release \
--package com.example.app \
--track alpha \ # alpha track = open testing
--bundle app.aab特点:
- 任何人都可加入
- 公开加入页面
- 仍需通过Play Store审核
bash
gplay release \
--package com.example.app \
--track alpha \ # alpha渠道 = 公开测试
--bundle app.aabTester Management Best Practices
测试人员管理最佳实践
Organize testers by group
按组管理测试人员
Internal testing:
- Developers
- QA team
- Product managers
Closed beta:
- Power users
- Customer advisory board
- Early adopters
Open beta:
- General public
- Community members
内部测试:
- 开发人员
- QA团队
- 产品经理
封闭Beta测试:
- 核心用户
- 客户咨询委员会
- 早期尝鲜用户
公开Beta测试:
- 普通大众
- 社区成员
Email list management
邮箱列表管理
Store tester lists in files:
bash
undefined将测试人员列表存储在文件中:
bash
undefinedtesters-internal.txt
testers-internal.txt
dev1@company.com
dev2@company.com
qa@company.com
dev1@company.com
dev2@company.com
qa@company.com
testers-beta.txt
testers-beta.txt
poweruser1@example.com
poweruser2@example.com
feedback@example.com
Update from file:
```bash
EMAILS=$(cat testers-internal.txt | paste -sd "," -)
gplay testers update \
--package com.example.app \
--edit $EDIT_ID \
--track internal \
--emails "$EMAILS"poweruser1@example.com
poweruser2@example.com
feedback@example.com
从文件更新测试人员:
```bash
EMAILS=$(cat testers-internal.txt | paste -sd "," -)
gplay testers update \
--package com.example.app \
--edit $EDIT_ID \
--track internal \
--emails "$EMAILS"Testing Workflow Examples
测试工作流示例
Weekly Beta Release
每周Beta版本发布
bash
#!/bin/bash
PACKAGE="com.example.app"bash
#!/bin/bash
PACKAGE="com.example.app"Build
构建安装包
./gradlew bundleRelease
./gradlew bundleRelease
Release to internal first
先发布至内部测试渠道
gplay release
--package $PACKAGE
--track internal
--bundle app/build/outputs/bundle/release/app-release.aab
--package $PACKAGE
--track internal
--bundle app/build/outputs/bundle/release/app-release.aab
gplay release
--package $PACKAGE
--track internal
--bundle app/build/outputs/bundle/release/app-release.aab
--package $PACKAGE
--track internal
--bundle app/build/outputs/bundle/release/app-release.aab
Wait 24 hours, monitor for crashes
等待24小时,监控崩溃情况
If stable, promote to beta
若稳定,升级至Beta渠道
gplay promote
--package $PACKAGE
--from internal
--to beta
--package $PACKAGE
--from internal
--to beta
undefinedgplay promote
--package $PACKAGE
--from internal
--to beta
--package $PACKAGE
--from internal
--to beta
undefinedStaged Beta Rollout
分阶段Beta发布
bash
undefinedbash
undefinedWeek 1: Internal team (10 people)
第1周:内部团队(10人)
gplay release --package com.example.app --track internal --bundle app.aab
gplay release --package com.example.app --track internal --bundle app.aab
Week 2: Beta group 1 (100 people)
第2周:Beta测试组1(100人)
gplay promote --package com.example.app --from internal --to beta
gplay promote --package com.example.app --from internal --to beta
Week 3: Open beta (unlimited)
第3周:公开Beta(无人数限制)
gplay promote --package com.example.app --from beta --to alpha
gplay promote --package com.example.app --from beta --to alpha
Week 4: Production with staged rollout
第4周:分阶段发布至生产环境
gplay promote --package com.example.app --from alpha --to production --rollout 10
undefinedgplay promote --package com.example.app --from alpha --to production --rollout 10
undefinedShare Testing Links
分享测试链接
Internal testing link
内部测试链接
https://play.google.com/apps/internaltest/INTERNAL_TESTING_IDGet from Play Console → Internal testing → Testers → Copy link
https://play.google.com/apps/internaltest/INTERNAL_TESTING_ID可从Play控制台 → 内部测试 → 测试人员 → 复制链接获取
Closed testing opt-in link
封闭测试加入链接
https://play.google.com/apps/testing/com.example.apphttps://play.google.com/apps/testing/com.example.appEmail template for testers
测试人员邀请邮件模板
Subject: Join the Beta Test for [App Name]
Hi,
You've been invited to test the beta version of [App Name]!
To join:
1. Click this link: https://play.google.com/apps/testing/com.example.app
2. Tap "Become a tester"
3. Download the app from Google Play
Your feedback is valuable! Please report any issues to: beta@example.com
Thanks,
The [App Name] Team主题:加入[应用名称]的Beta测试
您好:
我们邀请您参与[应用名称]的Beta版本测试!
参与方式:
1. 点击链接:https://play.google.com/apps/testing/com.example.app
2. 点击“成为测试人员”
3. 从Google Play下载应用
您的反馈对我们至关重要!如有问题,请发送至:beta@example.com
感谢您的支持,
[应用名称]团队Monitor Beta Feedback
监控Beta测试反馈
Check feedback
查看反馈
bash
undefinedbash
undefinedView recent reviews from beta testers
查看Beta测试人员的近期评价
gplay reviews list --package com.example.app
| jq '.reviews[] | select(.comments[0].userComment.reviewerLanguage != null)'
| jq '.reviews[] | select(.comments[0].userComment.reviewerLanguage != null)'
undefinedgplay reviews list --package com.example.app
| jq '.reviews[] | select(.comments[0].userComment.reviewerLanguage != null)'
| jq '.reviews[] | select(.comments[0].userComment.reviewerLanguage != null)'
undefinedCrash reports
崩溃报告
Use Play Console → Quality → Android vitals → Crashes and ANRs
Filter by version code to see beta-specific crashes.
使用Play控制台 → 质量 → Android Vitals → 崩溃与ANRs
可按版本号筛选,查看Beta版本专属的崩溃信息。
Automated Tester Management
自动化测试人员管理
Sync from CSV
从CSV同步测试人员
bash
#!/bin/bashbash
#!/bin/bashsync-testers.sh
sync-testers.sh
PACKAGE="com.example.app"
CSV_FILE="testers.csv"
PACKAGE="com.example.app"
CSV_FILE="testers.csv"
Read emails from CSV (skip header)
从CSV读取邮箱(跳过表头)
EMAILS=$(tail -n +2 "$CSV_FILE" | cut -d',' -f1 | paste -sd "," -)
EMAILS=$(tail -n +2 "$CSV_FILE" | cut -d',' -f1 | paste -sd "," -)
Create edit
创建编辑会话
EDIT_ID=$(gplay edits create --package $PACKAGE | jq -r '.id')
EDIT_ID=$(gplay edits create --package $PACKAGE | jq -r '.id')
Update testers
更新测试人员
gplay testers update
--package $PACKAGE
--edit $EDIT_ID
--track internal
--emails "$EMAILS"
--package $PACKAGE
--edit $EDIT_ID
--track internal
--emails "$EMAILS"
gplay testers update
--package $PACKAGE
--edit $EDIT_ID
--track internal
--emails "$EMAILS"
--package $PACKAGE
--edit $EDIT_ID
--track internal
--emails "$EMAILS"
Commit
提交更改
gplay edits commit --package $PACKAGE --edit $EDIT_ID
echo "Synced $(echo $EMAILS | tr ',' '\n' | wc -l) testers"
undefinedgplay edits commit --package $PACKAGE --edit $EDIT_ID
echo "已同步 $(echo $EMAILS | tr ',' '\n' | wc -l) 名测试人员"
undefinedtesters.csv
testers.csv
csv
email,name,role
dev1@company.com,Alice Developer,Developer
qa1@company.com,Bob QA,QA
pm@company.com,Carol PM,Product Managercsv
email,name,role
dev1@company.com,Alice Developer,Developer
qa1@company.com,Bob QA,QA
pm@company.com,Carol PM,Product ManagerRemove Inactive Testers
移除不活跃测试人员
bash
#!/bin/bashbash
#!/bin/bashRemove testers who haven't tested in 30 days
移除30天内未参与测试的人员
PACKAGE="com.example.app"
EDIT_ID=$(gplay edits create --package $PACKAGE | jq -r '.id')
PACKAGE="com.example.app"
EDIT_ID=$(gplay edits create --package $PACKAGE | jq -r '.id')
Get current testers
获取当前测试人员列表
CURRENT=$(gplay testers get --package $PACKAGE --edit $EDIT_ID --track beta
| jq -r '.testers[]')
| jq -r '.testers[]')
CURRENT=$(gplay testers get --package $PACKAGE --edit $EDIT_ID --track beta
| jq -r '.testers[]')
| jq -r '.testers[]')
Filter active testers (implement your logic)
筛选活跃测试人员(需自行实现逻辑)
This is a placeholder - you'd need to track activity separately
以下为占位符 - 你需要单独跟踪测试人员活动情况
ACTIVE="tester1@example.com,tester2@example.com"
ACTIVE="tester1@example.com,tester2@example.com"
Update
更新测试人员列表
gplay testers update
--package $PACKAGE
--edit $EDIT_ID
--track beta
--emails "$ACTIVE"
--package $PACKAGE
--edit $EDIT_ID
--track beta
--emails "$ACTIVE"
gplay edits commit --package $PACKAGE --edit $EDIT_ID
undefinedgplay testers update
--package $PACKAGE
--edit $EDIT_ID
--track beta
--emails "$ACTIVE"
--package $PACKAGE
--edit $EDIT_ID
--track beta
--emails "$ACTIVE"
gplay edits commit --package $PACKAGE --edit $EDIT_ID
undefinedTesting Limits
测试渠道限制
| Track | Max Testers | Review Required | Access Speed |
|---|---|---|---|
| Internal | 100 | No | Instant |
| Closed | Unlimited | No | Minutes |
| Open | Unlimited | Yes | Days |
| Production | Unlimited | Yes | Days |
| 渠道 | 最大测试人数 | 是否需要审核 | 访问速度 |
|---|---|---|---|
| Internal | 100 | 否 | 即时 |
| Closed | 无限制 | 否 | 数分钟 |
| Open | 无限制 | 是 | 数天 |
| Production | 无限制 | 是 | 数天 |
Best Practices
最佳实践
DO:
建议:
- ✅ Start with internal testing
- ✅ Gradually expand to beta
- ✅ Communicate clearly with testers
- ✅ Provide feedback channels
- ✅ Acknowledge tester contributions
- ✅ Keep tester lists up to date
- ✅ Remove inactive testers periodically
- ✅ 从内部测试开始
- ✅ 逐步扩展至Beta测试
- ✅ 与测试人员清晰沟通
- ✅ 提供反馈渠道
- ✅ 认可测试人员的贡献
- ✅ 及时更新测试人员列表
- ✅ 定期移除不活跃测试人员
DON'T:
避免:
- ❌ Skip internal testing
- ❌ Add everyone to all tracks
- ❌ Ignore tester feedback
- ❌ Leave broken builds in testing
- ❌ Forget to thank your testers
- ❌ Use production track for testing
- ❌ 跳过内部测试
- ❌ 将所有人员添加至所有渠道
- ❌ 忽略测试人员反馈
- ❌ 在测试渠道保留损坏的安装包
- ❌ 忘记感谢测试人员
- ❌ 使用生产渠道进行测试
Track Selection Guide
渠道选择指南
Use Internal when:
- Initial feature testing
- Testing with dev/QA team only
- Need instant access
- < 100 testers
Use Closed when:
- Broader beta testing
- Need > 100 testers
- Want named beta groups
- Testing with customers
Use Open when:
- Public beta program
- Want maximum reach
- Community testing
- Pre-launch buzz
选择Internal渠道当:
- 初始功能测试
- 仅与开发/QA团队测试
- 需要即时访问
- 测试人员少于100人
选择Closed渠道当:
- 更广泛的Beta测试
- 需要超过100名测试人员
- 需要创建命名Beta测试组
- 与客户共同测试
选择Open渠道当:
- 公开Beta测试计划
- 想要最大范围覆盖
- 社区测试
- 发布前造势
Communication with Testers
与测试人员的沟通
Release notes for testers
测试人员版本说明
Include in app update:
Version 1.2.3 (Beta)
What's New:
- New feature X (please test thoroughly)
- Bug fixes for Y
Known Issues:
- Feature Z is work in progress
- Crash on Android 12 is being investigated
Please report issues to: beta@example.com在应用更新中包含以下内容:
版本 1.2.3(Beta版)
新增功能:
- 新增功能X(请全面测试)
- 修复了Y相关的Bug
已知问题:
- 功能Z仍在开发中
- Android 12上的崩溃问题正在排查
如有问题,请反馈至:beta@example.comFeedback collection
反馈收集方式
- In-app feedback button
- Dedicated Slack/Discord channel
- Email address
- Survey form
This helps you improve before production release!
- 应用内反馈按钮
- 专用Slack/Discord频道
- 邮箱地址
- 调查问卷
这有助于你在正式发布前优化应用!