You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Appium Flutter Driver自动化测试套件(Java版)集成到BrowserStack?

基于Java的Appium Flutter Driver与BrowserStack集成指南

1. 前置准备

  • 确认项目已引入必要依赖(以Maven为例,在pom.xml中添加):
<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>8.5.1</version>
</dependency>
<dependency>
    <groupId>io.appium</groupId>
    <artifactId>flutter-driver</artifactId>
    <version>2.0.0</version>
</dependency>
  • 获取BrowserStack账户的username和accessKey(可在账户设置页查看)

2. 配置BrowserStack远程驱动与Flutter专属Capabilities

替换本地Appium配置,改用BrowserStack远程服务,同时添加Flutter测试所需配置:

import io.appium.java_client.flutter.FlutterDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;

public class FlutterBrowserStackTest {
    private FlutterDriver driver;

    public void setup() throws Exception {
        DesiredCapabilities caps = new DesiredCapabilities();
        
        // BrowserStack核心配置
        caps.setCapability("browserstack.user", "你的BrowserStack用户名");
        caps.setCapability("browserstack.key", "你的BrowserStack密钥");
        caps.setCapability("app", "bs://<应用哈希值>"); // 上传到BrowserStack的Flutter应用哈希
        caps.setCapability("device", "Google Pixel 7"); // 指定测试设备
        caps.setCapability("os_version", "13.0"); // 目标系统版本
        caps.setCapability("project", "Flutter自动化测试项目");
        caps.setCapability("build", "Flutter-BrowserStack集成版v1");
        caps.setCapability("name", "登录功能测试");
        
        // Flutter Driver专属配置
        caps.setCapability("appium:automationName", "Flutter");
        caps.setCapability("appium:retryBackoffTime", 500);
        
        // 初始化驱动,连接BrowserStack远程Hub
        driver = new FlutterDriver(new URL("https://hub.browserstack.com/wd/hub"), caps);
    }

    public void runTest() {
        // 示例Flutter元素操作
        driver.findElementByFlutterLocator("byKey", "email_input").sendKeys("test@demo.com");
        driver.findElementByFlutterLocator("byText", "登录").click();
    }

    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }
}

3. 上传Flutter应用到BrowserStack

  • 打包Flutter应用:
    Android:flutter build apk --release
    iOS:flutter build ipa --release
  • 通过BrowserStack控制台上传打包后的应用,获取生成的bs://<应用哈希值>,替换到上述代码的app字段中

4. 核心注意事项

  • 确保Flutter应用已启用Driver扩展,在main.dart中添加:
void main() {
  enableFlutterDriverExtension();
  runApp(const MyApp());
}
  • 元素定位需使用Flutter专属方法:byKey、byType、byText、byTooltip等,避免使用原生Appium定位方式
  • 测试结果可在BrowserStack控制台查看,包含录像、设备日志、Appium日志,便于问题排查

内容的提问来源于stack exchange,提问作者Anosha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:39:35