日常测试中,一套测试用例需支持在不同的测试环境运行,如staging、production
因为涉及不同的测试环境,那使用的环境变量或参数就不一样,如staging登录可能用到的用户名是A,而production可能用到的是b。
所以需要有一个地方统一管理这些环境变量,并合理配置,让测试用例能获取到这些参数。默认情况下,不同的配置文件均以
.env
开头,如
staging: .env.staging
production: .env.production
操作步骤
1. 安装 dotenv
pnpm add dotenv --save
2. 新建配置文件
.env.production
BASE_URL=https://dev.mi.com
USERNAME=xxx
PASSWORD=xxx
.env.staging
# 注意配置host
BASE_URL=http://onebox.developer.mi.com/
USERNAME=xxx
PASSWORD=xxx
3. 新建环境变量引用文件
src/utils/env.ts
export default class Env {
public static BASE_URL = process.env.BASE_URL;
public static USERNAME = process.env.USERNAME;
public static PASSWORD = process.env.PASSWORD;
}
4. 新建全局初始化文件
src/setup/global-setup.ts
import { type FullConfig } from "@playwright/test";
import dotenv from "dotenv";
async function globalSetup(config: FullConfig) {
if (process.env.test_env) {
dotenv.config({
path: `.env.${process.env.test_env}`,
override: true
})
}
}
export default globalSetup;
5. 引用全局初始化文件
playwright.config.ts
export default defineConfig({
......
globalSetup: 'src/setup/global-setup.ts',
......
});
运行配置
1. 在终端执行运行
# 以下命令将自动加载 .env.production 文件中的配置
test_env=production npx playwright test
2. 增加快捷运行命令
package.json
{
......
"scripts": {
"production": "test_env=production npx playwright test",
"staging": "test_env=staging npx playwright test"
},
......
}
使用以下命令运行
npm run staging