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

Appium v2单设备串行执行多测试类问题求助

解决方案

1. 修改TestNG配置文件,强制串行执行

在TestNG的<suite>标签中添加parallel="none"属性,明确指定测试串行执行,避免TestNG默认并行逻辑触发多设备调度:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Test Suite Name" parallel="none">
<listeners>
<listener class-name="Helpers.AnnotationTransformer"/>
<listener class-name="Helpers.Listener"/>

</listeners>
<test name="some name">
<classes>
<class name="testClass1"/>
<class name="testClass2"/>
</classes>
</test>

</suite>

2. 调整Appium Device Farm插件并行配置

Device Farm插件默认可能启用多会话并行,需确保插件限制单设备会话:

  • 启动Appium服务时,移除--plugin-device-farm-parallel类的并行参数,或设置为--plugin-device-farm-max-parallel-sessions=1
  • 若使用插件配置文件(如device-farm.yml),将maxParallelSessions值设为1

3. 优化Base类的驱动实例管理

当前Base类构造函数会在每个测试类实例化时创建新驱动会话,导致多会话触发设备寻找。将驱动初始化移至@BeforeSuite注解方法,确保整个测试套件仅创建一次驱动:

public class Base {
    protected AndroidDriver driver;
    private static boolean driverInitialized = false;

    @BeforeSuite
    public void setupDriver() throws MalformedURLException {
        if (!driverInitialized) {
            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability("appium:automationName", "UiAutomator2");
            capabilities.setCapability("appium:deviceName", conf.read("deviceName"));
            capabilities.setCapability("appium:udid", conf.read("udid"));
            capabilities.setCapability("appium:appPackage", conf.read("appPackage"));
            capabilities.setCapability("appium:appActivity", conf.read("appActivity"));
            capabilities.setCapability("appium:autoGrantPermissions", true);
            driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), capabilities);
            driverInitialized = true;
        }
    }

    @AfterSuite
    public void teardownDriver() {
        if (driver != null) {
            driver.quit();
            driverInitialized = false;
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:42:24