我希望使用剧作家对网页进行测试。
我正在使用的系统有4个不同的环境,我们需要针对这些环境进行部署,例如,测试url可以是
www.test1.com
www.test2.com
www.test3.com
www.test4.com
第一个问题是如何针对不同的环境?在我的剧作家配置中,我有一个baseUrl,但我需要重写它。
此外,每个环境都有不同的登录凭据,我如何在每个环境中创建和覆盖这些参数?
自剧作家v1.13.0
以来,有一个baseURL
选项可用。你可以这样使用
在你的config.js
文件中,你可以这样写
import { PlaywrightTestConfig } from '@playwright/test';
const config: PlaywrightTestConfig = {
use: {
baseURL: process.env.URL,
},
};
export default config;
现在在package.json
文件中,您可以在scripts
中的各种环境的测试命令中设置环境变量,如下所示
...
"scripts": {
"start": "node app.js",
"test1": "URL=www.test1.com mocha --reporter spec",
"test2": "URL=www.test2.com mocha --reporter spec",
.
.
},
...
同样,您也可以为登录凭据设置环境变量,然后在脚本中以与传递URL
相同的方式传递它们。
另一种方法是使用Bash脚本。我使用以下内容跨环境运行测试,以确保我的剧作家测试可以在所有环境中运行-
#!/bin/bash
echo "Running tests against env 1";
ENV_URL=https://www.env1.com SOMESERVICE_ENV_URL=http://www.env1.com/scholarship npx playwright test $1;
echo "Running tests against env 2"
ENV_URL=https://env2.com SOMESERVICE_ENV_URL=http://env2.com:4008 npx playwright test $1;
echo "Running tests against env 3";
ENV_URL=http://localhost:3000 SOMESERVICE_ENV_URL=http://localhost:4008 npx playwright test $1;
然后运行./myScript.sh myTest.test.ts
(在Bash脚本中,传入的第一个参数可通过$1
获得)