如何在Playwright的playwright.config文件中自动存储Access Token
如何将登录API返回的Access Token自动存入playwright.config文件
方法一:直接修改playwright.config文件
这种方式会直接修改配置文件内容,适合需要把Token硬编码到配置中的场景:
编写登录脚本获取Token
创建get-token.js文件,用Playwright请求模块调用登录API并提取Token:const { request } = require('@playwright/test'); async function fetchAccessToken() { const context = await request.newContext(); const loginResponse = await context.post('https://你的登录API地址', { data: { username: '你的用户名', password: '你的密码' } }); const responseData = await loginResponse.json(); return responseData.access_token; // 根据实际API返回字段调整 } module.exports = fetchAccessToken;编写配置更新脚本
创建update-config.js文件,读取现有配置并替换/添加Token:const fs = require('fs'); const fetchAccessToken = require('./get-token'); async function updateConfig() { const token = await fetchAccessToken(); const configPath = './playwright.config.js'; let configContent = fs.readFileSync(configPath, 'utf8'); // 替换已存在的Authorization配置 const updatedContent = configContent.replace( /Authorization: `Bearer .*?`/, `Authorization: \`Bearer ${token}\`` ); // 如果配置中没有Authorization字段,添加到use区块 if (!updatedContent.includes('Authorization')) { const useBlockRegex = /use: {\s*([\s\S]*?)\s*}/; configContent = configContent.replace( useBlockRegex, `use: {
$1,
extraHTTPHeaders: {
Authorization: `Bearer ${token}`
}
}`
);
} else {
configContent = updatedContent;
}
fs.writeFileSync(configPath, configContent, 'utf8'); console.log('Token已成功写入playwright.config.js');
}
updateConfig();
3. **执行脚本** 在终端运行: ```bash node update-config.js
方法二:通过环境变量注入(推荐)
这种方式不直接修改配置文件,将Token存入环境变量后由配置文件读取,更安全灵活:
将Token写入.env文件
修改get-token.js,把Token写入.env文件:const fs = require('fs'); const { request } = require('@playwright/test'); async function saveTokenToEnv() { const context = await request.newContext(); const loginResponse = await context.post('https://你的登录API地址', { data: { username: '你的用户名', password: '你的密码' } }); const responseData = await loginResponse.json(); fs.writeFileSync('.env', `ACCESS_TOKEN=${responseData.access_token}`, 'utf8'); console.log('Token已存入.env文件'); } saveTokenToEnv();在playwright.config中读取环境变量
安装dotenv依赖:npm install dotenv --save-dev修改
playwright.config.js,引入并读取环境变量:require('dotenv').config(); module.exports = { use: { extraHTTPHeaders: { Authorization: `Bearer ${process.env.ACCESS_TOKEN}` } } };执行脚本并运行测试
先运行脚本生成.env:node get-token.js之后直接运行Playwright测试即可,配置会自动读取环境变量中的Token。
内容的提问来源于stack exchange,提问作者Gopal Sakhiya
相关产品推荐
相关产品推荐

