如何基于多语言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
相关产品推荐
相关产品推荐

