如何通过Azure DevOps流水线将构建包上传至Sauce Lab/Test-Fairy
通过Azure DevOps流水线上传构建包至Sauce Labs/Test-Fairy的实现方案
一、上传至Sauce Labs
1. 前置准备
- 获取Sauce Labs账号的用户名和API访问密钥,在Azure DevOps的「库」中创建变量组,将这两个值分别存入
SAUCE_USERNAME和SAUCE_ACCESS_KEY,并标记为保密变量。
2. 流水线任务配置
在构建任务完成(已生成.apk/.aab(Android)或.ipa(iOS)包)后,添加脚本任务(Bash或PowerShell均可),调用Sauce Labs的存储API上传包:
# Android包上传示例 curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" \ -X POST "https://api.us-west-1.saucelabs.com/v1/storage/upload" \ -F "payload=@$(Build.ArtifactStagingDirectory)/your-app-build.apk" \ -F "name=YourApp-$(Build.BuildNumber).apk"
- 若上传iOS的
.ipa包,只需替换上述命令中的包路径和名称即可,注意ipa需是已完成签名的合规包。 - 上传成功后,API会返回存储ID,可用于后续在Sauce Labs中关联测试任务。
二、上传至Test-Fairy
1. 前置准备
- 获取Test-Fairy的API密钥,在Azure DevOps变量组中创建
TEST_FAIRY_API_KEY保密变量存储该密钥。
2. 流水线任务配置
在构建完成后添加脚本任务,调用Test-Fairy的上传API,示例如下:
# Android包上传示例 curl -X POST "https://upload.testfairy.com/api/upload" \ -F "api_key=$TEST_FAIRY_API_KEY" \ -F "file=@$(Build.ArtifactStagingDirectory)/your-app-build.apk" \ -F "testers-groups=internal-test-team" \ -F "notify=on" \ -F "auto-update=on"
- 参数说明:
testers-groups:指定接收应用的测试组名称(需在Test-Fairy后台提前创建)notify=on:开启测试人员邮件通知auto-update=on:允许测试应用自动更新
- iOS的
.ipa包上传只需替换包路径,Test-Fairy支持自动适配企业签名的ipa包。
通用注意事项
- 确认构建产物路径正确:
$(Build.ArtifactStagingDirectory)是Azure DevOps默认的构建产物目录,若你的包生成在其他路径,需对应调整。 - 权限验证:确保Sauce Labs/Test-Fairy的API密钥有效,且账号具备上传应用的权限。
- 任务顺序:上传任务必须放在构建任务之后,保证待上传的包已生成。
内容的提问来源于stack exchange,提问作者Resfeber Eudaimonia
相关产品推荐
相关产品推荐

