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

如何基于多语言URL重复运行同一Web自动化测试套件?

嘿,这事儿不难,咱们一步步来搞定多语言测试的复用:

第一步:配置package.json的测试脚本

先在你的package.json里添加几个快捷脚本,方便你一键执行对应语言的测试:

"scripts": {
  "test-english": "./node_modules/.bin/wdio wdio.conf.js --lang=US",
  "test-french": "./node_modules/.bin/wdio wdio.conf.js --lang=fr",
  "test-all": "npm run test-english && npm run test-french"
}

这样你想跑英文测试就执行npm run test-english,法文就npm run test-french,想一次性跑完全部语言就用npm run test-all。

第二步:修改wdio.conf.js读取命令行参数

接下来要让你的WDIO配置能识别并传递--lang参数到测试代码里。修改你的wdio.conf.js:

// 先写个小工具函数提取命令行里的lang参数
const getLangFromCli = () => {
  const langArg = process.argv.find(arg => arg.startsWith('--lang='));
  // 如果没传参数,默认用US(英文)
  return langArg ? langArg.split('=')[1] : 'US';
};

exports.config = {
  specs: [ './test/**/*.test.js' ],
  baseUrl: 'http://eeee.com/',
  // 把lang参数存在config的params里,方便测试代码调用
  params: {
    lang: getLangFromCli()
  }
}

第三步:修改测试代码复用逻辑

最后把你原来写死的英文URL替换成动态的,比如原来的测试里可能是:

await browser.url('/home?lang=US');

现在改成用配置里的lang参数:

await browser.url(`/home?lang=${browser.config.params.lang}`);

这样不管你执行哪个语言的脚本,测试代码都会自动加载对应语言的页面啦!如果你的测试里有多个页面需要加lang参数,都用这个方式替换就行,不用再写多份测试代码~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:53:23