提供一份清晰、全面的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: 注册与访问

  1. 访问 Sauce Labs官网

  2. 注册一个账号。公司通常会提供企业账号,个人可申请免费试用计划(提供有限的测试时长)。

  3. 登录后,进入Sauce Labs 仪表盘(Dashboard)

步骤 2: 获取访问凭证
这是最关键的一步!所有自动化脚本都需要用它来连接Sauce Labs云。

  1. 点击右上角你的用户名,选择 User Settings

  2. 在 Access Key 选项卡下,你会看到你的 SAUCE_USERNAME 和 SAUCE_ACCESS_KEY

  3. 妥善保管这两个值,它们相当于你云平台的用户名和密码。

步骤 3: 准备待测应用

  • 对于手动测试: 准备一个APK或IPA文件。

  • 对于自动化测试: 确保你的自动化测试脚本(如Appium Java/Python脚本)和待测应用文件(.apk或.app/.ipa)已准备就绪。


三、 详细使用步骤与实战案例

我们将通过两个核心场景来学习,这也是Sauce Labs最常用的功能:

  1. 案例一:使用 App Live 进行手动探索性测试

  2. 案例二:使用 App Automate 运行Appium自动化测试脚本

案例一:使用 App Live 进行手动测试

目标:手动测试一个内部的Android应用 demo-app.apk 在Google Pixel 7 Pro上的基本功能和UI兼容性。

步骤 1: 进入App Live

  1. 登录Sauce Labs,在左侧主导航栏中,点击 Live -> App Live

步骤 2: 选择设备与上传应用

  1. 上传应用: 点击 Upload App,将你的 demo-app.apk 文件拖拽到窗口中。上传成功后,它会出现在“My Apps”列表中。

  2. 选择设备

    • 点击 Choose Device

    • 使用过滤器:选择 Android -> Real Devices

    • 在搜索框中输入 Pixel 7 Pro 并选择它。

    • 选择所需的Android版本(如Android 13)。

步骤 3: 启动会话并测试

  1. 点击 Start Session。Sauce Labs会分配一台全新的Pixel 7 Pro真机,并自动安装你的应用。

  2. 设备界面加载后,你可以:

    • 直接操作: 像使用真机一样点击、滑动、测试功能。

    • 使用控制栏

      • 旋转设备: 测试横竖屏布局。

      • 模拟地理位置: 测试基于位置的服务。

      • 模拟网络条件: 测试在弱网(如2G)下的应用行为。

      • 录制视频: 整个会话会被自动录制,供后续回顾。

    • 提交Bug: 使用工具快速截图并生成包含设备环境的Bug报告。

步骤 4: 结束与回顾

  1. 点击 Stop Session

  2. 在 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存储

  1. 你可以通过API、命令行或UI上传应用。最简单的方式是通过UI:

    • 在Sauce Labs左侧导航栏,进入 Live -> App Storage

    • 点击 Upload App,上传你的 demo-app.apk 或 .ipa 文件。

    • 上传后,记下文件名(如 demo-app.zip),这就是你在Capabilities中 app 字段的值。

步骤 3: 运行测试

  1. 像在本地一样运行你的Appium测试脚本(如 mvn test)。

  2. 脚本会将测试任务发送到Sauce Labs云,云平台会根据你的Capabilities分配对应的设备并执行测试。

步骤 4: 在Sauce Labs面板中查看结果

  1. 进入 Dashboard -> Test Results 或 Automation -> App Automate

  2. 你会看到所有测试执行的列表。点击单个会话可以查看:

    • 视频录制: 完整回放测试执行过程。

    • 日志: 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 testLoginWithValidCredentials PASS -
iPhone 14 testCheckoutFlow FAIL 在支付页面点击“确认”按钮无响应。[查看视频]
Galaxy S22 testLoginWithValidCredentials PASS -
Galaxy S22 testProductSearch FAIL 搜索框无法输入特殊字符。[查看日志]

结论与建议

  1. 本次构建在核心登录流程上通过率100%,表现稳定。

  2. 在iOS和Android平台均发现UI交互问题,涉及支付和搜索功能,阻碍严重

  3. 建议开发团队查看Sauce Labs提供的失败会话链接,修复问题后重新触发自动化测试进行回归。

附件: 所有测试会话的详细报告可在Sauce Labs Dashboard的“Test Results”中查看。


五、 专业技巧与注意事项

  1. 区域选择: Sauce Labs在全球有数据中心(US-WEST-1, EU-CENTRAL-1等)。确保你的脚本中的URL指向正确的区域,以获得最佳速度。

  2. 使用云存储: 始终先将应用上传到Sauce Storage,然后在Capabilities中使用 storage:filename=your_app.apk 来引用。这比每次从URL下载更快更可靠。

  3. 并行测试: 利用Sauce Labs的强大并发能力,在不同的设备上同时运行你的测试套件,极大缩短反馈时间。

  4. 智能状态: 务必在测试结束时使用 sauce:job-result 命令明确标记测试的成功或失败,否则Sauce Labs无法正确分类结果。

  5. 本地测试隧道: 测试开发环境或内网应用时,使用 Sauce Connect Tunnel 建立安全代理,这与BrowserStack的Local功能类似。

Sauce Labs将测试提升到了一个战略性的高度,使其成为持续交付流程中快速、可靠的一环。掌握它,尤其是其自动化能力,将使你成为团队中高效的质量守护者。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐