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

WebdriverIO(WDIO) 如何配置部分测试串行、部分并行执行

WDIO部分测试串行、部分并行执行配置方案

完全可以通过WDIO原生配置实现该需求,不需要自定义复杂的路径判断逻辑,以下是最稳定、对接SauceLabs兼容最好的实现方式:

核心实现逻辑

你提到的按测试目录区分执行模式的思路完全可行,我们可以通过拆分测试套件+命令行参数覆盖配置的方式,为不同目录的测试设置不同的并发数。

步骤1:配置测试套件

在wdio.conf.js中按目录拆分两类测试为独立的测试套件:

// wdio.conf.js 核心配置片段
exports.config = {
  // 其他通用配置:如SauceLabs账号、capability、测试框架配置等保持不变
  // 拆分测试套件
  suites: {
    // 并行执行的测试目录
    parallel: [
      './tests/parallel/*.js'
    ],
    // 串行执行的测试目录
    consecutive: [
      './tests/consecutive/*.js'
    ]
  },
  // 全局默认并发数设置为并行测试需要的最大值,比如你SauceLabs账号支持的最高VM数
  maxInstances: 5
}

步骤2:配置执行脚本

在package.json中配置执行命令,先执行并行套件,再执行串行套件(执行串行套件时通过命令行参数覆盖maxInstances为1):

{
  "scripts": {
    // 仅执行并行测试,用全局配置的高并发数
    "test:parallel": "wdio run ./wdio.conf.js --suite parallel",
    // 仅执行串行测试,强制覆盖并发数为1
    "test:consecutive": "wdio run ./wdio.conf.js --suite consecutive --maxInstances=1",
    // 全量执行:先跑完全部并行测试,再串行跑需要顺序执行的测试
    "test": "npm run test:parallel && npm run test:consecutive"
  }
}

相关说明

  • 该方案完全兼容SauceLabs的VM调度逻辑,并行测试阶段会占满你设置的maxInstances数量的VM,串行测试阶段仅占用1个VM,不会额外浪费资源
  • 不需要自己实现按路径判断的逻辑,WDIO原生的套件功能和命令行参数覆盖能力已经可以满足需求
  • 如果需要单文件内部的测试用例也按顺序执行,只需要对应测试框架(Mocha/Jasmine)的并行执行开关设置为false即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:18:02