【移动APP测试】移动APP自动化工具Sauce Labs使用指南,附案例(有关必回)
SauceLabs云测试平台使用指南摘要:SauceLabs是一款功能强大的云端测试平台,支持移动端和Web端的自动化与手动测试。核心功能包括AppLive(手动测试)、AppAutomate(移动自动化)、WebAutomate(Web自动化)及TestRunner(无代码测试)。使用流程:1)注册账号获取访问凭证;2)上传待测应用;3)配置自动化脚本(需修改Capabilities指向Sauc
提供一份清晰、全面的Sauce Labs使用指南。Sauce Labs是与BrowserStack齐名的顶级云测试平台,尤其在自动化测试领域拥有极深的技术积累和生态集成。本指南将帮助新人快速上手。
Sauce Labs 终极使用指南:云端测试的自动化引擎
一、 工具简介与核心价值
1. 是什么?
Sauce Labs是一个基于云的持续测试平台,提供数千种真实移动设备(iOS/Android)和桌面浏览器的组合。它允许你运行手动和自动化测试,并以其强大的自动化能力和DevOps集成而闻名。
2. 核心价值(为什么选择Sauce Labs?)
-
无与伦比的自动化支持: 对Appium、Espresso、XCUITest等框架提供原生、高性能的支持,是自动化测试的首选平台。
-
企业级安全与合规: 提供SOC2、GDPR等合规性认证,适合对安全要求极高的企业级客户。
-
先进的洞察与分析: 提供测试失败分析、性能指标、视频日志、屏幕截图等全方位数据,帮助快速定位问题根源。
-
强大的DevOps集成: 与Jenkins、CircleCI、GitLab、Azure DevOps等工具链无缝集成,是CI/CD流程的核心组成部分。
-
虚拟和真实设备云: 既提供快速的虚拟设备进行冒烟测试,也提供完整的真实设备进行深度兼容性测试。
3. 核心功能
-
App Live: 在真实设备上进行手动交互测试。
-
App Automate: 在真实和虚拟设备上运行移动自动化测试(Appium、Espresso、XCUITest)。
-
Web Automate: 在多种浏览器和操作系统上运行Web自动化测试(Selenium)。
-
TestRunner: 基于图形的无代码自动化测试解决方案。
-
丰富的分析功能: 包括视频录制、日志、性能数据、智能诊断等。
二、 环境准备与账号设置
步骤 1: 注册与访问
-
访问 Sauce Labs官网。
-
注册一个账号。公司通常会提供企业账号,个人可申请免费试用计划(提供有限的测试时长)。
-
登录后,进入Sauce Labs 仪表盘(Dashboard)。
步骤 2: 获取访问凭证
这是最关键的一步!所有自动化脚本都需要用它来连接Sauce Labs云。
-
点击右上角你的用户名,选择
User Settings。 -
在
Access Key选项卡下,你会看到你的SAUCE_USERNAME和SAUCE_ACCESS_KEY。 -
妥善保管这两个值,它们相当于你云平台的用户名和密码。
步骤 3: 准备待测应用
-
对于手动测试: 准备一个APK或IPA文件。
-
对于自动化测试: 确保你的自动化测试脚本(如Appium Java/Python脚本)和待测应用文件(.apk或.app/.ipa)已准备就绪。
三、 详细使用步骤与实战案例
我们将通过两个核心场景来学习,这也是Sauce Labs最常用的功能:
-
案例一:使用
App Live进行手动探索性测试 -
案例二:使用
App Automate运行Appium自动化测试脚本
案例一:使用 App Live 进行手动测试
目标:手动测试一个内部的Android应用 demo-app.apk 在Google Pixel 7 Pro上的基本功能和UI兼容性。
步骤 1: 进入App Live
-
登录Sauce Labs,在左侧主导航栏中,点击
Live->App Live。
步骤 2: 选择设备与上传应用
-
上传应用: 点击
Upload App,将你的demo-app.apk文件拖拽到窗口中。上传成功后,它会出现在“My Apps”列表中。 -
选择设备:
-
点击
Choose Device。 -
使用过滤器:选择
Android->Real Devices。 -
在搜索框中输入
Pixel 7 Pro并选择它。 -
选择所需的Android版本(如Android 13)。
-
步骤 3: 启动会话并测试
-
点击
Start Session。Sauce Labs会分配一台全新的Pixel 7 Pro真机,并自动安装你的应用。 -
设备界面加载后,你可以:
-
直接操作: 像使用真机一样点击、滑动、测试功能。
-
使用控制栏:
-
旋转设备: 测试横竖屏布局。
-
模拟地理位置: 测试基于位置的服务。
-
模拟网络条件: 测试在弱网(如2G)下的应用行为。
-
录制视频: 整个会话会被自动录制,供后续回顾。
-
-
提交Bug: 使用工具快速截图并生成包含设备环境的Bug报告。
-
步骤 4: 结束与回顾
-
点击
Stop Session。 -
在
Dashboard->Test Results中,你可以找到这次手动测试的会话记录,回放视频、查看设备日志等。
https://saucelabs.com/web/images/product/real-device-cloud/app-live-hero.png
案例二:使用 App Automate 运行Appium自动化测试
目标: 将一个现有的Appium自动化测试脚本(Java版)在Sauce Labs云中的多种设备(如iPhone 14和Samsung Galaxy S22)上并行运行。
步骤 1: 准备你的Appium脚本
你需要修改你的Appium脚本的Desired Capabilities,以指向Sauce Labs的云服务器。
示例Capabilities (Java):
java
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
public class SauceLabsDemo {
public static final String USERNAME = "YOUR_SAUCE_USERNAME";
public static final String ACCESS_KEY = "YOUR_SAUCE_ACCESS_KEY";
public static final String URL = "https://" + USERNAME + ":" + ACCESS_KEY + "@ondemand.us-west-1.saucelabs.com:443/wd/hub"; // 注意区域
public static void main(String[] args) throws Exception {
DesiredCapabilities caps = new DesiredCapabilities();
// 1. 必填的基础配置
caps.setCapability("platformName", "iOS"); // 或 "Android"
caps.setCapability("appium:platformVersion", "16.2");
caps.setCapability("appium:deviceName", "iPhone 14 Simulator"); // 或 "Samsung Galaxy S22 Ultra"
caps.setCapability("appium:app", "storage:filename=demo-app.zip"); // 上传到Sauce云存储后的应用名
// 2. Sauce Labs特定配置
caps.setCapability("sauce:options", Map.of(
"username", USERNAME,
"accessKey", ACCESS_KEY,
"build", "MyApp-Build-1.0", // 用于分组测试结果
"name", "iOS Login Test" // 给你的测试起个名字
));
// 3. 初始化驱动,连接到Sauce Labs云
IOSDriver driver = new IOSDriver(new URL(URL), caps); // 或用AndroidDriver
// 4. 这里是你的测试步骤...
// driver.findElement(...).click();
// 5. 结束测试,标记成功/失败
driver.executeScript("sauce:job-result=passed"); // 或 "failed"
driver.quit();
}
}
步骤 2: 上传应用到Sauce存储
-
你可以通过API、命令行或UI上传应用。最简单的方式是通过UI:
-
在Sauce Labs左侧导航栏,进入
Live->App Storage。 -
点击
Upload App,上传你的demo-app.apk或.ipa文件。 -
上传后,记下文件名(如
demo-app.zip),这就是你在Capabilities中app字段的值。
-
步骤 3: 运行测试
-
像在本地一样运行你的Appium测试脚本(如
mvn test)。 -
脚本会将测试任务发送到Sauce Labs云,云平台会根据你的Capabilities分配对应的设备并执行测试。
步骤 4: 在Sauce Labs面板中查看结果
-
进入
Dashboard->Test Results或Automation->App Automate。 -
你会看到所有测试执行的列表。点击单个会话可以查看:
-
视频录制: 完整回放测试执行过程。
-
日志: Appium日志、设备日志。
-
命令历史: 每个WebDriver命令的执行详情和时间。
-
性能数据(部分设备): CPU、内存占用等。
-
智能分析: Sauce Labs会分析失败原因,给出可能的问题线索。
-
四、 解读结果与撰写测试报告
Sauce Labs的强大之处在于其详尽的报告能力。
撰写测试报告(示例):
自动化兼容性测试报告 - Sauce Labs
测试应用: demo-app v1.5
测试构建: MyApp-Build-1.0
测试周期: 2023-10-27
测试类型: Appium自动化测试套件测试环境与覆盖:
iPhone 14 Simulator (iOS 16.2)
Samsung Galaxy S22 Ultra (Android 13)
Google Pixel 6 (Android 13)
测试结果摘要:
总测试数: 45
通过数: 42
失败数: 3
通过率: 93.3%
详细结果:
设备 测试场景 状态 失败原因/分析链接 iPhone 14 testLoginWithValidCredentialsPASS - iPhone 14 testCheckoutFlowFAIL 在支付页面点击“确认”按钮无响应。[查看视频] Galaxy S22 testLoginWithValidCredentialsPASS - Galaxy S22 testProductSearchFAIL 搜索框无法输入特殊字符。[查看日志] 结论与建议:
本次构建在核心登录流程上通过率100%,表现稳定。
在iOS和Android平台均发现UI交互问题,涉及支付和搜索功能,阻碍严重。
建议开发团队查看Sauce Labs提供的失败会话链接,修复问题后重新触发自动化测试进行回归。
附件: 所有测试会话的详细报告可在Sauce Labs Dashboard的“Test Results”中查看。
五、 专业技巧与注意事项
-
区域选择: Sauce Labs在全球有数据中心(US-WEST-1, EU-CENTRAL-1等)。确保你的脚本中的URL指向正确的区域,以获得最佳速度。
-
使用云存储: 始终先将应用上传到Sauce Storage,然后在Capabilities中使用
storage:filename=your_app.apk来引用。这比每次从URL下载更快更可靠。 -
并行测试: 利用Sauce Labs的强大并发能力,在不同的设备上同时运行你的测试套件,极大缩短反馈时间。
-
智能状态: 务必在测试结束时使用
sauce:job-result命令明确标记测试的成功或失败,否则Sauce Labs无法正确分类结果。 -
本地测试隧道: 测试开发环境或内网应用时,使用 Sauce Connect Tunnel 建立安全代理,这与BrowserStack的Local功能类似。
Sauce Labs将测试提升到了一个战略性的高度,使其成为持续交付流程中快速、可靠的一环。掌握它,尤其是其自动化能力,将使你成为团队中高效的质量守护者。
更多推荐



所有评论(0)